Software Testing Life Cycle (STLC)
What is Software Testing Life Cycle?
Software Testing Life Cycle (STLC) is a series of processes used in software development to test the quality, functionality, and reliability of software. STLC involves a set of steps performed by the software testing team to ensure that the developed software has undergone comprehensive testing before its release to the market.
What is Entry and Exit Criteria in STLC?
Entry Criteria
- This criterion determines whether the environment, requirements, and necessary resources are ready to initiate the planning and execution of testing. Entry Criteria help ensure that testing can be carried out effectively and efficiently. Common examples of Entry Criteria include documented requirements, acceptance criteria, and the intended product architecture.
Exit Criteria
- This criterion determines whether the testing objectives and requirements have been achieved and whether the software is ready to proceed to the next stage or be released to the market. Exit Criteria help ensure that testing has been conducted comprehensively and that the results meet the established standards. Common examples of Exit Criteria include meeting the specified testing criteria, completion of testing reports encompassing the test results and identified bugs, and obtaining approval from relevant stakeholders.
- Examples of Exit Criteria:
85% of all test cases are completed, and the system can be used smoothly in Production without critical issues.
There are no remaining P0 & P1 severe bugs.
All high-risk areas have been thoroughly tested, with only minor residual risks remaining.
The 6 Phase in STLC (Software Testing Life Cycle)
The Software Testing Life Cycle consists of six phase, each with entry and exit criteria defined within them. Entry and exit criteria establish the initiation and completion of each phase.
1. Requirement Analysis
This step involves analyzing the requirements in testing. The software testing team must understand the functional and non-functional requirements of the software to be tested. Identification of testing scenarios, test cases, and required test data takes place during this phase. The ability to automate testing is also evaluated during this phase. Activities in the Requirement Analysis phase at BerandaToko:
- Identifying the types of tests to be conducted.
- Gathering details about testing priorities and focus.
- Identifying the details of the testing environment where the tests should be carried out.
- Collecting test data for the planned testing.
- Analyzing the feasibility of automation.
2. Test Plan
Planning the testing. Identify the testing objectives, required resources, testing scope, and testing schedule. Create a testing plan that includes testing strategies, testing approaches, and testing activities to be performed. Some aspects covered in the testing planning at BerandaToko are:
- Test Schedule
Determining the approximate time for conducting testing based on the ongoing sprint, here is an example created by the Guardian BerandaToko team:
- Testing Objectives
Establishing the objectivity or goals of testing by outlining what will be tested and defining Entry and Exit Criteria. Here is an example of the testing objectives set by the Guardian BerandaToko team:
- Testing Approach
Determining the types of testing, such as API (Application Programming Interface) testing, functional testing, and others, as well as defining defect/bug management and the testing flow. Here is an example of the testing approach devised by the Guardian BerandaToko team:
- Resource and Environment Needs
Determining the environments for testing and specifying the test data to be used in each environment.
- Testing Documentation
Determining the location of testing documentation to be provided to stakeholders for them to view the test results and conduct reviews for decision-making purposes.
3. Test Case Development
The process in which the software testing team designs and creates test cases to be used for testing the functionality, reliability, and performance of the software under development. In this phase, the main focus is to identify and document the steps that need to be taken to test each feature or component of the software. Before the test cases are used, they must be verified and validated to ensure that they are well-designed and encompass all relevant testing scenarios. Verification and validation will help reduce errors or deficiencies in the test cases that could hinder the effectiveness of testing. This development process of test cases is crucial to ensure that all features and functionalities of the software are thoroughly tested.
By having well-structured and well-documented test cases, the testing team can systematically test the software, identify bugs or failures, and ensure the quality and reliability of the software before its release to the market. For the development and documentation, BerandaToko uses Notion to keep it organized and easily accessible by stakeholders, and for Automation testing, the team utilizes the CodeceptJS framework.
One of the test cases I created at BerandaToko:
Here is one of the test scenario and test cases that has been implemented in the Automation Framework at BerandaToko:
4. Test Environment Setup
Referring to the preparation of the testing environment required to conduct software testing. This phase involves setting up the infrastructure and necessary resources for the testing team to execute test cases effectively. Here is an explanation of the Test Environment Setup:
- Identify Environment Requirements: The testing team must understand the testing environment requirements needed to conduct software testing properly. This includes aspects such as hardware, software, network, and system configurations necessary to execute testing effectively.
- Hardware Preparation: If testing requires a physical or specific hardware environment, this step involves preparing the required hardware. For example, if testing requires specialized servers or other specific hardware, they must be installed, configured, and ready for use.
- Software Installation: The testing team needs to install the necessary testing software according to testing requirements. This includes automated testing software, functional testing tools, reporting tools, or other software that supports the testing process.
- Network Configuration: If testing requires communication between various software components or integration testing, the testing team must configure the necessary network. This may involve setting up servers, configuring firewalls, or other network configurations necessary for effective testing.
- Test Data: This stage involves preparing the required test data to execute test cases. Test data should be prepared according to predetermined testing scenarios. It may include valid and invalid input data, load test data, or other data relevant to the conducted testing.
- Test Environment Setup: Finally, the testing team must set up the test environment in accordance with the testing requirements. This may include configuring systems, setting environment variables, or preparing required testing parameters.
Test Environment Setup is crucial because the quality of the testing environment will directly impact the testing results. By ensuring a well-prepared environment, the testing team can minimize issues or technical disruptions that could affect the testing quality. Additionally, a well-configured testing environment enables the testing team to execute test cases consistently and efficiently.
5. Test Execution
Test Execution is a crucial stage in the STLC (Software Testing Life Cycle) where previously designed test cases are executed to test the software under development. In this phase, the testing team performs actual testing on the software and records the results.
Here are some steps involved in Test Execution:
- Test Preparation: Before starting Test Execution, ensure that the testing environment has been prepared according to the established requirements and conditions. This includes ensuring that the required hardware and software are available, test data has been prepared, and the testing environment is set up correctly.
- Test Case Execution: The testing team executes the previously designed test cases. They follow the documented steps in the test cases, provide the necessary inputs, run testing scenarios, and observe the results obtained from the tested software.
- Monitoring and Recording Results: During test execution, the testing team monitors the behavior of the software and records the test results. This includes noting whether the software behaves as expected, identifying any errors or failures that occur, and maintaining detailed records of the conducted testing. Example of Monitoring and Recording Results performed with Automation Test at BerandaToko:
- Result Reporting: After completing the test execution, the testing team compiles a test report that includes the overall test results. This report contains information about the executed test cases, the findings (whether it’s bugs, failures, or expected results), and other relevant notes such as failure reports or performed fixes.
- Retesting and Verification: If any bugs or failures are found during test execution, the next step is to perform retesting after the fixes have been implemented. Once the bug is fixed, relevant test cases are rerun to verify that the issue has been resolved and no side effects have emerged.
- Result Evaluation: After completing Test Execution, the test results are evaluated to determine whether the software meets the specified testing requirements. The test results are used to identify weaknesses, assess the software’s quality, and make decisions about whether the software is ready to proceed to the next stage or if further corrective actions are needed.
Test Execution is a critical phase in the STLC because this is where the software is thoroughly tested to identify bugs, failures, and other errors. Through comprehensive and well-documented test execution, the testing team can gather evidence about the software’s quality and make informed decisions to ensure high-quality software before its release.
6. Test Cycle Closure
In this phase, the testing team completes testing-related activities and evaluates the test cycle that has been performed. The primary goal of Test Cycle Closure is to analyze the test results, gather insights, and establish corrective actions for future testing.
Here are some aspects related to Test Cycle Closure at BerandaToko:
- Analysis of Test Results: The testing team analyzes the overall test results. They evaluate the data and information collected during test execution to identify trends, failure patterns, or other significant findings. The analysis of test results helps understand the software’s quality, testing effectiveness, and determine areas that require improvement.
- Test Report Compilation: The testing team compiles a test report that includes the test results, conclusions, and recommendations. This report may encompass testing statistics, test success rates, the number of bugs found, and the implemented fixes. The report provides an overview of the test results and delivers valuable information to relevant stakeholders.
- Evaluation of Testing Process: In addition to generating the test report, the testing team also evaluates the overall testing process. They review the testing strategies employed, the approaches taken, and the testing efficiency. This evaluation helps identify opportunities for process improvement and enhances the quality of testing in the future.
- Development of Follow-Up Action Plan: Based on the analysis and evaluation results, the testing team prepares a follow-up action plan. This plan includes improvement steps to enhance the testing process, tools that can be upgraded, or skills that need to be developed within the testing team. The follow-up action plan aims to optimize the effectiveness of testing in the future.
Test Cycle Closure is a crucial phase in the STLC because it allows the testing team to evaluate the testing that has been conducted, learn from the experience, and identify improvements to be made. By effectively closing the testing cycle, organizations can enhance their testing process, reduce errors in the future, and achieve higher-quality software.
Summary
At BerandaToko, we adhere to the STLC in accordance with the best practices that have been established collaboratively with the QA team. This has ultimately made our testing process more structured and aligned with the preferences of Management and Engineers. It has also made our testing more effective and efficient, following the six phase of the STLC.
References: