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
- First, the Business Requirement Document prepares by the Business Analysts as per the client’s requirements.
- 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
- Once the developers finished coding, the Configuration Management Team compiled the code together and prepared a build.
- 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.
- Once the defects are found testers log the bugs in the Defect Tracking tool
- 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).
- 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 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.
Comments
Post a Comment