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
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
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. Software Testing Life Cycle

Software Testing Life Cycle

Learn more about the different phases of the software testing life cycle.

Sayantini Deb user avatar by
Sayantini Deb
·
Feb. 28, 19 · Tutorial
Like (4)
Save
Tweet
Share
9.36K Views

Join the DZone community and get the full member experience.

Join For Free

The last decade has seen an overwhelming evolution of the software testing industry giving way to greener pastures. It is important to ensure effective performance of software applications, and software testing is required to ensure that the application runs without any failures. This blog on the software testing life cycle will provide detailed knowledge about all the steps involved in testing.

What Is Software Testing?

Software testing is the process of evaluating the functionality of a software application to find any software bugs. It checks whether the developed software met the specified requirements and identifies any defect in the software in order to produce a quality product.

software testing-software-testing-life-cycle-edureka

It is also stated as the process of verifying and validating a software product. Basically, this means that it checks whether the software product:

  • Meets the business and technical requirements that guided its design and development
  • Works as per the requirement
  • Can be implemented with the same characteristics

Now that we know what is software testing, let’s move ahead with our software testing life cycle blog and see why do we need testing.

Why Is Testing Important?

The importance of software testing is imperative. Software testing is important because of the following reasons:

  1. Software testing points out the defects and errors that were made during the development phases. It looks for any mistake made by the programmer during the implementation phase of the software.
  2. It ensures that the customer finds the organization reliable and their satisfaction in the application is maintained. Sometimes, contracts include monetary penalties with respect to the timeline and quality of the product and software testing prevent monetary losses.importance of software testing-software-testing-life-cycle
  3. It also ensures the quality of the product. A quality product delivered to the customers helps in gaining their confidence. It makes sure that the software application requires lower maintenance cost and results in more accurate, consistent, and reliable results.
  4. Users are not inclined to use software that has bugs. They may not adopt software if they are not happy with the stability of the application. Testing is important for the product to stay in business.
  5. It’s important to ensure that the application should not result in any failures because it can be very expensive in the future or in the later stages of the development.

Now that we know what software testing is and why it is important, let’s get into the details of the software testing life cycle and learn more about the different phases of testing.

Software Testing Life Cycle

Software Testing Life Cycle (STLC) defines a series of activities conducted to perform software testing. It identifies what test activities to carry out and when to accomplish those test activities. In the STLC process, each activity is carried out in a planned and systematic way, and each phase has different goals and deliverables.

Software testing life cycle - edureka

The different phases of the software testing life cycle are:

  • Requirement Analysis
  • Test Planning
  • Test Case Development
  • Environment Setup
  • Test Execution
  • Test Cycle Closure

Now, let’s move ahead and have a look at the different phases of the software testing life cycle in detail.

Requirement Analysis

Requirement Analysis is the first step involved in the software testing life cycle. In this step, the Quality Assurance (QA) team understands the requirement in terms of what we will testing and figures out the testable requirements. During this phase, the test team studies the requirements from a testing point of view to identify the testable requirements. The QA team may interact with various stakeholders such as client, business analyst, technical leads, system architects, etc. to understand the requirements in detail.

The different types of requirements include :

business requirement- software-testing-life-cycle- edureka

Business Requirements: They are high-level requirements that are taken from the business case of the projects.

Architecture & design-software-testing-life-cycle- edureka

Architectural and Design Requirements: These requirements are more detailed than business requirements. It determines the overall design required to implement the business requirement.

system & integration-software-testing-life-cycle - edureka

System and Integration Requirements: This includes a detailed description of each and every requirement. It can be in the form of user stories, which is really describing everyday business language. The requirements are in abundant details so that developers can begin coding.

Entry Criteria Deliverable

The following documents are required:

  • Requirements Specification.
  • Application architectural
  • List of questions with all answers to be resolved from testable requirements
  • Automation feasibility report

Activities
  • Prepare the list of questions or queries and get resolved from Business Analyst, System Architecture, Client, Technical Manager/Lead etc.
  • Make out the list for what all Types of Tests performed like Functional, Security, and Performance.
  • Define the testing focus and priorities.
  • List down the test environment details where testing activities will be carried out.
  • Check out the automation feasibility if required and prepare the automation feasibility report.

Test Planning

Test planning is the most important phase of the software testing life cycle where all testing strategy is defined. This phase is also called the test strategy phase. In this phase, the test manager is involved to determine the effort and cost estimates for the entire project. It defines the objective and scope of the project.

The commonly used testing types are:

  • Unit Test
  • API Testing
  • Integration Test
  • System Test
  • Install/Uninstall Testing
  • Agile Testing

The test plan is one of the most important steps in the software testing life cycle. The steps involved in writing a test plan include:

  1. Analyze the product
  2. Design the test strategy
  3. Define test objectives
  4. Define test criteria
  5. Resource planning
  6. Plan test environment
  7. Schedule and estimation
  8. Determine test deliverable

test planning-software-testing-life-cycle - edureka

Test Case Development

Test case development begins once the test planning phase is completed. This is the phase of STLC where the testing team notes the detailed test cases. Along with test cases, the testing team also prepares the test data for testing. Once the test cases are ready, then these test cases are reviewed by peer members or QA lead.

A good test case is the one which is effective at finding defects and also covers most of the scenarios on the system under test. Here is the step-by-step guide on how to develop a good test case:

  • Test cases need to be simple and transparent
  • Create a test case with the end user in mind
  • Avoid test case repetition
  • Do not assume the functionality and features of your software application
  • Ensure 100 percent coverage of software requirements
  • Name the test case ID so that they are identified easily while tracking defects
  • Implement testing techniques
  • The test case you create must return the test environment to the pre-test state
  • The test case should generate the same results every time
  • Your peers should be able to uncover defects in your test case design

Test Environment Setup

Setting up the test environment is a vital part of the software testing life cycle. A testing environment is a setup of software and hardware for the testing teams to execute test cases. It supports test execution with hardware, software, and network configurations.

Test Environment Setup-software-testing-life-cycle- edureka

The test environment involves setting up distinct areas, such as:

  • Setup of Test Server: Every test may not be executed on a local machine. It may need establishing a test server, which can support applications.
  • Network: We need to set up the network as per requirements.
  • Test PC Setup: We need to set up different browsers for different testers.
  • Bug Reporting: Bug reporting tools should be provided to testers.
  • Creating Test Data for the Test Environment: Many companies use a separate test environment to test the software product. The common approach used is to copy production data to test.

Test Execution

The next phase in the software testing life cycle is test execution. Test execution is the process of executing the code and comparing the expected and actual results. When test execution begins, the test analysts start executing the test scripts based on the test strategy allowed in the project.

Entry Criteria Deliverable
  • Test Plan or Test strategy document.
  • Test cases.
  • Test data.
  • Test case execution report.
  • Defect report.

Activities
  • Mark status of test cases like Passed, Failed, Blocked, Not Run etc.
  • Assign Bug Id for all failed and blocked test cases.
  • Do re-testing once the defects are fixed.
  • Track the defects to closure.

Test Cycle Closure

The final phase of the software testing life cycle is test cycle closure. It involves calling out the testing team member meeting and evaluating cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, and software.

A test closure report by the test lead is published after accomplishing the exit criteria and finishing the testing phase. It follows a standard format such as :

  • Test summary report
  • Identifier
  • Test summary
  • Variances
  • Comprehensiveness assessment
  • Summary of results
  • Evaluation
  • Summary of activities
  • Approval

Test closure report - edureka

Stages of Test Closure

The process of test closure is implemented with the assistance of six important stages, such as:

  1. Check planned Deliverable: The planned deliverables that will be given to the stakeholder of the project are checked and analyzed by the team.
  2. Close Incident Reports: The team checks that the planned deliverable are delivered and validates that all the incidents are resolved before the culmination of the process.
  3. Handover to Maintenance: After resolving incidents and closing the incident report, the test-wares are then handed over to the maintenance team.
  4. Finalize and Archive Testware/Environment: It involves finalizing and archiving of the testware and software like test scripts, test environment, test infrastructure, etc.
  5. Document System Acceptance: It involves system verification and validation according to the strategy outlined.
  6. Analyze Best Practices: It determines the various changes required for similar projects and their future release.
Software testing Software unit test Test case Requirement

Published at DZone with permission of Sayantini Deb, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • How to Secure Your CI/CD Pipeline
  • Bye-Bye, Regular Dev [Comic]
  • Top Three Docker Alternatives To Consider
  • Stream Processing vs. Batch Processing: What to Know

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: