Are you a beginner to manual testing looking for a comprehensive guide to make the foundation of your manual testing? Then you’ve come at the right place.
In this article, we will start with the basic concept of manual testing. We will also discuss the stages of manual testing for any software product. Then, we will briefly discuss the methodologies of software testing i.e. black box, white box and grey box.
Later on, we will refresh our concepts of software testing process and get familiar with the tools that can help us in performing the manual testing process effectively and efficiently.
After gaining initial understanding and basics of manual testing, we will discuss some important testing techniques that are essential for building up your skill set. As manual testing comprises of several steps, tips and techniques so we will refer you to the previously discussed topics too to help you gain in-depth understanding of each topic.
Let’s begin with the basic concepts of manual software testing.
Manual testing is the process of testing the software manually to identify the bug, issues and defect in the software product. The aim of a software tester is to break the system and understand the response of system to various scenarios.
The observed behaviour of the system is always cross-checked against the expected or desired system behaviour. If there is a difference in both, the tester raises the issue and reports it as a bug. A tester can employ several manual software testing techniques to test every aspect of the software – be it functional or non-functional.
Stages of manual testing
A software product goes through the following stages of manual testing. Firstly, each testable unit of software is tested by the developers, then individual units are integrated together and eventually the entire system is placed together. At this stage, system testing is performed to make sure that the entire system is behaving as per requirements.
After the software product passes software system testing, the product is handed over to the users. The users perform User Acceptance Testing before the product is finally approved or rejected.
Unit testing is the testing of individual units and components performed by the developer. A unit is the smallest testable part of the software. Unit testing uses white box testing method and usually performed using a programming language. It is essential for the developers to unit test the software before handing over the release to QA.
Unit testing offers several benefits. It makes your code reusable as you need to use a modular approach for coding, if you intend to do unit testing. It also makes a debugging a lot easier.
Integration testing is performed after unit testing. Integration testing is performed when different units, components and modules of the software are integrated together. The purpose of integration testing is to verify the functionality, stability and reliability of the modules. The main focus for integration testing are the functional areas which are directly or indirectly affected with integration such as the features which take information from one module and produces output in the other module.
System testing is the next natural step after integration testing. Software system testing is carried out on a complete, fully integrated software product to evaluate the behaviour of system and its compliance with its software requirements specification (SRS).
Software system testing can be tricky to perform because you don’t get much time to perform it. It is recommended that you make test environment identical to your production environment and generate real world data to make sure that the system as a whole meets with the requirements of the users.
There are different software system testing techniques including functionality, performance, scalability, stress and regression testing. Recently, we covered out the different aspects of system testing in great detail which every new software tester needs to know.
Acceptance Testing or the User Acceptance Testing is the testing that is performed by the users before can accept the software product. This testing usually covers the scenarios from the end user real-world scenarios. For this purpose, UAT is performed by users who have different roles and privileges in the system.
You need to intelligently conduct user acceptance testing because it will provide you with the result on the basis of what software product will get approval or rejection from senior management. You might feel the need to create a UAT test plan to guide you through user acceptance testing.
Methods of Manual Software Testing
Software testing can be broadly classified into the following methods:
Black Box Testing
As the name suggests, black box methodology means that the tester does not have knowledge about the code or structure of the application. The tester interacts with the application and test the functional and non-functional behaviour of the application. There are various black box testing techniques that can facilitate the tester in their hunt of catching the bugs and defects. We will discuss a few important manual testing techniques shortly.
White Box Testing
White box testing is the testing methodology where tester knows about the code and structure of the application. It is also known as glass box and transparent box testing. This is used by developers to perform unit testing. White box testing techniques include control flow testing, data flow testing, branch testing, statement coverage, decision coverage and path testing.
Note that the white box testing methodology is commonly used by the developers, and not testers. So, don’t distract yourself by jumping off to learn white box testing. Understand the difference between black box and white box testing methodologies and focus on polishing your skill set of black box testing. However, in the later stages of your career you might need to learn white box testing to expand your skill set and value to the organization.
Grey Box Testing
Grey box testing is the mix of white box and black box testing. The aim of grey box testing is to identify the bugs and defects either due to structure or improper usage of the application. Grey box testing is used when you need to fix a critical issue in web applications. There are several tools to help you perform grey testing of applications.
Manual Software Testing Process
As this is beginner’s guide to manual testing, so we feel it important to briefly describe the software testing process to you. In this way, you will be able to correctly grasp the concepts that we are going to discuss in the later sections.
A software testing process typically includes a series of steps to make sure that the product has been thoroughly tested. The first step is to gain business understanding of the application. The next step is to create a test plan that can be used a guidebook for the testing process. This test plan is created by the test manager or the QA manager.
After the test plan is drawn up, test scenarios and test cases are created manually. When the product is developed, and comes for the QA, testers execute those test cases and log the status of test cases as ‘Pass/Fail’. When a test case fails, an issue or bug is raised. This bug is assigned to a developer who fixes it and the tester retests it. The cycle continues until all the bugs are closed.
Having said all this, you might be thinking that manual software testing is a very cumbersome and tiring process. Relax! We have a full-fledged, feature rich ReQtest tool that will help you manage the manual software testing process.
How does ReQtest helps in Manual Testing?
ReQtest offers a complete suite of modules to facilitate your manual testing process. The software testing process will become more efficient if you use the requirement management module, test management and bug tracking module together to monitor and control quality of your product.
Manage Your Requirements with ReQtest
The process of software development begins when requirements come from the stakeholders. ReQtest makes requirements management an effortless process. Create a new project and start entering your requirements right away.
You can enter all information related to a requirement such as name, description, priority, attach files, add comments and assigned to. Whenever a change is made to the requirement, its history is also stored in the ReQtest to help you later.
Manage Your Test Cases with ReQtest
The test management module of ReQtest helps in planning, writing test cases sharing it with the entire team. ReQtest enables you to create test cases for every requirement. In this way, you can always see the link between requirements and test cases.
You can add various details to a test case including name, description, test steps, expected result, actual result, comments and file or image attachments. In some cases, you need to pre-conditions to execute the test steps of test case. After executing a test case, you can log the result as pass, fail or raise a bug.
Manage Your Bugs with ReQtest
When a test case fails, you can raise the issue directly by clicking on the ‘bug’ icon. This will raise a bug and you can see it in your bug reports. The bug tracking module provides you the ability to report the bugs, search, filter and track them. The bug tracking module can also generate bug reports for you which can help you in making the right decisions.
Important Manual Testing Techniques
This guide for manual testing is incomplete without discussing a few important manual testing techniques. Although there are numerous software testing techniques, but we are only listing down the most commonly used testing techniques that are essential to learn for every tester.
Exploratory testing is not the type of manual testing, but we think it as one of the strengths of the manual tester so we have covered it in a little detail. As the name implies, exploratory testing is the testers’ initial steps of experimenting with the software to get familiar with the features and functionalities of an application. The manual tester explores each and every feature of the system and observe its response to different inputs.
There is also a cliché to exploratory testing. In some scenarios, QA managers or the project leads the testers to understand the behaviour of system using exploratory testing. In this way, testers develop their understanding of the application; instead of knowing the original requirements of the stakeholders. This can lead to a disastrous condition because the software testers might catch the obvious defects and issues, but they would not be able to tell if the artefact misses any business rules or requirements.
Exploratory testing seems very efficient at first because you don’t spend any time or effort in creating the test cases and it yield results quickly i.e. identify issues. However, it is very likely that testers miss a lot of cases, especially related to business rules, when they are not following a set of test scenarios or test cases. A good project and quality assurance manager should practice more systematic approach than exploratory testing, if there is time and budget to assure that test coverage is 100%. Needless to say, it is useful for record keeping purposes and for helping the QA team to keep them on track.
Before getting your hands on exploratory testing, you might like to know how to get started with the exploratory testing, where do the pitfalls of exploratory testing lie and what are the tips and techniques to make exploratory testing more efficient.
Usability is a vague concept where everyone can come up with one’s own definition which makes usability testing a challenging one. A few common grounds on which usability of the product is measure include the consistency, layout and intuitiveness of the application to guide the user and takes user to what he is looking for. If you are going to perform usability testing, avoid the common mistakes of usability testing.
Regression testing technique is used to perform integration and system testing. Regression testing is basically focused on testing the existing functionalities which might have affected because of any bug fix, new feature or change in code. Regression testing can take a lot of time for bigger applications so it is very important to know how regression testing can be performed effectively.
Smoke testing is the type of testing which is focused on testing the big functionalities of the application. It is used for the final check when the release is to be handed over to the users or client. Ideally, smoke testing should not take more than 30 minutes.
We followed a comprehensive guide to manual testing. Starting with the basic concepts of manual testing, skimming through the stages and approaches of manual software testing, we finally landed on the software testing process.
Manual testing does not mean that the software testers cannot use any tool to facilitate the testing process. There are several test management tools available in the market to help you perform software testing in an efficient manner.
We wrapped the guide to manual testing by taking a quick glance on some important software testing techniques.
The best way to stay updated in any area is to follow related blogs and famous personalities of that field. Similarly, we recommend you to regularly follow a few software testing blogs so that you keep on increasing your knowledge and excel in the testing field.
Are you a beginner to the manual testing? Did you find this guide to software testing helpful? Did we miss anything that you would like to add?