Software Testing Life Cycle
We all must be aware of the tree’s life cycle where a small seed goes through distinct phases to gradually grow and develop as a large tree.
The similar concept of life-cycle is also followed in the software engineering field, mainly in the development life cycle and the testing life cycle where former perceives the gradual development of the business or functional requirements into a software application and the latter one visualizes the testing of the software application from a scratch to the release of the quality software application. Since, our article is not concerned to development life-cycle, we will discuss about testing life cycle only.
What is Testing Life Cycle?
Development life cycle is followed by the testing life cycle. A testing life cycle comprises of several phases and activities aligned in a sequential manner to initiate, execute and terminate the testing process.
A software testing process could be initiated as soon as the development process begins and may be carried out in parallel to the development activities. It can be understood through V&V development model, where a corresponding test methodology is defined for each development phase.
Now, coming back to the testing life cycle, it mainly consists of following phases in a subsequent manner.
Let’s find out what each phase consists and is responsible for.
1. Requirement Analysis:-
The very first phase of the software testing lifecycle involves the study and analysis of the available requirements and specifications. Both functional and non-functional requirements are being viewed and study from the testing point of view, to find out the testable requirements i.e. those requirements which may produce results on feeding with the input data.
When to Perform?
- On the availability of requirements and specifications.
- When the application architecture is available.
- Brainstorming sessions for the requirement analysis and feasibility.
- Identifying and sorting out the requirement priorities.
- Creating the requirement traceability matrix (RTM).
- Identifying the suitable test environment.
- Identifying the requirements acceptable for the automated testing and the manual testing.
Requirement analysis stage visualizes the combined efforts of QA team, project manager, test manager, system architect, business analyst, client and the major stakeholders so as to have greater understanding of the requirement and subsequently the better outcomes.
- Testable Requirements.
- Requirement Traceability Matrix(RTM)
- Automation feasibility report (if applicable).
2. Test Planning:-
With the information gathered about the requirements in the previous phase, QA team move a step ahead in the direction of planning the testing process. Basically, a strategy or strategies is/are defined and described for the testing process/activities.
When to go for it?
- On the successful completion of the requirement analysis phase.
- When the testable, refined and clear requirements got defined and specified, i.e. on the availability of requirement documentation.
- Good understanding of the product domain.
- Availability of Automation feasibility report (if any).
- Scope and objectives are outlined.
- Deciding the testing types to be performed along with the specific strategy for each of them.
- Roles and Responsibilities are determined and assigned.
- Identifying the resources and testing tools required for the testing.
- Estimating the time and the efforts to carry out the testing activities.
- Defining and detailing the test environment.
- Defining the time schedules.
- Entry, exit criteria along with the suspension and resumption criteria is defined.
- Planning the training activity and sessions required by the testers(if any).
- Risk analysis is being done.
- Change management process is specified and described.
As per the requirement and the availability, QA Manager or QA lead is accountable for planning the testing process.
- Test Plan documentation
- Time and effort estimation documentation.
3.Test Case Design & Development:-
The requirements has got analysed and accordingly the QA team comes out with a test plan. Now, it’s time to do some creative work and to give a shape to this test plan in the form of test cases. Based on test plan and detailed requirements, test cases are designed and developed for the purpose of verifying and validating each and every requirements specified in the documentation.
- Test cases are designed, created, reviewed and approved.
- Relevant existing test cases are reviewed, updated and approved.
- Automation scripts (if any) are developed, reviewed and approved.
- Relevant test data are generated or imported from the development environment.
- Test conditions along with the input data and expect outcome for each test cases are defined and specified.
Generally, the testers have the job of writing the test cases under the supervision of QA lead or QA manager. However, the testers may be accompanied by the developers in generating the effective automation test scripts.
When to prepare/create test cases?
- On the availability of software requirement specification (SRS) and business requirement specification (BRS).
- When the test plan is ready.
- Automation feasibility report(if any) is available.
- Test cases including automation scripts.
- Test Coverage Metrics.
- Test Data
4.Test Environment Setup:-
The software testing process needs an appropriate platform and environment encompassing the necessary and required hardware and software, to create and replicate the favourable conditions and intended environmental factors to perform actual testing activities i.e. execution of the developed test cases on the software.
- Test data is set up.
- Test environment checklist is prepared and the required hardware and software are aggregated.
- Test server is setup and network settings are configured.
- Test Environment management and maintenance process is defined and described.
- Smoke testing of the environment to check is readiness.
- Testers are being equipped with the bug reporting tools.
QA team under the supervision of QA manager sets up the test environment
When to set up Test Environment?
- When test data is ready for use.
- Test Plan documentation is available.
- Needed resources such as hardware, software, testing tools & framework, server, etc. are available.
However, the test environment set up phase may be carried out concurrently with the test case design & development stage.
- Test Environment is set up and ready to execute tests.
- Smoke Test Results.
With the test cases, test data and the suitable test environment, QA team is now ready to try hands on some actual testing activities. The test execution phase involves the execution of the developed test cases with the help of test data in the set up test environment.
- Test Cases execution as per the test plan.
- Comparison of actual results with the expected outcomes.
- Identifying and detecting defects.
- Logging the defects and reporting the identified bugs.
- Mapping defects with the test cases and accordingly updating the requirement traceability matrix.
- Re-testing, once a defect gets fixed or removed by the development team.
- Regression testing(if required).
- Tracking a defect to its closure.
Test Engineers are deployed to carry out the task of test case execution.
When to go for the test execution?
Being equipped with the test strategy, test plans, test cases, test data, properly configured and set up test environment along with some other needy resources, the QA team can kickoff the test execution process.
- Test Status and results.
- Bug or Defect Report.
- Complete and updated Requirement Traceability Matrix (RTM).
The completion of the test execution phase and delivery of the software product marks the beginning of the test closure phase. This phase perceives the meeting and discussion amongst the QA team members with respect to test execution and its results. Apart from the test results, other testing related parameters are considered and reviewed such as quality achieved, test coverage, test metrics, project cost, adherence to deadlines, etc.
- Retrospection of the whole testing process.
- Test Life Cycle exist criteria is evaluated along with some other essential aspects such as test coverage, quality achieved, fulfilment of goals and objectives, critical business goals, etc.
- Need to change the exit criteria, test strategy, test cases, etc. are discussed.
- Test Results are analysed and reviewed.
- All the test deliverables such as test plan, test strategy, test cases, etc. are collected and maintained.
- Test Closure Report and test metrics is prepared.
- Defects are arranged severity wise and priority wise.
Generally, the QA lead or the QA Manager is responsible for preparing the test closure report.
When to perform test closure activities?
Generally, the test closure activity begins after the completion of test execution activities and delivery of the software product. However, it is not necessary to carry out the closure task only after the delivery of the software application. It may be performed after closure of the testing activities due to some other reasons such as achievement of targets, cancellation of the project or when the product needs update, etc.
- Test Closure Report.
- Test Metrics.
- Learned process.
In nutshell, it may be concluded that similar to development life cycle, testing life cycle also consists of several phases and each phase counts a large number of activities to strategically and orderly carry out the testing process in an effective and efficient manner and subsequently ensuring maximum productivity and quality achievement.