Software Testing Life Cycle (STLC) is a group of activities that a testing team needs to perform methodologically, as part of their testing, to ensure that the software is of optimum quality.
Just as the development team follows the Software Development Life Cycle (SDLC) for development, for testing there is a separate life cycle called Software Testing Life Cycle (STLC) to ensure that the best practices for testing are followed.
To achieve the highest quality of deliverables, it is essential for the testing team to carry out a set of activities in the software testing life cycle.
Each activity in the software testing life cycle is handled in a well planned and systematic way to ensure high standards. Each phase has different sets of entry and exit criteria, goals and deliverables.
Even though different organizations follow different structures based on their size and standards, the basic structure of the software testing life cycle remains is similar to the software development life cycle.
Entry Criteria and Exit Criteria
Entry and Exit criteria are normally defined for every phase of the software test life cycle.
Entry Criteria is the set of items or documents that are mandatory for the testing to start.
On the other hand, an exit criterion is the set of items that must be finished before software testing ends.
Identifying the entry and exit criteria for each stage in the life cycle is critical for improving the testing process.
Software Testing Life Cycle Phases
The software testing process goes through many phases that are part of the software testing life cycle. These phases are explained below.
- Requirement Analysis : During the requirement analysis phase, the testing team, including the test lead and the test manager, sit together and review the Software Requirement Specification (SRS) document to understand the functional as well as the non-functional testing requirements clearly.
During this phase, they may even setup some meetings with the client so that all the requirements are clear. After that, the testing team will prepare the acceptance criteria document and then send it to the customer for approval.
In this phase, the testing team will prepare the Requirements Traceability Matrix (RTM), identify the techniques and types of testing, prioritize the items based on their priority/importance, analyze whether it is feasible to use the automation testing approach or not and make a decision regarding the test environment.
- Requirement Traceability Matrix (RTM) Signed Off
- Automation Possibility Analysis Report.
- Test Planning : After the requirement analysis phase is completed, the test planning phase begins. Here, it is the responsibility of the test manager or the test lead to prepare the Test Plan document and the Test Strategy document.
Decisions about what to test, who is going to test and how to test are taken here. The test schedule and the number of hours to be allocated for testing are also estimated during this phase.
- Test Plan
- Testing Effort Estimation
- Details of resources including their skills, and responsibilities.
- Test Strategy
- Testing tools (if any)
- Test Case Development : Once the test planning phase gets over, the testers start preparing the test cases based on the software requirement specification document. If automation testing is going to be performed, then, the test scripts are also prepared in this phase.
The test cases written and the automation test scripts are then reviewed by the senior members of the team. The test data is also created during this crucial phase.
- Test Cases
- Test Data
- Automation Scripts
- Testing Environment Setup : After the test cases and the test data are prepared, the next phase deals with the setting up of the testing environment. During this phase, all the necessary hardware and/or software that are required for the testing application to run properly are installed.
Once the application or software to be tested is ready, it is then deployed to the testing environment and after that the test data is integrated with it.
Smoke testing is carried out in this phase to make sure the basic features of the application are working and the software is ready for detailed testing.
In some organizations, the testing environment setup phase is done parallel to the test case development phase so that the testing time can be saved.
- Test Environment Document
- Test Data Integration Details
- Smoke Testing Results
- Test Execution : The actual testing starts in the test execution phase. Here, the testing team executes test cases in the test environment that was set up in the previous phase.
When the test cases fail, defects are logged using defect tracking tools and once they are fixed, they are re-tested and closed. The test execution phase is the most time consuming phase of the software testing life cycle.
- Test Execution Report
- Bug Report
- Test Cases and Test Data with Test Results
- Test Cycle Closure : This is the last phase of the software testing life cycle. When the testing process is completed, the test lead will prepare the test closure report.
During this phase, the testing team members including the test leads and the test manager meet and analyze the good and the bad things that happened during the testing life cycle.
The basic aim of this phase is to understand and learn from mistakes and make sure it is corrected and not repeated the next time.
- Test Closure Report prepared by the Test Lead or the Test Manager
To summarize, the software testing life cycle is all about planning, preparing, executing and reporting of all the tests. When every member of the testing team understands the different phases clearly, the efficiency and effectiveness of the testing process increases.