Software testing is not just a formality that your product ought to go through before it is released to the public. It instead should be thought of as an invaluable part of your development process that can prevent you from releasing a piece of software that is not fit for the use by the end-user. But how does a tester perform testing? Where do they start?
This is where the Software Testing Life Cycle (or STLC) comes in. This is an established step-by-step process that guides you through the core approach to your test projects. Promoting consistency, each stage of the process has been planned to safeguard the quality of your product and boost test effectiveness,
When a developer sits down to code out a particular feature, they are likely following a set process in which they are first required to gather the requirements for the feature, choose the tools they need to use, set-up their development environment and so on.
For testers, the process is much the same.
Let’s look at each of these stages one by one and look at what is involved. In the real world, each organization may have its own modification of the below stages with an additional step in the process, or a step named slightly differently. But the below are the core steps of the STLC which feature in every incarnation.
The first step in the process is aimed towards understanding what needs to be tested and discovering which parts of the software product are testable by reviewing the products requirement and design documents. If any part of the requirements is unclear, or require additional explanation or discussion. The tester can refer to the various stakeholders to obtain additional clarity.
One of the most important phases in the STLC. This phase gets everyone on board with the product being tested, how it will be tested and importantly, who will be doing what at a high level. In this phase, a test plan will also need to be created (usually by the QA manager or lead) with details on test environments, tool selection as well as resource and any training requirements for the project.
This is where test cases are designed to guide the tester through the process of testing a particular feature. I have previously written a blog on how to write an effective test case and this is the phase in which the theory on writing good test cases is put into practice.
In the context of performing software testing. The environment refers to the configuration of the software and hardware in which the testing process is performed.
So, for example, this process would require the setup of operating systems, web browsers, or smartphone configurations depending on the software application needs. The environments should have been defined in the Test Plan.
Just as the name suggests. This is the step of the process in which all of your previously designed test cases are executed. During the process of executing these, the tester should be comparing the actual outcome to the expected outcome as defined in the requirements and from the discussions with developers and other stakeholders.
Deviations from the expected functions of the software should be logged in the bug-tracking system for the developers to action. Once these have been corrected and redelivered back to the testing team. Retesting of the previously failed test cases (in conjunction with regression of previously passed test cases) will need to be performed.
These steps will need to be repeated until no further bugs or defects are discovered.
The last step is the STLC is dedicated to meeting with the testing team and confirming all test cases have been executed, detailing the issues discovered and documenting any lessons that you can take forward into future test processes and projects.
The general approach to any software testing project should involve planning, preparation, execution and a retrospective learning phase which should help to ensure your testing activities are as effective as possible and the overall process is as consistent as possible from one project to the next.
Following the steps outlined in the STLC can help give structure to your testing process that will set you up for success in all of your testing projects.