The Software Testing Life Cycle
Software Testing Life Cycle refers to the software testing process that consists of a set of steps to be executed in a sequence. It is done to ensure that the software meets the required quality standards and to identify areas that need improvement. Although the phases of software testing life cycle may vary based on the organization, the basic steps remain the same.
Analysis of Testing Requirements
This is the first phase of the software testing life cycle, where the Quality Assurance testers study and analyze the testing requirements. This stage helps in identifying the scope of the testing needs.
The two major kinds of testing are functional testing and non-functional testing:
- Functional testing - involves tests to evaluate the functioning of the software.
- Non-functional testing - involves tests to assess behind-the-scene features, such as performance testing, security testing, and load testing.
The activities involved during the requirements analysis phase are as follows:
The Quality Assurance team holds group discussions to analyze the requirements and creates a list of testing needs.
- In the case of any doubts, the Quality Assurance team will clarify all concerns with the clients and/or stakeholders.
- Then, the Quality Assurance team outlines the possible tests required to complete the project.
- In case the project requires automation, an automation feasibility study will be done.
Once the test analysis requirements are completed, the next step is to plan how the testing will be done. This involves identifying the resources and activities that can help in meeting the testing objectives. The outcome produces the Test Plan document. The planning is done based on two factors:
- Test strategy of the organization.
- Analysis and management of risks.
The activities involved during the test planning phase are as follows:
- The scope of the project is determined.
- The risks involved are analyzed and a plan is made to mitigate them.
- Test estimation is performed.
- Selection of appropriate test solutions.
- The tools and resources needed for the testing are analyzed. This includes analysis of cost, personnel required, man-hours needed to complete the work, and the deadline within which the results have to be delivered.
- Analysis of the need for any training should it be required.
Development of Test Cases
In this phase, the Quality Assurance team creates detailed test cases. This is one of the major tasks and considered one of the most important phases in the software testing life cycle.
The activities involved are as follows:
- Development of test cases for all features in the software.
- Creation of automation scripts if needed.
- Test cases and test automation scripts are reviewed.
- Test data is created.
Setting Up of Test Environment
The next phase of the software testing life cycle involves the installation of software or hardware required for testing the software/application. This phase can also be carried out parallel to the test case development phase.
The activities involved during the setup phase are as follows:
- Interpretation of the design and structure of the software.
- Setting up of the test environment for live testing.
- Installation of hardware and software required.
- Integration of any third party application is done, if required.
- Installation of the build is tested.
- Generation of test data.
- Smoke testing on the build is carried out to check the working of basic functionalities.
- The build is accepted or rejected depending on the smoke testing result.
The outcome of the test environment setup phase of Software Testing Life Cycle includes setting up of the test environment, test data, and the smoke test result.
Execution of Test Cases
The test cases are executed in the testing environment at this stage. The Quality Assurance team may come across bugs during the execution of test cases, which are then reported with detail. The test cases are then retested by the Quality Assurance team once the bugs are fixed by the developer.
The activities involved during the test execution phase are as follows:
- Test cases are executed in the testing environment.
- Test result document is prepared.
- Defects in the failed test cases are recorded.
- Test cases and test plans are updated if needed.
- Test cases are retested after fixing the defects.
- Closure of the defects if they are working after being retested.
- Implementation of regression testing of the software to ensure that it is stable after the closure of the defects.
- The outcome of the test execution phase of Software Testing Life Cycle includes completion of test case execution report, updating of test cases wherever needed and bug reporting.
Software Test Cycle Closure Phase
During this phase, the Quality Assurance team holds a meeting, where they discuss the testing bi-products. The intention of this meeting is to understand the mistakes made during the testing process and to see that they are not repeated in future projects.
The activities involved during the test cycle closure phase are as follows:
- Assessment of the test completion based on Test Coverage and Software Quality
- Logging of lessons learned from the project
- The test results are analyzed to understand the distribution of serious defects
- Creation of the Test Closure report