Far from being a single procedure, software testing is a group of extensively planned activities composed of several steps and stages. The sequence of actions taking place during the overall testing process referred to as the Software Testing Life Cycle or the STLC.
The STLC is an integral part of any software development which happens over six distinct phases. Let’s take a look at each of them, and see how everything fits together.
Different Phases of the Software Testing Life Cycle
Requirement Analysis: This begins once the business and functional requirement documents have been shared with the testers. During this phase, testers review all the documents provided, make notes on the queries and concerns, and identify any gaps. The objective of this step is for testers to extract information that will help define the scope of QA and with planning the overall testing activities. During this phase, several meetings take place between stakeholders, development, and the testing team to align and clarify expectations.
Test Planning: The second phase of STLC is test planning, which begins after completion of the requirement analysis. During the analysis phase, the testing team collates information to help with planning the tests, and during the planning phase, the overall test approach and strategy are laid out. These activities are conducted mostly by Test Leads or QA Managers, and the main output from this phase is an understanding of test estimations and required resources.
Test Design: The designing of tests involves creating test cases or automation test scripts, as per the project’s requirement. The test design begins once test planning has been completed, allowing the testing team to refer to the test plan, understand the scope of QA, and, based on the specification document, create test cases. During this phase, testers prepare test cases for all the different types of planned tests such as regression, smoke, functional, etc. Several rounds of reviews and approval take place, and each of the cases must receive finals approval before it is ready for execution. Some test cases require certain admin privileges before they are performed because of security concerns. In such circumstances, the stakeholders usually prefer to test them in-house. Identifying those test cases and assigning them to appropriate testers is part of the test design phase.
Test Environment: The next stage is to set up the test environment in which to execute the test cases. Listing the test environment requirements is a critical aspect of test case creation. Each test case should identify the platform or URL that will be required by the tester performing the tests. Before testing can begin, the test environment needs to be set up and operational. All foreseeable issues caused by a poor environment that could impact overall QA timelines and planning need to be eliminated at this stage.
Test Execution: This is the phase where the actual testing takes place. After the testing environment has been prepared, the test cases that were prepared during the test design phase are run. For any variations noted between the expected and actual behavior, the tester creates a defect and assigns it to the respective developer. Within the STLC, this is the most critical phase from a tester’s point of view, since they are required to test the application from every aspect. Many inaccurately believe that test execution is the only activity involved in the QA process since the overall status of the finalized product is dependent on the output of this phase.
Test Closure: As the name indicates, test closure is the final step of the software testing life cycle. This step summarizes the overall testing results, which can be presented through a variety of reports and testing metrics. Because test closure represents the end of the testing cycle, the testing team will provide sign-off and feedback to the stakeholders about the recently concluded process. The team is also required to list any deferred non-critical bugs to be fixed later. Apart from project-specific feedback at this stage, another vital activity is to collect input from the team about their learnings or any areas of necessary improvement. This feedback is taken into consideration to help further improve the overall process.
Understanding the Software Testing Life Cycle helps testers grasp the overall software testing process and related dependencies, but it’s not a hard and fast rule that every project follows the same process. With the current trend of moving towards greater use of cloud technology, testing and development often take place in the same environment. Therefore, because of regular communication between all involved, many small budget projects skip the test closure phase entirely because they only need feedback on the defects found. So although STLC is a useful framework for structuring test projects, it is quite acceptable for the testing industry to adopt and apply the practice as per the need of the project.