A STOP sign is a traffic sign on the road that tells drivers of vehicles to halt and not continue until it is safe. It designed to alert drivers that they must come to a complete stop and make sure no other vehicles are coming and no pedestrians are crossing before proceeding. Overall, it is for the assurance of the drivers. For any software development methodologies, software testing is like a Stop sign. Let me explain.
Software testing tells the status of your product before deployment. It shows how the application will behave in production before the deployment both in terms of functional and non-functional testing. In the example of whether other vehicles are coming or not and whether pedestrians are crossing or not, drivers decide to move forward. Same thing is applicable for software development. In the case of the software testing status, application owners or stakeholders choose to go ahead with the deployment. Overall, software testing also gives confidence and assurance before the release just like Stop sign gives the assurance to the drivers that there is a process.
It is absolutely mandatory to stop at a Stop sign and thoroughly look in all directions to avoid any potential risk. The same applies for software testing in the software development life cycle. IN this case, software testing is the Stop sign. It is asking you to pause, check the development status in terms of functional and non-functional attributes and if and when everything looks great, you can proceed with deployment. Just like a stop sign, software testing is absolutely needed before production release. Let’s assume that you are not conducting software testing in your product life cycle to before going forward with deployment. That means you are taking a massive risk. From a consequences perspective, numerous are be possible; such as internal users being dissatisfied, decreased internal user’s productivity, external users dissatisfaction causing them to stop using the product. They will most likely go to your competitor product instead and in worst case scenarios, eventually product will disappear from the market.
Let’s assume the opposite situation. In this case, you are conducting all types of software testing (functional and non-functional) in your product life cycle. This includes unit testing to user acceptance testing – all types of software testing looking at different quality attributes. Start with unit testing (mostly done by developers), then system testing, followed by integration testing and user acceptance testing or regression or re-testing, if any issues, these are from functional testing standpoint. Then performance testing (load, stress, endurance, spike, volume, scalability, fail-over for example), security testing (penetration, vulnerability for example) from non-functional viewpoint. You must perform compatible testing (different browsers, OS, devices), protocol testing (Network, IP testing), compliance testing & ensuring with software quality standards. Also, conduct legally compliant testing or checklists like GDPR. All these types of software testing are to avoid any potential risks or surprises in production. When you are conducting thorough software testing, the results should be that internal users will be pleased & motivated and the operational cost will be reduced. External users will also likely be more satisfied and will stay as customers for a longer period. External users can also bring new business through recommendations and your customer loyalty will be increased. Overall, revenue should go up, and the product will become established in the market place. As you can see, conducting software testing is a mandatory process for software development life cycle to reduce the overall product risk. And this is like STOP sign which is compulsory process for driving and for reducing the drivers’ risk. While a STOP sign ensures safer driving, software testing ensures a better and more reliable product, both in terms of functional and non-functional testing.
If you have read my previous articles you will know that I like my acronyms. For me, the word “STOP” conveys Software Testing is Obligatory prior to Production.
In a nutshell, a STOP sign ensures drivers take a conscious decision to drive safely safely and improve the overall road safety for all. Software testing is the development version of a STOP sign, asking us to take a stop, analyse software testing results before taking the decision of production deployment.