Despite the rise of automation testing in recent years, manual testing still remains to be a reliable way of testing that has its own advantages. Though automation tests might seem like the obvious choice in pretty much every scenario, there are many scenarios where manual testing would be the better choice. As a leading manual software testing company, we strongly advocate that test automation is just an addition to the manual testing process and not a replacement. That is why acquiring knowledge on Manual Testing is still important. In this Manual Testing guide for beginners, we will be exploring topics such as why we opt for manual testing, the basic skills you require to perform manual testing, types of manual testing, and also a general procedure to perform manual testing. Let’s get started with the reasons as to why we pick manual testing over automation.
Why we go for manual testing:-
- Manual Testing can be used to detect and remove bugs even if your software is still under development.
- In general, manual tests are preferred when crucial functionalities have to be tested. Manual testing provides a better probability of finding critical defects which would have gone overlooked otherwise.
- Exploratory testing and random testing where use cases have to be performed or executed can’t be accomplished using automation and would require manual testing.
- The manual testing activities can be prioritized based on the changes done by the development team.
- Manual testing helps ensure that the software is user-friendly.
You might be wondering where is the comparison about the accuracy of both these types of tests. Conventionally we would feel that automation would have fewer errors as it requires less or no human effort. But interestingly, the Peltzman Effect suggests that if there is any reduction of risk, then the user will tend to become more careless and create new risks to compensate for the reduced risk. So automation testing will not necessarily make the testing scot-free if the tester becomes lethargic due to the advantages the improved methods bring to the table. So let’s focus on the skills that every tester would require to perform manual testing in the next topic of this manual testing guide.
Few of the skills we have mentioned here in this manual testing guide are not exclusive to manual testing, but would also be applicable for automation. So let’s get the ball rolling with the very first skill.
Attention to detail
Testing is a task well suited for people with keen observation skills. Though that alone is not the only required skill, it surely is very important as oversight can never be an option when it comes to quality testing.
Understanding Project requirements
Understanding the project requirement is a must before you start writing test cases because you might end up performing unnecessary additional tests. We should be aware that manual testing is a necessary method that has to be implemented only wherever necessary.
Perform Risk Evaluation
Risk analysis prior to manual testing is fundamental as the Pareto Principle states that 80% of the consequences arising from 20% of the causes. The principle implies that only a small number of modules might contain the defects that cause most errors or failures. Now that you have understood the project requirements and performed risk evaluation, it is time to write effective test cases.
Write test cases based on the requirement:
Now we have all the necessary data that we need to perform the actual process of testing. But the process of testing itself is done based on test cases. So all the above information is used to create optimal test cases that will guide you throughout the process.
Knowledge about defects/bugs
Having in-depth knowledge about the various bugs and defects is also essential, as oversight can be the biggest challenge you face while performing manual testing. So make sure you will be able to identify a bug or a defect when there is one. It will also prevent you from making any assumptions when you come across different bugs.
Tracking the root cause
It is not possible to predict all the areas of risk at the very beginning. So if you are coming across an unpredicted error or even a predicted one, make sure to trace it back to its root cause. By following this method, you will be able to save a lot of time during execution.
This is pretty much a no-brainer as any type of testing does require domain knowledge. But it is more pivotal when it comes to manual testing as the tester would be doing everything on a first-hand basis. The tester must be able to assess and understand everything that is happening while testing and shouldn’t be just a person logging results. Speaking of results.
Meticulous Record Keeping
Maintaining a proper log of your testing process is vital. You wouldn’t want to miss out on any of the important data or waste your time by tracking unnecessary data as well. If the test passes, then it can be marked easily, but if the test fails, then things get complicated. You have to make sure to not miss out on any vital detail. So make sure you are well worse in handling a lot of information as you would want to be up for the challenge of testing any project irrespective of its scale.
Following the Agile methodology
We had already seen how manual testing doesn’t need a fully completed application to begin testing. So it is quintessential to be fluent with the agile working methodology to yield the best results.
Adapting to the test environment
The test environment is nothing but the type of devices (Mobile, Computer, Tablet, etc.) and software combinations (Android, iOS, Windows, etc.) we would be using to carry out the testing. So it is necessary to adapt to the different environments and handle everything fluently. We wouldn’t want to spend more time testing by being slow to adapt to an OS you have never used.
The Do’s and Don’ts of Manual Testing:-
We wanted to make sure that even a quick skim of our manual testing guide should be helpful. So here we have listed the primary aspects to keep in mind before you start testing.
Do’s of manual testing:
- Do strictly follow the testing standards and guidelines.
- Keep track of the Entry and exit criteria of all the testing activities.
- Do update test cases regularly.
- Learn and analyze the defects or bugs to perform root cause analysis.
- Write your test cases in the requirement analysis phase and design phase itself.
- Execute all non-functional testing.
- Communicate more with developers.
- Do keep test cases and reports in bug handling tools.
- Raise bugs against the requirement.
- Do reserve time for Exploratory testing and Adhoc testing.
Don’ts of manual testing:
- Don’t update the test cases during execution.
- Make sure you don’t track bugs in many places like excel sheets as it consumes more time.
- Testing features that are not part of the current release is not needed.
- Never assume that any bug is invalid without clarifying it with your team lead.
- Make sure that you don’t spend excessive time on non-critical areas and negative scenarios.
How to perform Manual Testing?
Now that we have seen the skills required for manual testing and its do’s & don’ts in our manual testing guide. Let’s see how manual testing can be performed. We would have to follow the general Software Test Lifecycle (STLC). The STLC is a step-by-step procedure or standard procedure for testing any new software. Software test life cycle is a part of the Software Development Lifecycle (SDLC).
Phases of STLC:-
- Requirement Analysis
- Test Planning and Control
- Test Case Development
- Test Environment Setup
- Test Execution
- Test Cycle Closure
In this phase, based on the client’s requirements, the technical team consisting of both developers and test engineers will be made aware of the expectation. Based on the understanding, developers will start writing codes, and test engineers start planning. The document name may vary depending on the organization. It is usually called a business requirement document (BRD) or VRS.
Test Planning and control:-
Test planning is one of the most important activities in the test process as it involves defining the test specifications needed to achieve the project requirements. Here the resource allocation for carrying out testing, the number of test cases to be created, testing duration, and the cost get finalized.
Test control includes continuous monitoring of the test process with a fixed plan along with the option of escalating any deviation to the concerned stakeholders.
Test Case Development:-
This phase involves the actual creation of test cases. Based on the requirement and risk evaluation, test engineers identify all possible scenarios to create test cases. Once the test cases are written, they will go through refinement stages, where they will be reviewed and revised until it is approved. Once the test cases are green-lit, they will be stored in the test cases repository tool.
RTM (Requirement Traceability Matrix):-
It is a document that ensures that each and every requirement holds a minimum of test cases against the corresponding requirement specification. Either the senior test engineer or testing lead will prepare the RTM, or test management tools like QC and ALM would be used by the respective test engineer to prepare this document. Mapping the requirement to test cases is called forward traceability matrix. Likewise, mapping test cases to requirements is known as backward traceability.
Test Environment Setup:-
The test environment is set up based on the hardware and software requirement list using which the test team tests the whole application with different types of testing.
This phase involves the manual execution of the test cases. During the test case execution, any and all deviation from the expected result has to be reported as a defect in defect management tools like Jira, Bugzilla, etc.
Test Cycle Closure:-
Once the overall testing has been completed, and the software has been deployed in production, test closure activities will be carried out. Documents like scope, out of scope, test cases, test execution summary, test results, defects, deployment status, etc., are given to the teammates, as they will help maintain that particular software in production.
Guidelines for testing the application:
- Whenever any application has to be tested, we have to perform positive testing to determine whether the application is good enough for further testing or not.
- If the application clears the smoke test, then we can test the application further using the various aspects we have discussed in this manual testing guide.
Providing a valid input to verify the functionality of the application is known as positive testing. Positive tests verify if the intended results are obtained when providing the correct input.
Negative testing is done by providing invalid data as input and checking the functionality of an application. This is done to test whether the application does anything that it is not supported to do even when unintended inputs are given. For example, if an input field to enter an email id is filled without an extension, then the application must not proceed further even though an input has been given.
Providing inputs of the same kind and testing the application negatively is called over or exhaustive testing. For example, if we go back to the email id input field. It is sufficient if we test it with a sample text that has no domain extension. It is not required to test using a variety of similar data and get the same results.
If you provide an insufficient number of inputs that do not meet with the requirements or test the application with only valid or invalid inputs, it is known as under testing. Not meeting with the requirements is never an option. So make sure to not skip any step or scenario under any kind of assumption.
As mentioned earlier, we have to make sure to hit the sweet spot when it comes to deciding the scale of manual testing that will be used. So if you test the application by giving the required number of valid inputs and obtain the required number of valid outputs, it is known as optimal testing. We have to make sure that our testing process is neither exhaustive nor underwhelming.
Types of Manual testing:-
You might be wondering why is there a ‘Types of Manual testing’ section in a manual testing guide. We felt that if you are starting out your career in testing, then it is paramount to know all the types of testing we have mentioned in the image and also get introduced to a few of them.
It is a type of testing that is mainly done by having professional testing engineers look at the application. The implication here is that they are not given any access to the internal behavior of the code or source. So basically this type of testing is carried out by giving inputs to the application and examining the outputs obtained.
Black-box testing is classified into two types:-
- Functional testing
- Non- Functional testing
Testing the individual or independent components of an application is called functional testing. It is a type of testing done based on the requirement of the application, as it is done by integrating the application (or) system to check whether the application works as per the given requirement and functional specifications.
This testing can be carried out manually by executing a test case. So once the development team completes their coding, functional testing can be carried out manually by executing different test cases. Once this is carried out, it is followed by non-functional testing.
Non- Functional testing:-
This type of testing is done based on non-functional requirements. This testing focuses mainly on the readiness of the system from the perspective of an end-user. For example, we would be using nonfunctional testing to find out if things like security, the look and feel of the application, and so on are on point to the expectations.
White box testing is done by the development team once they have completed the coding process. This testing is carried out by looking at the logic of the program and the flow of the program.
Just like what the name suggests, grey box testing is a combination of both white-box testing and black-box testing. Grey-box testing can be done by the developers, testing engineers, or even by the customers. So the grey box testing engineers will be referring to the documents like design documents, data flow diagrams, and high-level database diagrams to write test cases. Using these test cases they will verify if created the application is working properly or not.
The Future of Manual Testing:-
Despite the surge in automation testing, we have to understand that manual testing can never be replaced. 100% automation is not yet possible, and it will stay that way for the foreseeable future as well. Manual testing mainly involves exploratory testing, usability testing, and Ad-hoc testing that should be performed before any application or any product is released. But when it comes to performance and regression testing, they can be automated to save time.
We hope you have enjoyed reading our Manual Testing guide for beginners, and now have a clear idea about the need for manual testing. As a leading company providing the best manual software testing services, we have made sure to optimize all our manual testing methods to bring about the best results in all our projects. Never miss out on any of our upcoming blogs by subscribing to us.