Software Testing Life Cycle – Different Stages of Testing

Last updated on Nov 25,2020 73.6K Views
A Data Science Enthusiast with in-hand skills in programming languages such as... A Data Science Enthusiast with in-hand skills in programming languages such as Java & Python.

Software Testing Life Cycle – Different Stages of Testing

edureka.co

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

What is Software Testing?

Software Testing is a 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.

It is also stated as the process of verifying and validating a software product. It checks whether the software product:

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.
  3. It also ensures the Quality of the product. 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 is software testing and why it is important, let’s get into the details of the software testing life cycle and know more about the different phases of testing.

What is Software Testing Life Cycle (STLC)?

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.

What are the different phases of Software Testing Life Cycle?

The different phases of Software testing life cycle are:

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

Requirement Analysis 

Requirement Analysis is the first step involved in Software testing life cycle. In this step, Quality Assurance (QA) team understands the requirement in terms of what we will testing & figure out the testable requirements. During this phase, 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 Requirements – They are high-level requirements that are taken from the business case from the projects.

 

 

 

 

 

 

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

 

 

 

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

 

Entry CriteriaDeliverable

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 etc.
  • Define the testing focus and priorities.
  • List down the Test environment details where testing activities will be carried out.
  • Checkout the Automation feasibility if required & prepare the Automation feasibility report.

Test Planning

Test Planning is the most important phase of Software testing life cycle where all testing strategy is defined. This phase is also called as 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 & scope of the project.

The commonly used Testing types are :

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

  1. Analyze the product
  2. Design Test Strategy
  3. Define Test Objectives
  4. Define Test Criteria
  5. Resource Planning
  6. Plan Test Environment
  7. Schedule & Estimation
  8. Determine Test Deliverable

Test Case Development

The Test case development begins once the test planning phase is completed. This is the phase of STLC where testing team notes the detailed test cases. Along with test cases, 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 Environment Setup

Setting up the test environment is 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 configured.

The test environment involves setting up of distinct areas like :

Test Execution 

The next phase in 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 test strategy allowed in the project.

Entry CriteriaDeliverable
  • 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 Retesting 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 & 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 :

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 & 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.

Let’s now move ahead with this article and understand the difference between SDLC and STLC.

What is SDLC and STLC in Software Testing?

SDLCSTLC
Stands for Software Development Life CycleStands for Software testing Life Cycle
It refers to a sequence of various activities that are performed during the software development processIt refers to a sequence of various activities that are performed during the software testing process
Aims to complete the development of the software including testing and other phases successfullyAims to evaluate the functionality of a software application to find any software bugs
In SDLC, the code for the software is built based on the design documentsIn STLC, the test environment is created and various tests are carried out on the software 

Now with this, we come to an end to this “Software Testing Life Cycle” blog. I hope you guys enjoyed this article and understood what is software testing and the different Types of  Software testing.

Now that you have understood the types of testing, check out the Software Testing Fundamentals Course by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. This course is designed to introduce you to the complete software testing life-cycle. You will be learning different levels of testing, test environment setup, test case design technique, test data creation, test execution, bug reporting, CI/CD pipeline in DevOps, and other essential concepts of software testing. Got a question for us? Please mention it in the comments section of “Software Testing Life Cycle” and we will get back to you.

BROWSE COURSES