Software Testing Life Cycle (STLC): An Introduction
Software Testing Life Cycle or STLC is a set of chained activities to be conducted during the testing process to satisfy the software quality goals.
Software testing is not a single/isolated activity but a series of predefined activities involving both verification and validation.
These activities in software testing are carried out methodologically to help certify the software product.
The Software Testing Life Cycle (STLC) Model has a total of 6 stages that need to be completed to get your software certified. Thus the test team needs to have in detailed knowledge of STLC phases along with applicable test planning in the project. They must be proficient with the test case development activity and strategy document.
Each of these STLC stages has its definite entry and exit criteria, deliverables, and activities.
The phases are:
- Requirement Analysis
- Test Planning
- Test Design
- Test Environment Setup
- Test Execution
- Test Closure
Software Testing Life Cycle Phases, Entry, Exit Criteria
In Software Testing Life Cycle or STLC, for every level or phase, the test has an entry and exit criteria.
Entry Criteria: This states the prerequisite items or criteria that must be satisfied before testing that phase begins.
Exit Criteria: This states that the items or criteria to be fulfilled before a particular phase or level can end to finally achieve a test closure report.
Ideally, one cannot enter the next STLC stage unless the exit criteria for the previous is satisfied. This is so because it is not always practically possible for the phase testing team to skip an exit criteria and move on to the next phase.
Thus, in this article, we will focus on the different activities and deliverables required or involved in various stages and phases of the STLC.
1. Requirement Analysis
This Software Testing Life Cycle (STLC) phase requires the test team to study the requirement analysis document and analyze it from a testing point of view to identify the testable requirements. They help in test case development.
These requirements can be functional or non-functional and hence be dealt with accordingly.
The QA team may also interact with the stakeholders to clarify any doubts regarding the requirements.
Automation feasibility testing is also a part of this requirement gathering phase in the STLC Software testing life cycle.
- Requirement Document (functional and non-function both) must be available in this phase.
- Acceptance criteria need to be defined.
- The architectural document of the application must be available.
- It is identifying different types of tests that need to be performed.
- The feasibility analysis for automation is done if required to generate an automation feasibility report.
- Determining the test environment details.
- The details about the priorities and focus of testing are gathered.
- Preparing Requirement Traceability Matrix (RTM).
- RTM sign off.
- The client signs off on the Test automation feasibility report.
- RTM to be generated.
- The Automation feasibility report is generated, if applicable.
2. Test Planning
The second stage of the Software Testing Life Cycle (STLC), called Test Planning phase, involves the test strategy determination by the Senior QA manager to perform various testing activities.
In this phase the test environment, resources, testing schedule, test limitations, are determined, and the plan is prepared and finalized accordingly before moving ahead with test case development.
After requirement analysis, test planning is the next most important phase and hence it needs to be performed with caution.
The budget, effort, time, and almost everything related to testing depends on the correct formation of the test planning document which is why it is mostly assigned to the Quality Assurance (QA) team.
This test plan development phase also involves estimating the efforts and cost of the project along with a test plan document.
- Requirement documents must be available.
- A requirement traceability matrix from the previous phase must be available.
- Record for test automation feasibility of the last phase.
- Selection of software testing tool.
- Test cost and effort estimation document.
- Test strategy document for various testing to be prepared.
- Training requirements need to be analyzed.
- Roles and responsibility determination and resource planning are to be done.
- Test manager has an approved test plan.
- Cost and effort estimation documents must be signed off.
- Test strategy document delivered.
- Cost and effort estimation document provided.
3. Test Design (Test Cases)
The verification, creation, and rework of various test cases, test scripts, and test data are to be completed in this phase testing of STLC.
Before creating test cases, test scripts test data needs to be identified, created, and then reviewed and later reworked depending on the preconditions set to generate test cases. These test cases provide complete test coverage in the project.
However, one must know that it isn’t feasible to execute all the possible test cases.
After the test data finalization, the QA team can start developing various test cases, test scripts for different units in the project.
- Requirement documents are available from previous phases.
- Test plan and RTM delivered of earlier phases.
- Analysis report for automation available.
- Automation scripts, if applicable, and test cases for testing are to be created.
- These test cases and scripts are reviewed and baselined.
- If the testing environment is available, then test data and test cases are created.
- Test case/script has to be reviewed and signed.
- Test data must be reviewed and signed.
- Test cases or scripts generated.
- Test cases finalized.
4. Test Environment Setup
The hardware and software conditions under which the testing will be done are determined in this phase of STLC.
It can be done in parallel with the Test Design Phase.
Test environment setup is one of the most critical aspects of the testing process.
Before starting the actual testing of the project, the test team performs a readiness check or smoke testing of the test environment.
This phase need not be performed if the Test Design provides the test environment.
- Environment setup plans from the test design phase must be available.
- Design and architecture documents of the system must be available.
- The hardware and software requirement list is prepared by understanding the required environment setup and architecture.
- The test data and environment are set up.
- Before actual testing, smoke testing of the build is done.
- Smoke tests should be successful.
- Environment setup must work as per plan and checklist.
- Test scripts, Test data, and test cases setup in the environment is completed.
- An environment ready set up with test data is delivered.
- The smoke test results are generated.
5. Test Execution
The fifth phase of STLC, called the test execution, involves testing the build software according to the test cases and test data generated in the third phase of STLC and is performed inside the developed testing environment.
The testers are required to execute every single test case in this test execution phase and generate a test case execution report.
Test script execution, defect reporting, and test script maintenance are some of the steps involved with this phase of STLC.
If any defects are reported, the testing halts and is reverted to the development team.
Once the development team solves the defect, retesting is performed.
- Test data set up with the environment must be completed.
- Test plan, baselined RTM, and test cases/scripts should be made available.
- The test environment needs to be ready and smoke tested.
- Unit and integration testing reports for different modules should be available.
- The tests need to be executed as per plan.
- For any detected defects, retesting will be performed.
- RTM is mapped with defects to test cases.
- The test results and defects for failed cases are documented and logged.
- Faults must be closed through retesting and before getting into the final phase.
- All Test cases and plans successfully executed.
- Defects logged and tracked till their closure
- RTM with execution status is completed and delivered.
- The results of the test cases are updated in the test case execution report.
- Defect reports are delivered.
6. Test Closure
The final phase of STLC, Test Closure, is a crucial phase in the project to remove the process bottlenecks for future test cycles.
The test cycle closure phase involves collecting the final report, test completion matrices, and test completion reporting.
Apart from these, the test cycle closure phase also involves a meeting of testing team members to discuss and analyze the testing strategies that can be implemented in the future, as a lesson taken from the current test cycle.
- All testing has been completed.
- The final test results are available.
- Complete Defects log is available.
- Test closure report will be prepared.
- Time, Cost, Software, test coverage, quality, critical business objectives are used to evaluate cycle completion criteria.
- Test metrics based on the above parameters will be prepared.
- The defect distribution by type and severity is found using test result analysis.
- Quantitative and qualitative reporting of the quality of the Software is reported to the customer.
- The client will sign off the test closure report.
- Test metrics delivered.
- Test closure report generated.
STLC vs. SDLC: How Do They Differ?
|SDLC stands for Software Development Life Cycle.||STLC stands for Software Testing Life Cycle.|
|According to the design documents, all the work and real coding are done.||The testing team is responsible for creating test cases, test environments, and testing the developed code.|
|It is the business analyst’s responsibility to gather requirements from stakeholders and create a development plan.||The Quality Assurance’s (QA) responsibility is to analyze functional and non-functional requirements from the requirement document and create a test plan document with applicable test cases.|
|Post-deployment support and updates are part of the Software Development Life Cycle (SDLC).||Regression testing and automation scripts are usually executed to perform maintenance of the code.|
|The main objective of SDLC is to successfully deploy software with all phases, including testing to be completed.||STLC is a part of SDLC, with testing as a sole objective.|
|The development team creates high and low-level designs as part of SDLC.||The test analyst is responsible for creating the integration test plan and test cases in STLC.|
|It has six phases: Requirement Analysis, Software Design, Software Build, Testing, Deployment, Maintenance||There are six STLC phases: Requirement Analysis, Test Planning, Test Case Development, Test Environment Setup, Test Execution, Test Closure|
What are the phases of STLC?
It has six phases: Requirement Analysis, Test Planning, Test Case Development, Test Environment Setup, Test Execution, Test Cycle Closure.
What is the difference between STLC and SDLC?
STLC: It stands for Software Testing Life Cycle, in which the QA team tests the developed Software for any possible bugs with the help of a test plan, test cases, and testing environment.
SDLC: This stands for Software Development Life Cycle, in which a business analyst analyzes business requirements based on which developer develops the code. Testing and maintenance are also a part of SDLC.
What is the QA life cycle?
Quality Assurance (QA) life cycle or STLC refers to a set of chained activities to be conducted during the testing process to satisfy the software quality goals.
What are the entry criteria for coding?
The entry criteria for coding include:
Verify availability and usability of the test environment.
Verify installation of testing tools.
Verify availability testing code.
Verify availability and validation of test data.