The progression of activities conducted to perform Software Testing is known as Software Testing Life Cycle (STLC). It consists of a set of activities that are carried out methodologically to help authorize your software product.
Wanna know everything in detail? Here you go…
There are actually different Phases of STLC including:
- Requirement analysis;
- Test Planning;
- Test case development;
- Environment Setup;
- Test Execution;
- Test Reporting.
All these phases have some Entry & Exit criteria, and Activities & Deliverables associated with them.
Now before knowing about Software Testing Life Cycle phases, we should know little about “Entry” and “Exit” criteria.
- Entry Criteria: It gives the prerequisite items that should be completed before testing can initiate.
- Exit Criteria: It defines the items that should be completed before testing can be wind up.
Now we have Entry and Exit Criteria for all levels in the Software Testing Life Cycle (STLC). In our real world, we will not be allowed to enter the next stage till the exit criteria for the previous stage is met. Practically, however, this is not always possible. So in this post, we will focus on the different stages of the Software Testing Life Cycle and Activities & Deliverables.
Let’s look into all the phases in detail and let’s first start with the STLC phase of “Requirement Analysis”.
Requirement Analysis is the very first phase of Software Testing Life Cycle (STLC). In this phase, the Quality Assurance (QA) team will understand the requirement given by the Client in terms of –
“What we will testing & figure out the testable requirements?”
The QA team will reach out to various stakeholders (Client, Business Analyst, Technical Leads, System Architects, etc) to understand the requirements in deep.
Requirements may be either-
- Functional (defining what the software must do)
- Non-Functional (defining system performance or security availability)
Activities that are carried out during the requirement analysis phase
- Identify types of tests on which the QA team will perform.
- Details about testing priorities and focus.
- Preparing Requirement Traceability Matrix (R T M) document.
- Identify test environment.
- Automation feasibility analysis (if it is required).
The output after completion of the requirement analysis phase:
- RTM (Requirement Traceability Matrix), which is a single document delivered to confirms 100% test coverage. It also tells us the missing requirement.
- Automation feasibility report (if it is applicable).
Now, after gathering and understanding the requirements, we will move to the second phase of STLC i.e. Test Planning.
The Test Planning phase starts just after the completion of the Requirement Analysis phase. In this phase, a QA manager will analyze the efforts and estimates the cost of that project and he also will prepare and finalize the Test Plan. As per these prepared documents, they will also come up with the testing effort estimations.
Activities carried out during the test planning phase
- Preparation of test plan document.
- Selection of the Test tool, which is used during the testing process.
- Estimation of Test effort.
- Planning of Resource needed during the testing process.
- Determining the team’s roles and responsibilities, which will help during the test process.
- Training requirement, if required to all the testing team, so that the team could give maximum efforts.
The output after completion of the test planning phase:
- Test plan document, which is a document that defines the test strategy, its objectives, and the resources (manpower, software, hardware) used in the testing process, test schedule, Test Estimation, and test deliverable.
- Effort Estimation document.
As we had planned our testing process, resource, and effort estimation, now we will move to the third phase of STLC i.e. Test Case Development.
Test Case Development
This phase started once the test planning activity has been completed. This is the phase of STLC in which the testing team writes down the detailed test cases. This phase comprises of creation, verification, and rework of test cases & test scripts. Following the figure that is given above a test case template is given.
(Note: The given test case template is not a fixed format as this could vary.)
Activities carried out during the test case development phase:
- Creation of test cases, automation scripts used for automation testing (if applicable).
- Review and baseline test cases and scripts.
- Create test data (If Test Environment is available).
The output after completion of test case development phase:
- Test case document.
- Test data, which is required during testing.
After creating a test case, we have to set up the environment as well. So, the next phase of STLC is Test Environment Setup.
Test Environment Setup
Basically, the software will be tested on behalf of the test environment. This is an independent activity and can be started in parallel with Test Case Development. The testing team is not involved in the process of setting up a testing environment.
Activities carried out during the test environment setup phase
- Understanding the architecture, setting up the testing environment, and prepare hardware and software requirement list for the Test Environment.
- Setup test environment and test data.
- Perform the smoke test on the build, to ensure that the critical functionality or module is working as expected.
The output after completion of this phase:
- Environment ready with test data set up
- Smoke Test Results.
Once the phases including preparation of Test Case Development and Test Environment setup are completed then the test execution phase can be kicked off. During this phase, the testers will carry out the testing based on the test cases prepared and also from the Test Plan.
If the tester found any test case get failed then the corresponding defect or bug can be reported to the developer team via a bug tracking system or tools (like Jira, Trac, Redmine, OTRS, Mantis BT, BugZilla, WebIssues, Fossil, etc).
Bugs that are found during execution of the test case will be reported back to the development team for correction and retesting will be performed. Once the prepared test case is passed by the tester then the same can be marked as Passed.
Activities carried out during the test execution phase
- Based on test planning execute the test cases.
- Update status of test cases like Passed, Failed, Blocked, Not Run, etc.
- Assign Bug Id for all Failed and Blocked test cases.
- Do Retest once the defects are fixed, to ensure that the defect or bug found has been fixed by developers or not.
- Track the defects to closure.
The output after completion of this phase:
- Test case execution report.
- Defect report, which is a document that contains all the detailed information required to reproduce the bugs along with the Author details, problem area, open or close dates, release or build number, test environment, defect type, problem description, how it was detected, who detected it, priority, severity, status, etc.
As in this phase, the testing team will deliberate and figure out the cycle completion criteria based on Test coverage, Quality of process, Cost, Time taken, Critical Business Objectives. This is the last phase of the Software Testing Life Cycle (STLC).
Activities carried out during the test reporting or closure phase
- Evaluation on completion of cycle criteria which is based on Time taken by the team, Test coverage, Cost of fixing the bug, Software, Critical Business Objectives, Quality.
- Document the learning out of the project.
- Preparation of Test closure report.
- Analysis of test results.
The output after completion of test reporting or closure phase:
- Test Closure report is a document which summarized all the test that has been conducted during the software development life cycle. It also summarized all the details of the bug and analysis of the bug that has been fixed or removed. It contains a report of test cases that have been executed, and also types and number of defects found and its analysis, etc.
- Test metrics is a document that helps in making a decision on process change.
In nutshell, it may be concluded that similar to the development life cycle, software testing life cycle also consists of many phases and each stage counts a large number of activities to strategically carry out the testing process in an effective and efficient manner and subsequently confirm the maximum productivity and quality achievement.
|STLC Stage||Entry Criteria||Activities Carried out||Exit Criteria||Output After Completion|
|Requirement Analysis||# Requirements Document
# Acceptance criteria as per the given requirement.
# Application architectural document available.
|# Analyse business functionality.
# Identify all transactions in the modules.
# Identify all the user profiles.
# Gather user interface/authentication, geographic spread requirements.
# Identification types of tests
# Details of testing priorities.
# Preparation of Requirement Traceability Matrix (RTM).
# Automation feasibility analysis (if required).
|# Signed off RTM
# Test automation feasibility report signed off by the client
#Automation feasibility report (if applicable)
|Test Planning||# Requirements Documents
# Requirement Traceability matrix.
# Test automation feasibility document.
|# Analysis of various testing approaches
# Finalizing best testing approaches.
# Preparation of test plan document
# Selection Test tool
# Test effort estimation
# Resource planning
# Determining roles and responsibilities.
|# Approved test plan/strategy document.
# Effort estimation document signed off.
|# Test plan/strategy document.
# Effort estimation document.
|Test Case Development||# Requirements Documents
# RTM and test plan
# Automation analysis report
|# Creation of test cases
# Creation of test design
# Creation of automation scripts (If it is applicable and required)
# Review and baseline test cases and scripts
# Create test data
|# Reviewed and signed test Cases/scripts
# Reviewed and signed test data
|# Test cases/scripts
# Test data
|Test Environment Setup||# System Design and architecture documents
# Environment set-up plan.
|# Basic knowledge of required architecture and environment set-up
# Hardware and software development requirement list
# Finalize connectivity requirements
# Prepare environment setup checklist
# Setup test Environment and test data.
# Perform the smoke test.
# Depending on the smoke test result, Accept/reject the build
|# Environment setup is working as per the plan and checklist
# Test data setup is complete
# Smoke test is successful
|#Environment ready with test data set up.
# Smoke Test Results.
|Test Execution||# Baselined RTM,Test Plan , Test case/scripts.
# Test environment is ready
# Test data set up is done
# Report for Unit or Integration test
|# Execute tests as per plan
# Test results, and log defects documentation for failed cases
# Test plans/test cases updates
# Map defects to test cases in RTM
# Retest the defect fixes
# Regression Testing of application
# Track the defects till closure
|# Execution of All tests planned
# Defects logged and tracked to closure
|# Completed RTM with execution status
# Updation of Test cases with results
# Defect reports
|Test Reporting||# Test results
# Defect logs
|# Evaluate cycle completion criteria
# Preparation of test metrics
# Document for enhancing the knowledge of Project
# Test closure report document
# Qualitative and quantitative reporting
# Test result analysis
|# Test Closure report signed off by client.||# Test Closure report
# Test metrics
I have tried to cover all major points or you can say major topics related to Software Testing Life Cycle (STLC) in this blog post. Anyway, for further queries, feel free to place your valuable comments in the comments section below!