DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. What Is the Software Testing Life Cycle?

What Is the Software Testing Life Cycle?

In the world of Agile software development, software testing isn’t a single stage carried out just before the release of your application.

Anna Smith user avatar by
Anna Smith
·
Mar. 13, 23 · Tutorial
Like (1)
Save
Tweet
Share
1.61K Views

Join the DZone community and get the full member experience.

Join For Free

In the world of Agile software development, software testing isn’t a single stage carried out just before the release of your application. Instead, software testing is a complex, multi-faceted process involving many phases and specific activities carried out methodologically and in parallel to the development process. And just as there is a software development life cycle (SDLC) for building the application, there is a software testing life cycle (STLC) for validating it. 

“Software Testing Life Cycle (STLC) is a sequence of verification and validation activities carried out in the course of software development to ensure that the quality goals of the software under test are met in full. ”.

STLC Phases

Every STLC phase has certain entry and exit criteria associated with it as well as its own deliverables. And your software testing team must not enter the next phase of the QA life cycle until they made sure that the exit criteria for the previous one are met and that they have all the necessary deliverables to move on.

Now let’s look into the activities and deliverables for each phase of each one of the software testing life cycle phases.

1. Requirement Analysis

At this stage of the software testing life cycle, the QA engineers work both within their own team and cross-functionally. They thoroughly study the business objectives, the features to be designed and supported, and the detailed system requirements, including functional and non-functional specifications. When in doubt or lacking certain information due to unclear areas in documentation, the QA team addresses the tech and business specialists on the project for clarification until everything is clear as day.

Activities

  • Gather information about the development and testing priorities.
  • Prepare the RTM (Requirement Traceability Matrix) document for the project.
  • Identify the types of tests to be performed on the project.
  • Carry out a feasibility analysis for test automation (in case the QA team decides to automate certain tests).

Deliverables

  • Requirement Traceability Matrix.
  • Test automation feasibility report.

2. Test Planning

The second STLC phase is where the QA team determines the resources and effort required to implement the project based on the data they collected and processed in the requirement analysis phase. The key objective of this phase is to provide the entire project team with documentation on how the testing will be organized, approached, and executed in the course of the project, including the testing schedule and possible test limitations.

Activities

  • Estimate the effort required for the project.
  • Determine roles and responsibilities.
  • Prepare hardware and software requirement lists for the test environment.
  • Prepare the documentation necessary for project launch.

Deliverables

  • Test plan
  • Test strategy document
  • Effort estimation document

3. Test Case Design and Development

With a solid test plan and strategy in place, the QA team can begin preparing the actual tests. The design and development process involves creating, verifying, and reworking test cases and test automation scripts based on the data from the test plan. The team also prepares the test data to flesh out the details of the structured tests they will run. All the test cases/scripts created during this phase will be continuously maintained and updated over time to validate new and existing functionality in the course of development.

Activities

  • Create test cases
  • Create test automation scripts (in case the QA team decides to automate certain tests).
  • Review and baseline test cases and test automation scripts.
  • Create test data

Deliverables

  • Test cases
  • Test automation scripts
  • Test data

4. Test Environment Setup

In short, the purpose of the test environment stage of the software testing phases is to provide the QA team with a setting where they can exercise new and changed code provided by the development team, locate possible faults and errors, and then contact the responsible developer, providing them with a detailed test report. Different types of testing suggest different types of test environments. It’s also important to mention that depending on how sophisticated your test environment is, the tests may be carried out sequentially or in parallel (some or all at once).

When setting up a test environment, the QA team considers a whole range of parameters such as hardware, software, frameworks, test data, configurations, and networks. These parameters are then adjusted depending on what a particular test case requires.

Activities

  • Setup the test environment
  • Try out the test environment with a series of smoke tests.

Deliverables

  • The test environment is all set up and ready to go.

5. Test Execution

Next in the STLC is the part of the QA life cycle everyone is well aware of, which is the testing itself. Following the test plan, the QA team executes all of the test cases and test automation scripts they prepared in the test environments they have set up well. The software testing process involves all kinds of different functional and non-functional tests where software testers identify bugs and provide the project team with detailed testing reports. Then, after the developers introduce the necessary fixes, the QA team runs a series of retests to make sure that all the reported defects have been dealt with.

Activities

  • Execute tests as per the test plan.
  • Document the test results.
  • Map the issues found to test cases in RTM.
  • Retest the fixes provided by the development team.
  • Track every fault and error to closure.

Deliverables

  • Detailed testing reports
  • Test cases updated with the results.
  • RTM completed with the execution status.

6. Test Cycle Closure

The final one of the software testing life cycle phases involves several activities, such as a collection of test metrics and test completion reporting. Thus, the QA team summarizes and shares the results of their work with the rest of the team. The main artifact of this phase is the test closure report, a detailed analysis document that provides data on the types of testing performed, processes followed, the number of test cycles carried out, etc.

Activities

  • Assess the cycle completion.
  • Prepare test metrics
  • Prepare a detailed test closure report.

Deliverables

  • Test closure report

From here on, the project team plans the application for support and release, including the analysis of all the testing artifacts and building a test strategy for further growth and extension of the application.

To Sum Up

The life cycle of software testing is there for a reason: a flawless knowledge of the STLC phases allows the team to plan their work correctly, give precise estimates to the client, and know which results to expect at every stage of the process. 

Being aware of the software testing phases is also beneficial to the product owner, as it helps create proper time and budget estimations. This can be especially useful when working with an outsourced software testing team when the client cannot possibly control as much of the daily operations as with an in-house team.

Software testing Test automation Test case Test data Test plan agile

Published at DZone with permission of Anna Smith. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Distributed Tracing: A Full Guide
  • Top 11 Git Commands That Every Developer Should Know
  • Readability in the Test: Exploring the JUnitParams
  • Test Execution Tutorial: A Comprehensive Guide With Examples and Best Practices

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: