Testing a system is a two edged sword for many because it can lower risk or incur cost and delays to the project. There must be a balance to what should be tested. In many instances, users often test whatever that comes in mind with a guiding script. So, what is the true purpose of testing?
Testing for Reassurance
Why test when you already know you are able to pass the results? In the old days, uncertainty is higher as many systems have high cost of rollback. It is difficult to go back once new features are deployed. Reassuring the stakeholders and their confidence are too priority prior to deployment. The present says otherwise as testing is now done at necessity. With Agile and DevOps, you can easily rollback your codes, resolve issues quickly or even create a speedy exit plan. Some may even go for canary testing, AB testing or pilot trial as confidence building.
Testing for Insight
Testing have any key objective that is geared towards insight and curiosity. This is usually done for innovations and new technologies. Testing helps to discover new requirements and uncover risks before deployments. Some Agile team also use this technique for test driven development. Of course, users will lament the failure of test cases even though it is clear that the requirements are unclear!
The basic principles of testing is not a pass or fail from test cases. Human nature seek for reassurance for new things. Testing is one way to build user confidence and “sign off”. Another aspect is the insight that can be gained from testing. In this case, testing is a method for discovery and development. Thus, it is important not to lose sight on the purpose of testing.