What Is the Software Testing Life Cycle?
In the world of Agile software development, software testing isn’t a single stage carried out just before the release of your application.
Join the DZone community and get the full member experience.Join For Free
In the world of Agile software development, software testing isn’t a single stage carried out just before the release of your application. Instead, software testing is a complex, multi-faceted process involving many phases and specific activities carried out methodologically and in parallel to the development process. And just as there is a software development life cycle (SDLC) for building the application, there is a software testing life cycle (STLC) for validating it.
“Software Testing Life Cycle (STLC) is a sequence of verification and validation activities carried out in the course of software development to ensure that the quality goals of the software under test are met in full. ”.
Every STLC phase has certain entry and exit criteria associated with it as well as its own deliverables. And your software testing team must not enter the next phase of the QA life cycle until they made sure that the exit criteria for the previous one are met and that they have all the necessary deliverables to move on.
Now let’s look into the activities and deliverables for each phase of each one of the software testing life cycle phases.
1. Requirement Analysis
At this stage of the software testing life cycle, the QA engineers work both within their own team and cross-functionally. They thoroughly study the business objectives, the features to be designed and supported, and the detailed system requirements, including functional and non-functional specifications. When in doubt or lacking certain information due to unclear areas in documentation, the QA team addresses the tech and business specialists on the project for clarification until everything is clear as day.
- Gather information about the development and testing priorities.
- Prepare the RTM (Requirement Traceability Matrix) document for the project.
- Identify the types of tests to be performed on the project.
- Carry out a feasibility analysis for test automation (in case the QA team decides to automate certain tests).
- Requirement Traceability Matrix.
- Test automation feasibility report.
2. Test Planning
The second STLC phase is where the QA team determines the resources and effort required to implement the project based on the data they collected and processed in the requirement analysis phase. The key objective of this phase is to provide the entire project team with documentation on how the testing will be organized, approached, and executed in the course of the project, including the testing schedule and possible test limitations.
- Estimate the effort required for the project.
- Determine roles and responsibilities.
- Prepare hardware and software requirement lists for the test environment.
- Prepare the documentation necessary for project launch.
- Test plan
- Test strategy document
- Effort estimation document
3. Test Case Design and Development
With a solid test plan and strategy in place, the QA team can begin preparing the actual tests. The design and development process involves creating, verifying, and reworking test cases and test automation scripts based on the data from the test plan. The team also prepares the test data to flesh out the details of the structured tests they will run. All the test cases/scripts created during this phase will be continuously maintained and updated over time to validate new and existing functionality in the course of development.
- Create test cases
- Create test automation scripts (in case the QA team decides to automate certain tests).
- Review and baseline test cases and test automation scripts.
- Create test data
- Test cases
- Test automation scripts
- Test data
4. Test Environment Setup
In short, the purpose of the test environment stage of the software testing phases is to provide the QA team with a setting where they can exercise new and changed code provided by the development team, locate possible faults and errors, and then contact the responsible developer, providing them with a detailed test report. Different types of testing suggest different types of test environments. It’s also important to mention that depending on how sophisticated your test environment is, the tests may be carried out sequentially or in parallel (some or all at once).
When setting up a test environment, the QA team considers a whole range of parameters such as hardware, software, frameworks, test data, configurations, and networks. These parameters are then adjusted depending on what a particular test case requires.
- Setup the test environment
- Try out the test environment with a series of smoke tests.
- The test environment is all set up and ready to go.
5. Test Execution
Next in the STLC is the part of the QA life cycle everyone is well aware of, which is the testing itself. Following the test plan, the QA team executes all of the test cases and test automation scripts they prepared in the test environments they have set up well. The software testing process involves all kinds of different functional and non-functional tests where software testers identify bugs and provide the project team with detailed testing reports. Then, after the developers introduce the necessary fixes, the QA team runs a series of retests to make sure that all the reported defects have been dealt with.
- Execute tests as per the test plan.
- Document the test results.
- Map the issues found to test cases in RTM.
- Retest the fixes provided by the development team.
- Track every fault and error to closure.
- Detailed testing reports
- Test cases updated with the results.
- RTM completed with the execution status.
6. Test Cycle Closure
The final one of the software testing life cycle phases involves several activities, such as a collection of test metrics and test completion reporting. Thus, the QA team summarizes and shares the results of their work with the rest of the team. The main artifact of this phase is the test closure report, a detailed analysis document that provides data on the types of testing performed, processes followed, the number of test cycles carried out, etc.
- Assess the cycle completion.
- Prepare test metrics
- Prepare a detailed test closure report.
- Test closure report
From here on, the project team plans the application for support and release, including the analysis of all the testing artifacts and building a test strategy for further growth and extension of the application.
To Sum Up
The life cycle of software testing is there for a reason: a flawless knowledge of the STLC phases allows the team to plan their work correctly, give precise estimates to the client, and know which results to expect at every stage of the process.
Being aware of the software testing phases is also beneficial to the product owner, as it helps create proper time and budget estimations. This can be especially useful when working with an outsourced software testing team when the client cannot possibly control as much of the daily operations as with an in-house team.
Published at DZone with permission of Anna Smith. See the original article here.
Opinions expressed by DZone contributors are their own.