Table of Contents
What is STLC?
STLC is a process of actions that are performed(followed) during the testing phase in order to satisfy the end goals. This includes testing all the happy flows and edge cases, ensuring the overall quality of the product is met. STLC is part of SDLC but focuses on the testing activities that start right after the requirements are defined by the customer.
Why do we need to establish STLC?
It is always better and cheaper to prevent a potential bug rather than fixing it afterward. One of the goals of STLC is just that, making sure that we can uncover as many errors as possible during the development process.
STLC works in such a way that testing is done on every single component, then on the actual integration of multiple components and testing the system as a whole to confirm the product and gain confidence about the quality itself. What would be the benefits of introducing STLC in the project depends on the project structure and its goals but in general:
- Imporving the quality of the product as a whole
- Detecting and isolating potential errors early in the proejct lifecycle
- Having a full control over what comes in as a new feature and what is the overal test coverage of existing ones
- Making quality be a resonsbiltiy to everyone
Phases of STLC?
STLC has several different phases that are key to a successful project.
This is the initial phase where every member of the team understands the customer requirements and analyzes them for potential limitations, flaws, or errors. This is the cheapest phase of uncovering potential bugs. That’s why the team must understand all the functionalities that the customer wants by gathering the needed data, doing some additional research, and introducing simple but effective solutions. In a nutshell, its a discussion with an end goal to gain knowledge of the requirements
In the second phase, a test plan is being created. here the test manager defined the total QA effort for the project, the cost, any potential risks ahead, and how to allocated resources accordingly. Also, topics like what roles are going to be included in the testing, how to set up and configure the testing environment, and how to choose the right tools for task tracking, bug reporting, test automation, and test report are being discussed, defined, created and agreed.
Here, the test cases are created, whether they are going to be executed manually or in an automated way to achieve full coverage of the features. In more modern and agile oriented projects, automated test cases are being created during the development and the manual QA effort is more of a form of exploratory tests of new features before they are automated or manual tests that replicate a specific bug or an edge case that cannot be reproduced using an automated test.
These test cases cover many aspects of the software and how many tests we have generally depends on the testing strategy and the project domain but according to the test pyramid, it is more beneficial to have many tests at the lower level possible like unit or integration tests which should be fast since they either check a component or an integration between them and having a few full e2e or system tests at the higher level since they test the whole system.
How you can utilize the benefits of having a good test case when you don’t have an environment to run them on? Environment setup is a crucial part of the STLC, one that is done at the early stages and then only maintenance is required during testing and development phases.
All the necessary things like OS, VM’s, automated tools, reporting tools, notification generation tools need to be configured. In this phase, help from a DevOps engineer is mostly needed. Bear in mind that all the members are included in setting up the environment for testing.
Tests are executed in a specific production-like environment. All the positive and negative tests are executed covering as many functionalities as possible. A report of all the passed and failed tests are generated and quick feedback is provided to the developers about the current state of the software and its quality.
The final stage is analyzing the number of errors occurred, showing the results to the team, summing up the overall results, and providing suggestion on test improvements.
STLC vs SDLC
- Related to the overall development of the project
- The whole team is responsable for the proejct activities
- The goal is to successfuly complete the development of a product
- Part of the SDLC
- Mostly testers are the ones that perform all the acitvities
- IT focuses on only testing the software
- The goal is succssful test coverage of the system
- Uncovers potentials flwas or errors
The STLC will detect bugs and will prevent bigger issues that might appear in the later stages of development, hence saving you the time, effort, and cost to fix them. But every benefit from a process comes with a certain price. It’s not always easy to implement STLC in your project so having the right skills, knowledge and user-like thinking is a must in order to ensure quality software.
Share This Post
- How important is Software Testing Life Cycle? (STLC)
- How to ensure that a Risk-based Testing strategy is implemented correctly?
- Compare the 4 main methods from the Cucumber DataTable class and when to use them
- How to write a simple but elegant Selenium and Cucumber framework for UI automation from scratch?
- Get to know the benefits and differences between Data-Driven and Keyword-Driven testing as test automation techniques