What is STLC? Also, Explain all Stages of STLC.
STLC, or Software Testing Life Cycle, is a set of sequential activities carried out during the testing process to guarantee quality and compliance with the requirements. Software Testing isn’t just an isolated event that occurs once the code is written. STLC includes verification and validation activities in a set order that helps certify software products. Itincludes the following phases:
a) Requirement analysis: Understanding what needs to be tested based on customer needs.
b) Test planning: Describing the strategy and the extent of testing activities.
c) Test case development: Creating test cases and scripts per the defined strategy.
d) Test environment setup: Setting up the hardware and software environment in which testing will be taking place.
e) Test execution: Running test cases and scripts to detect bugs.
f) Test cycle closure: Examining the test results, scrutinizing the testing process including any defects, and enhancing future test cycles.
However, in the Software Testing Life Cycle, each phase has its unique set of deliverables and is essential for the success of the software process. STLC aims to reveal and detect bugs or problems in a software program as early as possible. This means the issues can be resolved in the alpha or pre-launch phase, and a smooth roll-out can be ensured for the intended market.
During SDLC, a software product may be subjected to multiple rounds of STLC to mark the product safe for the final release. STLC enables organisations to release high-quality software in line with their customers’ needs, leading to customer satisfaction and business success.
Role of STLC
The Software Testing Life Cycle team is responsible for the following during testing:
a) Refining the Agile testing process and, in turn, increasing its consistency and effectiveness.
b) Defining the goals and expectations for every aspect of the project.
c) Assigning suitable time limits for project testing.
d) Ensuring thorough testing and approval of each feature before adding new features to the application.
e) Verifying that the project requirements are met at each stage.
A typical Software Testing Life Cycle framework includes the following activities:
a) Analyzing of the system requirements given by clients and stakeholders.
b) Determining project readiness by comparing requirements with features using a traceability matrix.
c) Identifying the methods and types of testing techniques required to test each feature.
d) Prioritizing key features that are to be targeted.
e) Analyzing and determining how testing tasks can be automated.
f) Identifying environmental information.
Phases of STLC
STLC generally has six phases, with each activity being performed in a planned and systematic manner. Each phase's entry and exit criteria define the actions to perform and the expected results. They also define the prerequisite conditions and results of each testing phase. While different testing teams follow different phases in STLC, they are all based on the six phases mentioned below:
1) Requirement analysis
During the requirement analysis phase, all the feature requirements collected during the SDLC process are evaluated for their test suitability, and the testable aspects are identified. The testing teams may consult with relevant stakeholders to clarify the requirements.
During this phase, the test environments – where testing is supposed to be carried out are identified. Automation feasibility analysis is also conducted during the requirements phase to identify the potential need for automated testing and make economic calculations of labor costs based on the project estimation. The entry and exit criteria during this phase are as follows:
a) Entry Criteria: Document requirements, acceptance criteria, and intended product architecture.
b) Exit Criteria: Approved Requirement Traceability Matrix (RTM) and automation feasibility report (if required)
2) Test planning
Test planning during STLC is the phase where the test strategy is outlined in a test plan document. This plan is usually determined and approved by a Senior Quality Assurance Manager. It includes details like the needed tools, test environment, testing schedule, testing steps, and roles and responsibilities. The plan is determined based on a Risk and Cost Analysis (RCA) and a roughly calculated timeline for testing.
a) Entry Criteria: Requirement analysis, RTM, and automation feasibility report.
3) Test case development
During the test case development phase, test cases and test scripts are created, with each case defining all the test inputs, procedures, execution conditions, and anticipated results. Test cases involved must be transparent, efficient, and adaptable, with 100 per cent coverage of all expected outcomes. The test cases are developed based on the identified test data, which has been identified and worked on based on the preconditions. Based on the automation feasibility report, the automation scripts must also be created during this phase.
a) Entry Criteria: Approved test plan, including timelines and RCA
b) Exit Criteria: Approved test cases and automation scripts.
4) Test environment setup
In the Test environment setup phase, the testing environments, i.e., the software and hardware conditions to test the product, are configured and deployed. This phase usually includes many testing tools like TestComplete, Selenium, Appium, or Katalon Studio. Test environment setup may be done concurrently with the test case development phase, and sometimes, all of this includes setting up air-gapped test servers. Once the environment has been set up, smoke tests or readiness checks are performed to ensure the environments work with all intended functionalities.
a) Entry Criteria: System design and project architecture definitions.
b) Exit Criteria: A fully functional test environment, smoke test results and approved test cases.
5) Test execution
During the test execution phase, the software features are tested in the deployed test environment using the test cases established based on the test data. Test script execution, maintenance, and bug reporting are done during this phase, and the expected test results are compared to the actual results. The results of the test execution phase are gathered and reported back to development teams.
a) Entry Criteria: All exit criteria from previous steps.
b) Exit Criteria: All tests are performed, and results are documented.
6) Test cycle closure
The final phase of STLC is Test cycle closure STLC, during which a test result report summaries the entire testing process with comparisons between expected and actual results prepared. All the defects found are logged as failed cases and mapped to their respective test cases in the RTM. Every big fix made is also retested for closure.
a) Entry Criteria: Test results and logging from all previous phases.
b) Exit Criteria: Delivered and approved test closure report.
What is the entry and exit criteria for testing?
In the Software Testing Life Cycle (STLC), you have entry and exit criteria established for each stage. Ideally, you would not proceed to the next stage until the exit criteria of the previous stage have been met. However, in practice, this is not always feasible. Here are the definitions for entry and exit criteria:
a) Entry criteria: Entry Criteria provide the prerequisite items to be accomplished before testing can be initiated.
b) Exit criteria: Describes the items that must be accomplished before testing can be finished.
STLC vs SDLC: Key differences
SDLC and STLC are two related but distinct processes in Software Development. While their timelines may overlap, they pursue different goals and instructions.
STLC can be implemented as a series of steps within the SDLC cycle or alongside the SDLC phases. The primary difference is that SDLC collects requirements and creates features accordingly. STLC, on the other hand, performs tests adapted to the collected requirements and verifies that the features meet those requirements.
If the SDLC creates features that do more than necessary, it's often deemed acceptable. However, if STLC tests do more than required, an unneeded burden is set on the team. Both life cycles need the cooperation of stakeholders, DevOps, and testing teams. With this cooperation, verifying that requirements are properly defined, tests are relevant, or results are applied properly is possible.
Conclusion
The Software Testing Life Cycle is not just about conducting and documenting the entire testing process. It also ensures that all the relevant information gathered during testing is captured and converted into lessons for future reference. The STLC ensures that the Software Development Life Cycle is successful, and that the product is ready to be launched in the market for the intended users.
Subscribe to my newsletter
Read articles from P K directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by