Skip to main content

Software Testing Life Cycle – STLC

 

Software Testing Life Cycle defines the various phases in the testing of software. In this, each activity is carried out in a planned and a systematic way. Each phase has different goals and deliverables.

Below are the phases of STLC

  • Requirement Analysis
  • Test Planning
  • Test Case Development
  • Test Environment set up
  • Test Execution
  • Test Reporting/ Test Cycle Closure


Phases and activities in STLC

Phase

 

Entry Criteria

Activities Performed

Deliverable

Requirement Analysis

Software Requirement 

Design Document

User Acceptance Criteria

Brainstorming of requirements

Understand the feasibility of the requirements

Do automation of feasibility study

Testing Feasibility Report

Test Planning

Updated requirement document

Test Feasibility Report

Define the scope of the project

Identify the risks of the project

Determine the test approach, techniques, coverage etc.

Identify tools and resources and check for any training needs

Implement the test strategy

Test Plan Document

Risk Mitigation Document

Test estimation Document

Test Designing

Updated Requirement Document

Test Conditions Document

Detail out the test conditions

Identify the test data 

Create a Traceability Matrix

Detailed Test Conditions Document

Requirements Traceability Matrix

Test Coverage Matrix

Test Environment Set up          

Test Plan

Smoke Test Cases

Test Data

Setup env. for test (client, server, network requirements) with the goal of

creating a same environment to end user env.

Test Environment with Test Data 

Result of Smoke

Test Cases

Test Execution  

Test Cases

 

Test Scripts

Execute the Test Cases

Log Bugs/ Defects

Report the status

Test Execution Report 

Defect Report

Test Log

Updated Traceability Matrix

Test Reporting/ Test Closure

Test Closure Conditions

Test Summary Reports

Check whether all the planned deliverable is delivered

Archive the test ware, environment and infrastructure for the later use

Do the retrospective meeting and understand the lessons learnt

Lessons Learnt Document

Test Matrix

Test Closure Report



Importance of carry out testing in a cycle

  • Identification of bugs and defects – Testing in cycle creates a systematic way to identify and isolate bugs and defects in the early stages of SDLC. Also, with so many testing phases, this helps to keep application away from any kind of bugs that may affect the performance of the application.
  • Improvement of the product quality – As testing is a phase that helps in knowing the actual outcome and the expected outcome, surely it can help to improve the product quality. With proper testing done, teams come out of errors and develop a perfect software application for the users.
  • Verification and Validation – One of the main aims of testing phase in SDLC is for verification and validation. Testing is a phase that can serve as a metrics as it is used heavily in V&V method. Based on the result, test teams could come out with a comparison between qualities amongst different products.
  • Prove Usability and Operability – One of the most important aspects of software testing is to prove the software is both usable and operable. Usability testing is where the software is released to a select group of users and their working with the product is observed. All aspects of a user’s interaction with the software, like ease of use and where users are facing problems, are recoded and analysed.
  • Prevent defect migration – Most errors are usually introduced in the software requirements gathering phase. If the errors are detected early, they can be prevented from migrating to the subsequent development phase. Early detection and debugging of errors lead to huge savings in software development costs

The testing process followed in any company


When considering the testing process, different organizations have different phases in STLC.

  1. First, the Business Requirement Document prepares by the Business Analysts as per the client’s requirements.
  2. Based on the requirement document, Test team prepares the Test Plan, Test Cases/ Scripts and Test Strategy while the development team is working on the coding
  3. Once the developers finished coding, the Configuration Management Team compiled the code together and prepared a build.
  4. After they deployed the build in the test environment, testers start test execution and the build will get deployed to different test environments where different types of testing performed.
  5. Once the defects are found testers log the bugs in the Defect Tracking tool
  6. Once the defects are logged, then those defects will be discussed in the defect status meeting and would take further actions (meaning, closing, reopening, retesting of defects etc).
  7. when all the defects get closed and 100% execution is completed then UAT (User Acceptance Test) is done and get signoff from business and approval to deploy it in the production environment (client side).

Activities performed in the test design and test execution

Test Design

  • Review Specifications, Architecture, Design and Interfaces
  • Determine what is to be tested (design test cases)
  • Implement tests
  • Identify and setup required infrastructure and tools

Test Execution

  • Execute the test cases based on the Test Plan
  • Mark Status of the test cases like Passes, Fail, Blocked, Differed, Not Run ect.
  • Track the defects to closure
  • Assign bug Ids for the filed and blocked test cases
  • Re-Testing once defects are fixed

Difference between an SDLC and STLC

SDLC refers to Software Development Life Cycle while STLC refers to Software Test Life Cycle

  • SDLC is a systematic approach to develop software while STLC is the process of testing software in a well planned and systematic way.
  • Gathering of requirements is done by the Business Analysts in SDLC where development team analyses the requirements from the design of architecture to the coding perspective while testing team find the requirements needed (types of testing necessary, a thorough review of the requirements to ensure the logical functional relationship of features and modules)
  • SDLC has a technical architect whose function is to ensure that high level and low-level designs are met while STLC has test architect acting as a lead manager doing test planning and the identification of the high-level testing points
  • SDLC deploys applications that have passed the last 4 stages while STLC complete the testing and the final report prepared.

Test scenario, Test condition and Test case

Test Scenario:

  • Test scenario is a high-level documentation of a use case. Also known as scenario testing.
  • Scenario testing is performed to ensure that the end to end functioning of a software is working fine.
  • In this type of testing, the testers take assistance from clients, stakeholders, and developers to create test scenarios that ensure all the business process flows of the software are working fine.

Test Condition:

  • Test condition is the specification that a tester must follow when testing an application. There can be multiple test conditions in a test scenario.
  • Test condition can be a piece of functionality or anything a tester wants to verify. In simple terms it is the goal of a test case.

Test Case:

  • A test case is a set of conditions or variables which help to determine whether the software under test satisfies the requirements and functions properly or not.
  • A test case is a single executable test which guides the tester to perform a series of steps to complete the test.
  • A test case contains step-by-step instructions to verify that software functions as it is required to function.

The process to write a manual test cases

Step 1: Identify the test case for the scenario

              e.g.: Check Login functionality – Check the response when valid email and password is entered.

Step 2: Identify the test data in order to execute the test case

              e.g.: Email – abc@gmail.com , Password – abc1234

Step 3: Identify the specific set of actions tester needs to perform, in order to execute the test case

              e.g.: Enter Email address, Enter password, Click Sign-in button

Step 4: Identify the correct expected result in order to verify the behavior of the performed actions

              e.g.: Expected Result – User should be able to log in to the system successfully.

Step 5: Identify and define the pre-conditions which need to be fulfilled before tester executes the test case.

              e.g.: Have a browser installed, Have access to the site under test.

Traceability matrix in simple terms

A traceability matrix is a document, usually in the form of a table, used to assist in determining the completeness of a relationship by correlating any two baselined documents using a many-to-many relationship comparison.

Comments

Popular posts from this blog

Defect Management Process

Importance of the defect management process in software development teams Provide developers and other parties with feedback about the problem to enable identification, isolation and correction as necessary; Provide test leaders means of tracking the quality of the system under test and the progress of the testing; Provide ideas for test process improvement Fields in a bug report Bug ID: A bug number or an identification number makes bug reporting and referring to a bug much easier Bug Title: A bug title is read more often than any other part of the bug report. It should say all about what comes in the bug. Also, the bug title should be suggestive enough that the reader can understand it. Priority: Based on the severity of the bug, a priority can be set for it. A bug can be a Blocker, Critical, Major, Minor, Trivial, or a suggestion. A bug priority from P1 to P5 can be given so that the important ones are viewed first. Platform/ Environment: The OS and browser configuration is nece...

End to End Test vs Component Test

E2E Test E2E - End to End Tests help verify high value paths in an application. In other words, they help verify user stories as they often represent in the application. The main purpose of E2E testing is to test from the end user’s experience by simulating the real user scenario and validating the system under test. Basically these tests check the complete end-to-end process flow - The one happy scenario   Below are the E2E test cases we can write for the Graph feature Scenario 1 : User can add a Graph Scenario 2 : User can rename the Graph Scenario 3: User can add data to the Graph Scenario 4: User can remove the data from the Graph Scenario 5: User can manage the time zone Scenario 6: User can delete the Graph As an example, let’s say we need to write E2E test for Rename Graph scenario. Below is the flow we should cover. Log in as an Admin → Navigate to the Data Studio → Click on a Dashboard → Click on the graph ellipsis menu → Click on “Rename Graph” → Ent...

SDLC – Software Development Life Cycle

  Software Development Life Cycle is a process used by software development industry to develop high quality software. This consists of a detailed plan describing how to develop, maintain, replace and enhance specific software. The following figure is a graphical representation of the stages of a typical SDLC. Requirement Analysis Phase: This is the most important and the fundamental stage of the SDLC, performed by the most senior members (Project Manager, Business Analyst, Designer, Test Lead, Subject Matter expert) of the team with inputs from the customers, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas. Requirement Analysis phase completes when the client signs of the SRS - Software Requirement Specification. Design Phase: Based on the requirements specified in SRS design approach for the product architectur...