DEV Community

Cover image for Testing Lifecycle
Wahome Stephen
Wahome Stephen

Posted on

Testing Lifecycle

STLC or Software Testing Lifecyle is an essential part of the SDLC. Think of it as a set of steps taking in order to effectively test a software product. Its goal is verification and validation of the application i.e. to ensure that an application meets quality standards and user expectations.
Verification - Ensuring that an application meets specified requirements (Did we build the product right?)
Validation - Checking whether the system meets user and stakeholder needs in its operation. (Did we build the right product?)

Why do you need the STLC?

  1. Provide a defined approach to plan, execute and manage testing
  2. Help in early detection of defects thus improve software quality
  3. Ensure complete testing coverage and proper reporting of test results

Phases of STLC

  1. Requirements Analysis
  2. Test case planning
  3. Test case development
  4. Test Environment setup
  5. Test execution
  6. Test closure

Requirements Analysis

This is the first step in the STLC. In this step, a tester aims to understand what needs to be tested.

  1. Review the Software Requirements Document (SRD) and other related docs
  2. Interview stakeholders to gather information
  3. Separate confirmed facts from assumptions, vague terms, contradictions, missing rules and constraints
  4. Identify non-functional requirements;

Usability - Focus on UX, accessibility (A11Y) and intuitive interaction
Performance - Focus on the systems speed and responsiveness and resource utilization
Security - Focus on access control and data breaches

  1. Identify risks and challenges that may impact testing. What is the worst that might happens when testing a feature is not achieved (We will use this to set priority Risk based testing)

Test Planning

This is the most important step in the STLC. Here the overall strategy and plan is created.

  1. Define test objectives and priorities
  2. Develop a test strategy; select manual and automated testing techniques
  3. Identify entry and exit criteria for each phase
    Entry criteria - Preconditions that must be met before starting a testing phase
    Exit criteria - Conditions that must be met before completing a testing phase

  4. Estimate time cost and resources required to complete the test

  5. Assign roles to the test team

  6. Incorporate risk based testing. Based on priorities set on phase 1, prioritize critical functionalities to test first

Test Case Development

In this phase, testers prepare test data and design detailed test cases.

  1. Identify what test cases will be developed
  2. Write clear, concise and easy to understand test cases
  3. Create test data and test scenarios to be used in the test cases identified above
  4. Identify expected results for each test case
  5. Review and validate test cases
  6. Update the requirement traceability matrix (RTM) to map requirements to test cases

Test Environment Setup

This step aims to define the hardware, software and network conditions under which testing will be executed
Install and configure required software, tools and databases
Set up servers, browser, OS and devices to use
Prepare access credentials and permissions
Validate the environment readiness before test execution

Test Execution

This is the step where we execute the test cases we prepared earlier.

  1. Run both manual and automated test cases(where possible)
  2. Log defects with appropriate details needed to reproduce them
  3. Retest defects
  4. Perform regression testing
  5. Collect and analyze test results
  6. Document and share test reports

Regression Testing is a type of testing done to ensure that recent code changes haven't affected existing functionality
Confirmation testing/ Retesting is a type of testing done to ensure that previously reported bug have been fixed in the latest build/release

Test Closure

This is the last step in the STLC. Testing activities are completed and documented

  1. Prepare a test summary report
  2. Ensure that all defects are tracked and closed.
  3. Clean up the test environment
  4. Archive test cases, data and reports
  5. Conduct a retrospective Retros are mainly done in Agile developments to identify lessons learnt in a sprint. Multiple questions can be asked during this ceremony but we can categorize these into 3 key questions
  6. What went well?
  7. What didn't go well?
  8. What can we do differently next time?
  9. Share knowledge with stakeholders

To wrap it up, STLC is an integral part of SDLC.
STLC defines all steps taken when testing a software. Its focus is validation and verification of a software. This process is done primarily by QA team.
SDLC on the other hand defines all phases of end-to-end software development from requirements gathering to deployment and maintenance. Its focus is building a software. This process involves multiple stakeholders including developers, business analysts, project managers and the QA team.

Top comments (0)