An Introduction to Software Testing Life Cycle (STLC)
Let’s talk about the software testing life cycle (STLC), want to?
Why, you ask? Answer A) Why not? Answer B) Because sometimes leaning too hard on the “F**k it, Ship it” approach is not always the greatest idea if you have set testable requirements in place to make great software even better for your users.
The process of software testing – and testing is a systemic process, not an isolated activity, contrary to popular belief - is an important part of meeting software requirements and specifications.
STLC consists of a series of activities carried out methodologically to help certify your software product and make it as awesome as it should be.
Systemic testing is important because it leads to a faster testing process and enables teams to uncover and address issues more efficiently. Project progress is also easier to track when testing is performed with well-defined goals and phases.
Read More: What is software project management? 4 things to know
What is STLC and why is it important?
STLC is a testing strategy involving a verification and validation process that can help you efficiently meet software quality goals and standards. STLC enforces systematic testing, which is performed in phases, as opposed to “F**k it, ship it.”
Software Testing Life Cycle is important because it helps teams:
- Refine the agile testing process, increasing consistency and effectiveness
- Clearly define goals and expectations for each project aspect
- Apply time constraints to project testing
- Ensure that each feature is tested and passing before additional features are added
- Verify that project requirements are met
The 6 Phases of STLC
The 6 phases of STLC are:
- Requirement Analysis
- Test Planning
- Test Case Development
- Test Environment Setup
- Test Execution
- Test Cycle Closure
Each of the 6 STLC phases has defined activities and deliverables as well as entry criteria and exit criteria.
1. Requirement Analysis
Requirement Analysis, sometimes known as the requirement phase testing, is when the test team studies the requirements and the QA team collaborates with various stakeholders to understand requirements - functional or non-functional - in detail. Automation feasibility for the testing project is also done in this stage.
Activities in Requirement Analysis:
- Identify types of tests to be performed
- Gather details about testing priorities and focus
- Prepare Requirement Traceability Matrix (RTM)
- Identify test environment details where testing is supposed to be carried out
- Automation feasibility analysis (if required)
Deliverables of Requirement Analysis:
- RTM
- Automation feasibility report
Entry Requirements of Requirement Analysis:
- Requirements document available (both functional and non-functional)
- Acceptance criteria defined
- Application architecture document available
Exit Requirements of Requirement Analysis:
- Signed off RTM
- Test automation feasibility report signed off by the client
2. Test Planning
Test Planning in STLC is a phase in which a Senior Quality Assurance manager determines the test plan strategy along with efforts and cost estimates for the project. The resources, test environment, test limitations, and the testing schedule are also determined. The Test Plan gets prepared and finalized in the same phase.
Test Planning Activities:
- Preparation of test plan/strategy document for various types of testing
- Test tool selection
- Test effort estimation
- Resource planning and determining roles and responsibilities.
- Training requirement
Deliverables of Test Planning:
- Test plan /strategy document
- Effort estimation document
Entry Requirements of Test Planning:
- Requirements documents
- Requirement traceability matrix
- Test automation feasibility document
Exit Requirements of Test Planning:
- Approved test plan/strategy document
- Effort estimation document signed off
3. Test Case Development
The Test Case Development Phase involves the creation, verification and rework of test cases & test scripts after the test plan is ready. Initially, the test data is identified then created and reviewed and then reworked based on the preconditions. Then the QA team starts the development process of test cases for individual units.
Test Case Development Activities:
- Create test cases, automation scripts (if applicable)
- Review and baseline test cases and scripts
- Create test data (if test environment is available)
Deliverables of Test Case Development:
- Test cases/scripts
- Test data
Entry Requirements of Test Case Development:
- Requirements documents
- RTM and test plan
- Automation analysis report
Exit Requirements of Test Case Development:
- Reviewed and signed test cases/scripts
- Reviewed and signed test data
4. Test Environment Setup
The Test Environment Setup phase helps decide the software and hardware conditions under which a product is tested. It’s one of the critical aspects of the testing process and can be done in parallel with the Test Case Development Phase. The test team may not be involved in this activity if the development team provides the test environment, but the test team is required to do a readiness check (smoke testing) of the given environment.
Test Environment Setup Activities:
- Understand the required architecture, environment set-up and prepare a hardware and software requirement list for the test environment
- Setup test environment and test data
- Perform smoke test on the build
Deliverables of Test Environment Setup:
- Environment ready with test data set up
- Smoke test results
Entry Requirements of test environment setup:
- System Design and architecture documents are available
- Environment set-up plan is available
Exit Requirements of Test Environment Setup:
- Environment ready with test data set up
- Smoke test results.
5. Test Execution
The Test Execution phase is carried out by the testers in which testing of the software build is done based on test plans and test cases prepared. The process consists of test script execution, test script maintenance and bug reporting. If bugs are reported, then it is reverted back to the development team for correction and retesting will be performed.
Test Execution Activities:
- Execute tests as per plan
- Document test results, and log defects for failed cases
- Map defects to test cases in RTM
- Retest the Defect fixes
- Track the defects to closure
Deliverables of Test Execution:
- Completed RTM with the execution status
- Test cases updated with results
- Defect reports
Entry Requirements of Test Execution:
- Baselined RTM, test plan, test case/scripts are available
- Test environment is ready
- Test data setup is done
- Unit/Integration test report for the build to be tested is available
Exit Requirements of Test Execution:
- All tests planned are executed
- Defects logged and tracked to closure
6. Test Cycle Closure
Finally, some closure, right? The Test Cycle Closure phase is the completion of test execution which involves several activities like test completion reporting, collection of test completion matrices, and test results. Testing team members meet, discuss, and analyze testing artifacts to identify strategies that have to be implemented in the future, taking lessons from current test cycles. The idea is to remove process bottlenecks for future test cycles.
Test Cycle Closure Activities:
- Evaluate cycle completion criteria based on Time, Test coverage, Cost, Software, Critical Business Objectives, Quality
- Prepare test metrics based on the above parameters
- Document the learning out of the project
- Prepare Test closure report
- Qualitative and quantitative reporting of quality of the work product to the customer
- Test result analysis to find out the defect distribution by type and severity
Deliverables of Test Cycle Closure:
- Test Closure report
- Test metrics
Entry Requirements for Test Cycle Closure:
- Testing has been completed
- Test results are available
- Defect logs are available
Exit Requirements for Test Cycle Closure:
- Test Closure report signed off on
What’s the Difference Between Software Testing Life Cycle (STLC) and Software Development Life Cycle (SDLC)?
So what’s the deal about the differences between software testing life cycle (STLC) and software developing testing life cycle (SDLC)?
Well, Software Testing Life Cycle is a testing strategy that can help you efficiently meet software quality standards. STLC enforces systematic testing, which is performed in phases. But while STLC is focused on testing, SDLC encompasses all development stages.
Although both are related to software development with overlapping timelines, Software Development Life Cycle and Software Testing Life Cycle follow different goals and guidelines. STLC can be performed as a series of steps within the SDLC cycle or can be performed alongside SDLC phases.
SDLC is responsible for collecting requirements and creating features accordingly. Meanwhile, STLC is responsible for creating tests adapted to the collected requirements and for verifying that features meet those requirements.
It’s fine if the SDLC created features that do more than necessary. But if STLC tests do more than necessary, an unnecessary burden is placed on the team.
Both life cycles require the cooperation of stakeholders, DevOps, and testing teams. Without this cooperation, you cannot verify that requirements are properly defined, that tests are relevant, and that results are applied properly.
Read More: How to choose the best software development project management tool
Start Your Productive Software Testing Life Cycle with a free trial of Shortcut
Secure the quality of your software before you ship it with Shortcut.
Learn more by starting your free trial.
This way, Instead of “F**k it, Ship it” you can just say “Ship it” quite confidently.