Testers follow various strategies and approaches to aim for optimum quality. One interesting process is the software testing life cycle (STLC) 🔁 It is a process where testers seek to meet the software quality standards. There are six steps for the systematic approaches of STLC:
- Requirement analysis
- Test planning
- Test case development
- Environment setup
- Test execution
- Test cycle closure
Testing teams may currently use the majority of these steps but STLC allows testers to shift left in development lifecycles because it allows testers to discover requirements, test ideas, and formulate test scenarios.
This article covers the basics of STLC and its benefits, discusses its various phases, and walks you through the differences between STLC and Software Development Life Cycle (SDLC). Let’s deep dive into it then! 💪
Benefits of Software Testing Life Cycle (STLC)
Some of the STLC benefits include :
- Increased consistency and effectiveness as project requirements are analyzed.
- Clear and defined goals for test products, which helps track the project’s process.
- The confidence in each feature passes testing before adding additional features.
- Tests are designed in a meaningful manner.
- Specifications are clear, which helps the team.
- It’s a systematic approach that quickly resolves bugs and defects in the product.
What are Entry Criteria and Exit Criteria in STLC?
Entry Criteria: Entry Criteria are a set of conditions that testers must satisfy to begin the test.
Exit Criteria: Exit Criteria are a set of conditions that testers must satisfy to end the test.
Phases of Software Testing Life Cycle (STLC)
Phase 1: Requirement Analysis
In the first phase, the STLC team understands the requirements 📃 If necessary, the testing teams may also consult with stakeholders to clarify the requirements. The requirements may be functional or non-functional and the decision to automate testing is also evaluated at this point.
Activities in Requirement Analysis:
- Identify customer needs and types of tests to be performed.
- Gather details about requirements from the customer about the applications.
- Prepare Requirement Traceability Matrix (RTM).
- Identify test environment details.
- Automation feasibility analysis (if required).
Deliverables of Requirement Analysis:
- Requirement Traceability Matrix (RTM).
- Automation feasibility report (if applicable).
Entry Criteria Requirement Analysis: client requirements, acceptance criteria, and intended product architecture to be documented.
Exit Criteria Requirement Analysis: aim for a requirement traceability matrix (RTM) and decision of automation.
Phase 2: Test Planning
This phase includes implementing and defining a test strategy in the testing plan and estimating the efforts and costs of the testing team. This stage commences once requirement gathering is complete.
Test Planning Activities
- Preparation of test plan documents for different types of testing.
- Selection of test tools.
- Test effort estimation.
- Resource planning and deciding roles and responsibilities.
- Training requirement.
Deliverables of Test Planning
- Test plan document.
- Effort estimation document.
Entry Criteria Test Planning: Report the implemented test strategy.
Exit Criteria Test Planning: Testers should have approval on the test plan’s risks and costs.
Phase 3: Test Case Development
During this phase, testers create test cases. Each case defines test inputs for data, procedures, execution conditions, and anticipated results 📊 Test cases should be transparent, efficient, and adaptable. Once all test cases are created, test coverage should be 100%. Any necessary automation scripts are also created during this phase.
Test Case Development Activities
- Creation of test cases and automation scripts (if applicable).
- Review test cases and scripts.
- Create test data (If Test Environment is available).
Deliverables of Test Case Development
- Test cases/scripts.
- Test data.
Entry Criteria Test Case Development: Approval of timelines to execute the test plan.
Exit Criteria Test Case Development: Approval of test cases and automation scripts.
Phase 4: Test Environment Setup
In the fourth phase, a QA/Testing environment is configured and deployed to allow testers to test the feature. Once the testers deploy the environments, smoke testing may be performed to ensure the environment is working with the intended functionality ✅
Test Environment Setup Activities
- Testers must keep the test environment ready by understanding the required architecture, environment setup, and preparing a hardware and software requirement list.
- Setup test environment and test data.
- Perform a smoke test on the build.
Deliverables of Test Environment Setup
- Test Environment ready with the prepared test data.
- Smoke Test Results.
Entry Criteria Test Environment Setup: Have a defined system design and project architecture.
Exit Criteria Test Environment Setup: Have a working QA/Testing environment set up to run test cases.
Phase 5: Test Execution
In the fifth stage, testers begin the test execution as the environment is successfully set up. The test cases generated at phase three are put into action here and previously expected results may compare to the actual results as a baseline. Testers may also report back interesting findings, such as bugs, to the development teams.
Test Execution Activities
- Execute test cases according to plan.
- Generate a test report and log defects for failed cases.
- Map defects to test cases in RTM.
- Perform Retest.
- Track the defects to Complete the test.
Deliverables of Test Execution
- Completed RTM with the execution status.
- Test cases updated with a pass or fail results.
- Defect reports.
Entry Criteria Test Execution: Have all the previous steps completed, especially the exit criteria.
Exit Criteria Test Execution: Document test execution and results to report them back.
Phase 6: Test Closure
In the last stage of the STLC, a test result report is generated. The report should contain the entire process of testing new requirements such as the analysis between the expected outcome and the actual outcome, whether the objectives were met or not, the time taken to test the feature, costs, test coverage, and if there were any defects and details about it 🔎
Test Closure Activities
- Evaluate test cycle closure completion criteria based on Time, Test coverage, Cost, Software, Critical Business Objectives, and Quality metrics.
- Prepare test metrics based on the above parameters.
- Prepare Test closure report.
- Test result analysis to find out the defect distribution by type and severity.
Test Closure Activities
- Test Closure report.
- Test metrics.
Entry Criteria Test Closure: Test results and logging from the previous phases.
Exit Criteria Test Closure: Delivered planned deliverables (delivered planned deliverables use too much of the same word. Try to add a different one) and approved test closure test summary report.
STLC vs. SDLC: How Do They Differ?
Although STLC (Software Testing Life Cycle)and SDLC (Software Development Life Cycle) might seem related, they are different because they both have different aims and guidelines.
Something quite interesting is that STLC phases during SDLC, SDLC is related to software development and STLC is related to software testing. STLC is a segment/subset/part of SDLC. Testers execute the activities in both lifecycles are executed one after the other.
Another difference between both approaches is that SDLC’s primary goal is to collect the client requirements and create the features accordingly 🎯 However, STLC’s goals generate tests that adapt to the requirements and verify that the features meet them.
The goal of SDLC is to complete successful software developments with quality software. Conversely, STLC aims to complete successful software testing activities and make the software defect-free. Both STLC and SDLC phases must complete entry and exit criteria before entering or leaving any previously mentioned phase.
In both of these approaches, you need your stakeholders such as DevOps, testing team, Product owners, Business analysts, and developers. Full cooperation from the team in both approaches means you may verify the requirements, tests, and form accurate results.
When to Stop Testing?
This is a very interesting question, it’s a question that gets asked around a lot too. Testing should be stopped when it meets the exit criteria put in the test plan. Test managers, leads, clients, and respective stakeholders will consider all factors to decide when to stop.
The Importance of Reporting
When teams complete a release, they have generated release notes and when they complete STLC phases they generate a test report. This report will highlight testing outcomes, evaluations, and may be used as a document to improve confidence to release the application or not.
It is vital to generate this report and not feel like the job is done. It is better to learn from it and see how the test strategies used this time could be implemented or improved in the future 🤔
At the end of the day we are aiming for a good quality product, therefore aim for removing bottlenecks and continue with the best practices for next time.
FAQ
- What are the various phases involved in the software testing process?
The various phases involved in the software testing life cycle include:
- Requirement Analysis
- Test Planning
- Test case development
- Environment Setup
- Test Execution
- Test closure
- Why is STLC important?
Software Testing Life Cycle is important to test software and ensure it meets the requirements of every project.
- What is meant by entry criteria and exit criteria?
- Entry Criteria: Entry Criteria are a set of conditions that need to be satisfied in order to begin the test.
- Exit Criteria: Exit Criteria are a set of conditions that need to be satisfied in order to end the test.
- What are the differences between STLC and SDLC?
STLC:
- STLC stands for Software Testing Life Cycle.
- STLC phases are performed after SDLC.
- STLC helps in making the software defect-free and provides successful testing of software.
SDLC:
- SDLC stands for Software Development Life Cycle.
- SDLC phases are performed before STLC.
- SDLC helps in developing the good quality of the software.
- What is the purpose of the test closure phase?
Test closure activities have several purposes, such as to:
- Make sure testing is completed.
- Gather and submit test artifacts.
- Hold retrospective meetings to review previous information and improve.
Conclusion
Whether your team is going for an SDLC approach or an STLC approach, you should understand how testing and quality fit into the phases. You may feel more comfortable with one approach or the other, but the goal for both approaches is to deliver a quality product with appropriate testing coverage and confidence.
I myself have used a bit of both approaches in the past, however, it would be quite interesting to follow STLC rigorously and understand if one can unveil some different bugs/findings.
It’s not an efficient idea to identify errors in the last stage of SDLC because there are other actions that require focus. Spending too much time testing bug fixes also leads to lower efficiency and does not add much value.
The use of efficient time and resources is something that eases the testing process. Therefore You will notice speedy bug fixes as well as product quality enhancements by following the STLC process, you will notice speedy bug fixes as well as product quality enhancements. Which in turn leaves you with happy customers, a positive company reputation, and increased ROI 🚀