Software testing life cycle is nothing but the software testing process adopted during software development. No matter which software development model is adopted in the project, the phases of software testing as described below remains same:
1. Requirements analysis
2. Test planning
3. Test Case development
4. Test Environment Setup
5. Test Execution
6. Test Closure
Let’s discuss each of these phases in detail:
Requirements Analysis Phase
In this phase the testing team go through the Software Requirement Specification (SRS) document to understand the requirements that are going to be developed for the project, clarify any doubts with the business analysts and prepare a document containing all the requirements for which testing could be performed. This phase is also a great opportunity for testing team to understand the application under development in detail. Test Specifications document is prepared and approved by the end of this phase.
Test Planning Phase
In this phase Test Lead starts prepare a document i.e. Test Plan document which describes the procedure to be adopted in the project regarding testing of the project under development. The main components of a test plan include:
a. Objective of testing for the project
b. In and out of scope items for the project
c. Testing schedule
d. Roles and responsibilities of each member of the test team in the project
e. Test case pass/fail criteria
f. Test deliverables etc.
Test Plan document is prepared and approved by the end of this phase.
Test Case Development Phase
As the name suggests test case development starts in this phase. Test cases are developed based on the SRS document. Test case document should contain both positive as well as negative test cases. Another document called Requirements Traceability matrix could also be introduces in this phase to trace the test cases on the basis of requirements i.e. which test cases belong to which requirement. Test Case document is prepared and approved by the end of this phase.
Test Environment Setup
In real time, there is a separate environment for development team, testing team and end users. Test environment is nothing but the hardware infrastructure on which the application will run for different purposes like development, testing and accessing the application by end users. As we are talking about test environment here so test environment is setup for testing purposes in this phase. Ideally the development and test environments should be similar to production environment because ultimately the application is going to run in the production environment so it is better to develop and test the application on the similar environment so that no or minimal issues arise when end users start accessing the application.
In this phase testing team starts executing the test cases and mark them as pass or fail depending on the execution results. Bugs are logged in a defect tracking tool by the testing team for each test case that has failed. The bugs are ultimately fixed by the development team. This phase is most crucial for releasing the project into production servers because if testing team is able to find lot of critical and major bugs then it is not feasible to release the application for end users. Bug Report is prepared and approved by the end of this phase.
Once the development team fixes all the critical and major bugs found by the testing team during test execution phase the application becomes ready to get launched to the production for end users to access it. Although the testing process continues even after the application is launched into the production servers but it is done by the end users and not by the testers. Test Summary report is prepared by the end of this phase.