Getting started with the software testing life cycle (STLC) and its phases
The 6 STLC Phases are
- Requirement Analysis.
- Test Planning.
- Test Case Development.
- Test Environment Setup.
- Test Execution.
- Test Cycle Closure.
Software Testing Life cycle
We all relate to software systems through mobile applications, computer applications, TV, Air conditioner, camera, Microphone, Car, etc. We experience software applications in our homes, at work and in shopping. Our life is completely dependent on software systems. While using software applications we all are acquainted with a software system and how to use software applications however still we find it difficult to use the software due to lack of knowledge and we experience that some of the software applications are not working as expected e.g.: Defect: when the user navigates the URL link to the browser, URL link not loaded properly and showing an error message “page not found”, Expected: URL link should displayed sign-in page, Actual result: URL link not displayed sign-in page and showing error “page not found”. software is not working properly then the company can bear a lot of problems which will affect the company's reputation, revenue loss and bankruptcy. In this case, we need to check and find the defect by performing software testing to ensure that the software system`s actual result matches the expected result as per the user`s need.
Software testing is a way to assess the quality of the software and reduce the risk of software failure in operation by evaluating the developed software functionality to verify whether the software system is defect free through using the process of software testing life cycle different stages and confirm that it meets the user-specified requirements. In this blog, we will introduce the software testing life Cycle (STLC) and different phases of STLC.
Definition of Software testing life cycle (STLC):
The Software testing life cycle is part of the Software development process. STLC is a well-defined process and systematic approach to carrying out software testing activities by following the different STLC stages. This testing life cycle ensures that the developed software is tested thoroughly. STLC consists of different steps. It involves analysis, planning, designing, executing and testing reports to ensure that the software meets the requirement and it's ready to use. This phase assists in recognizing defects, errors and faults at the beginning stage of software development, in that way it brings down the cost and time required in fixing the defect. The STLC has the following phases. Different companies use their own STLC basis on their requirement, culture and resources.
STLC phases: STLC consists of the following six phases.
1. Requirement analysis:
- Identifying the types of testing to be carried out at various SDLC stages.
- Deciding if testing should be carried out manually or automatically.
- Creating test case formats, test cases and functional validation matrix based on business requirements.
- Identifying which test cases to automate.
- Reviewing documentation.
- In this phase, meetings are held between testing teams, project managers and development teams to check the progress of the project and ensure the completeness of the test plan created in the planning phase.
Example: Suppose that software is a grocery application. The testing team would examine the specification of the software and user requirement, such as grocery category, quantity, price, discount, time of delivery, payment gateway and shipping method, based on the application examine testing team creates a test plan that frames the testing approach, tools, resources and scheduled for specific testing project.
2. Test Planning:
In this phase, the testing team generates a complete plan for testing the software. It determines the effort and cost estimate for the entire project. The plan covers the preparation of the test plan and will be done based on the requirement analysis, test scenario, test data and test environment. The team also determines the activities like testing approach, resource planning, determining roles and responsibilities, tool selection for automation, training requirements, etc., which are all carried out in this stage.
Example: Enduring with the grocery cart application example, the testing team would prepare a detailed test plan for testing the software and determine the test scenarios, test cases and test data that is required for each type of testing. The test data required for each scenario, such as Item details, user information, quantity, discount, price and payment details. Additionally, they would decide whether to use manual testing or test automation and select the appropriate tools for testing. The team will set up the testing environment for testing the software application.
3. Test Design:
- After test plans are created in this phase, the testing team develops a test case based on the requirements, test plans and design specifications. Test cases are designed to verify the functionality of the software and confirm that it meets the requirements. The test case should cover all the specifications of the software and be designed to discover the defects and problems in the software.
- The functional validation matrix is revised and finalized (is a record that layout and traces user precondition with test cases). Risk assessment criteria are developed basis on Business risk, testing risk, premature release risk (a fair amount of knowledge to analyze the risk associated with releasing unsatisfactory or untested software is required) and software risk.
- Test cases for automation are identified and scripts are written for them.
- Test data is prepared.
- Standards for unit testing and pass/fail criteria are defined.
- The testing schedule is revised and finalized.
- The test environment is prepared. e.g.: (UAT environment created for testing).
Example: E-commerce application has the following specification
- Product Catalog
- Shopping cart
- Payment gateway
The testing team will draft a test case basis on the E-commerce application function, herein below is an example of the test case.
- Verify that the shopping cart adds and removes product functions.
- Verify the shopping cart total amount of product calculation.
- Verify the shopping cart allows the user to apply discount coupons and update the total.
4. Test Environment Setup:
Testing environment i.e., UAT will be developed for testing the software system. The set-up environment is proximate to the production environment to confirm that the result of testing is accurate.
Example: The Shopping cart application set up a test environment that replicates the shopping cart application as near as possible. This involves configuring hardware and software and network required for testing the application.
5. Test Execution:
The testing team performs the test cases based on the test scenarios on the software Application to check the actual result and meet the user requirement. The team will record the result of testing including any defects or issues that were found.
The testing team will execute the test cases on the developed software system function and focuses on both positive and negative scenarios.
Example: The testing team will check and verify the shopping cart's functionality. Verify the users can add the product to the cart, verify the product quantity in the cart and remove the product from the cart, verify the total price of products in the cart correctly calculate and verify the checkout process.
6. Test Closure:
In the last phase, the testing team will prepare a test report based on the result of software testing and document the results.
Suppose that the testing team has completed testing of the shopping application and all identified defects and issues have been resolved. Further down mentioned how the test closure phase can be executed.
Executing Testing process:
- The testing team assesses the testing process to know areas of improvement.
- Analysis of the test plan and test cases to ensure that they include all the necessary scenarios and functions of the application.
- Analysis of the test execution and defect tracking process to recognize any area for improvement.
Document the results:
- The testing result will be documented including the test case, test plan and test execution report.
- During testing identified defects and issues will be documented including their severity, priority and resolution status.
- Analysis of the test execution and was given tracking process to identify any area for improvement.
Organize Final Review:
- Test teaming will perform a final review of the testing results with the development team, Project manager and other stakeholders.
- Review all the test results and ensure that all the defects and issues have been resolved.
- Review any process improvements realized during the testing process.
Obtain signoff:
The testing team will gain sign-off from the project manager or other stakeholders showing that the testing process has been completed and the application is ready for deployment.
SouthIndus Labs Assurance and Quality Engineering practice, helps clients achieve continuous quality across their run, change and transformation initiatives. If you need any testing services, please contact our team here: