Blog Software Testing

Software Testing Life Cycle (STLC)

Heera P Heera P | Last updated: October 23, 2024 |

STLC stands for Software Testing Life Cycle. STLC is a process where all the components and features of an application are tested completely such that they satisfy the requirements and quality as per the standard.  STLC involves strategic testing that needs to be carried out in each phase of development.

Importance of Software Testing Life Cycle 

“Prevention is better than cure”, As we are all aware, preventing a problem from occurring is better than investing a huge amount of money, resources, and time to resolve a problem that has occurred.  This is the sole reason for the Software Testing Life Cycle, which denotes that testing needs to be done in each phase of the development process to ensure a top-quality product within the scheduled time, cost, and resources.

By incorporating the STLC process, testing will be done at each level of development for a component. Where the predominant testing will be carried out to assess the quality of the build.  And so if any blockers or issues come up, they are resolved before it is delivered to the stakeholder/clients/customers.

STLC PHASES:

The software testing life cycle (STLC) consists of 6 major phases.  This involves a series of phases, where testers perform a set of activities in each phase.

Each phase of the life cycle includes a set of actions to determine the system’s accuracy. This is performed in order to deliver a quality and hassle-free product to the customers.

6  phases of Software Testing Life Cycle (STLC) are as follows:

Software Testing Life Cycle

Each of the phases has a set of entry and exit criteria, which denote the activities and deliverables involved in it.

Let’s see what Entry and Exit, Criteria Means,

Entry Criteria: 

Entry criteria in Software Testing Life Cycle, define the set of documents, information, and data that should be available before starting a phase of STLC. The information that is required in order to perform the activities of a phase should be present before beginning the Software Testing Life Cycle phase. 

In some of the phases, the completion document, report, and data of the previous phase will be the entry criteria. E.g., in the test case development phase, the completed requirement document, and test plan report of the previous phases will be the entry criteria documents.

Exit Criteria:

On the other hand, edit criteria determine the set of tasks, actions, report closure, and documentation that should be completed before completing the phase. It’s like expectations that should be achieved or met before completing Software Testing Life Cycle phase. E.g., in the test case development phase, the expectations that should be met are test case writing completion, defining test data, and test automation scripts, if any.

Requirement Analysis

This is the initial stage of STLC, which involves identifying all the testable requirements, that is, “what to be tested,”  and determining them. Where the QA team or members interact with business analysts, stakeholders, clients, system architects, developers, etc. to understand the requirements completely. QA is the one who analyzes the entire system for its quality, which requires them to have clear and in-depth knowledge of the requirements. 

After the requirements are completely identified, they will be categorized into functional and non-functional requirements based on which the types of testing that need to be carried out, the timeline to do the testing, etc. can be determined in the upcoming phases.

 Entry Criteria:

  • Business Requirement Document, acceptance criteria 
  • Reviewing the software requirements document (SRD) 
  • Based on the requirements, the types of testing that are needed will be determined.

Exit Criteria:

  •  Requirement traceability matrix (RTM) –  It is a document that maps and traces user requirements with test cases that reflects the coverage.
  • Automation Feasibility Document( If required)

Test Planning

Test Planning is the phase, which involves activities that define the objectives of testing and the approach required in order to reach the objective(e.g., determining suitable test techniques, and construct a test schedule for meeting the deadline )

The quality assurance professional will prepare a test plan. As “what needed to be tested” is determined, the QA Lead /QA Team will prepare estimates for work (time) and determine a test strategy.  Basically, it’s a phase where we determine the types of testing needed, test tool selection, time and / Effort required, and resource requirements.

As the project progresses, more information becomes available, so more detail can be included in the test plan. Moreover, Test planning is a continuous activity that is performed throughout the product’s lifecycle. 

Entry Criteria : 

  • Requirement Documents
  •  Requirement Traceability Matrix Document 

Exit Criteria:  

  • Approved Test Plan document, Testing Techniques, Timeline, Cost, Risks, and Resource allocation.

Test Case Development

This is the phase where the test conditions are developed into Test Cases. As “what to be tested” is identified, this phase involves “how to test” in order to achieve the objective.

This includes creating and prioritizing the test cases, and determining the test data in order to support the test conditions and test cases. Determining the testing tool and infrastructure,  if any. Each of the test cases will contain test inputs, procedures, execution conditions, and expected results.

Entry Criteria : 

  • Approved Test Plan document, Timeline, Cost, Risks, and Resource allocation
  • Requirement Traceability Matrix

Exit Criteria: 

  • Test Case Documentation/Test Script
  • Identified Test Data 

Test Environment Setup

Test Environment Setup determines the software and hardware conditions under which the system is tested. Moreover, this phase can be done side by side with the test case development phase. When developers set up the environment that needs to be tested, the test team may not be involved. However, QA performs a smoke test (i.e., High-level testing to confirm that the environment is blocker free and is ready for testing) to check the readiness of the environment for testing.

Entry Criteria : 

  • Test strategy and test plan document.
  • Test case document.
  • Testing data.
  • Environment set-up plan (if any)

Exit Criteria: 

  • Environment ready with test data set up
  • Smoke Test Report

Test Execution Phase

Test execution is the actual phase where the features are tested. Testers start executing the test cases/Test script against the build to validate its behavior.  Test case executions are done either manually or using automation tools.  The defects found on testing the build are logged as bugs and reported to the developer and a bug report is submitted on the same. Based on it Test cases /Test procedures status  are updated (e.g., Status – New, Pass, Fail, Rejected, blocked, closed, etc.) 

Repeating test activities either as a result of action taken for an anomaly or as part of the planned testing (e.g., execution of a corrected test, confirmation testing, Retesting, regression testing)

Entry Criteria:

  •  Test strategy and test plan document.
  • Test case document.
  • Testing data.
  • Testing Environment
  • Testing Tool(if any)

Exit Criteria:  

  • Test Case -Execution  Result
  • RTM with execution status
  • Defect Report

Test Cycle Closure

This is the final phase which delivers a complete test result report. It involves a summary of the entire Testing process – Objectives met, Test Case Execution Report,  Test coverage, Defect Report, Time taken, Cost, etc.

Entry Criteria: 

  •  Test Execution Report, Defect Report

Exit Criteria: 

  • Test Closure Report
  • Summary Report

Conclusion:

Therefore, the software testing life cycle is a strategic testing process involved in the development of an application to build a quality product.  Different testing techniques and tools can be considered as per the requirements of the developed software.  The testing process held across different phases of development helps us detect issues in the initial stage itself, so that we can achieve a quality product within the quoted cost, time, and resources without any blockers.

Leave a Reply