Software Testing Life Cycle (STLC)
There are a lot of source in the internet for testing process and testing life cycle. But I found none which covers all the phases correctly. So based on my work experience I tried to explain all the phases of the STLC and the activities done during each phases.
The phases of software testing life cycle are:
1. Requirement analysis
2. Test plan
3. Test case development
4. Test bed setup and Dry run
5. Test case execution
6. Defect retesting
7. Test closure
This is the first step of STLC. Software quality assurance team or testing team starts analyzing the requirement documents to understand the client/end user expectations. During this process QA team raise questions to the business analyst and other stakeholders if they face any difficulty while analyzing the requirements.
Signed off requirement document should be available
All the queries raised by the QA team should be answered
Generally there is no deliverables in this phase. But QA team should maintain a query tracker and can show it to the client. Also they can prepare a report based on approximate automation testing percentage and manual testing percentage.
After requirement analysis QA team starts planning. All the planning should be documented. Generally cost and effort estimation is done before project starts but sometimes cost and effort estimation is also a part of this phase.
Requirement analysis is completed.
Test Plan document is prepared.
1.Test Plan Document
2.Test Strategy Document
3.Estimation sheet (Optional)
Difference between Test Plan and Strategy:
In some projects these two are maintained separately. But in most cases people include test strategy as a part of test plan document. Typically test strategy is a very high level approach of testing. On the other hand test plan is a detailed document describing each and every process of testing.
Components of a test strategy document:
If test strategy document is maintained separately the below components are must. Except these you can add as many as you want, but keeping it short is recommended.
1. A process flow diagram of the project
2. In scope
3. Out of scope
4. Test deliverables
5. Test tools to be used
Component of a Test Plan document:
1. Introduction/Purpose of the document
2. Test items (In Scope)
3. Test deliverables
4. Features not to be tested (Out of Scope)
5. Test Environment requirements (this includes testing tools as well)
6. Test techniques (Manual and automation details)
7. Test phases (Smoke testing, System-Integration Testing, Regression Testing, Sanity Testing etc.)
8. Test Case pass or fail criteria
9. Defect reporting and tracking process
10. Plan of training schedule and details
11. Rolls and Responsibilities
12. Testing Schedule (Planned schedule for all testing phases)
13. Risks and Mitigation plan
14. Communication and status reporting process
17. Change and configuration management
Test case development
After planning test case development starts. Testers write manual or automation scripts for testing. Test Scenario, Test Cases and Requirement Traceability matrix (RTM) are prepared in this phase.
Test Plan is signed off
Test Scenario, Test Case are ready
Requirement Traceability matrix (RTM)
Requirement Traceability matrix (RTM):
It is a matrix where each requirements are mapped with test cases. This matrix is prepared to ensure that all the requirements are covered by test cases. Typical process to create this matrix is, in a spread sheet all requirement numbers are written in one column and in the next column corresponding test case name/ID are written. This way you can showcase your client, that all the requirements are covered for testing.
Component of a Test Scenario sheet:
1. Scenario ID
2. Scenario Name
3. Scenario Description
Component of a Test Case sheet:
1. Scenario ID
2. Test Case ID
3. Test Case Name
4. Test Case Description
5. Step No
6. Step Description
7. Expected Result
8. Actual Result
Note: For a particular scenario there can be one or multiple test case. So to maintain Scenario ID in Test case sheet is recommended.
Test bed setup and Dry run
Test bed or test environment setup is the next step. Before starting test execution test environment setup is required. In most of the cases separate environment team do this setup with the information provided by testers. In this phase there is no deliverables.
In this phase testers start executing of the test cases they wrote during test design phase. Multiple stages are involved in this execution phase. Let’s describe one by one in order.
Smoke Testing: This is the first phase of the execution. In this phase testers test the environment to check that the environment setup. Generally testers run their scripts to verify that environment is good to go with further testing. If smoke testing passes, then testers start the actual testing of the new built.
System Integration Testing (SIT): It’s a combination of system testing and integration testing. The main testing happens in this phase. Testers run all their manual and automation test scripts to verify the new system developed.
Regression Testing: This is required when some existing functionality was already there. Testers do regression test to make sure the existing functionality is working properly and it’s not broken due to the new part developed. For a project started from scratch, this testing is not required.
Sanity testing: The last phase of execution. Generally people do not do this phase. But this is one of the important testing phase to be covered. In this phase testers identify few critical business area and test those area in depth (Though these are covered during SIT still some more detail testing is required).
Test cases are ready
Test bed setup is done
All the test cases are executed
This is an extended part of test execution.
Retesting: While SIT and Regression testing testers raise defects. Developers fix them and they redeploy the code in testing environment. Then tester again tests the failed test cases. This is known as retesting.
All the defects are fixed
All the failed test cases are executed and they are passed
Closed defect matrix
This is the final and end stage of testing life cycle. Generally tester’s job finishes in this phase and Test lead prepares a detail closure report.
Component of a Test Closure report:
1. Document Objective
3. Scope of Testing (To show all scopes mentioned in test plan are covered)
4. Testing Schedule (Report planned start date, end date and actual start date and end date of each phases)
5. Scenarios Covered
6. Types of Testing Conducted
7. Test Cycles and Activities
8. Test Environment / Tools Used
9. Test Results and Execution Metrics
10. SIT Status and Defect Metrics
11. Performance Testing Report
12. Test Deliverables
All the defects are closed.
Test Closure report to be signed off from client.
Test Closure report.