Software Testing: To fail is to succeed

Here's an entry that goes back to the basics of software testing. If you are wondering what the title of this entry means, let us quickly re-visit the definition of testing: "Testing is the process of executing a program with the intent of finding errors".

Testers can sometimes find themselves getting entangled in the definitions of the terms "success" and "failure" in relation to testing. The question is, "When is testing considered to be successful ?" To add to their woes, many stakeholders tend to refer to a successful test campaign as one wherein the tests have passed without finding any issues. Going by our above definition, testing is performed with the intent to unearth issues. Which goes to say that success in testing is when a test fails rather than when it passes. A test that has failed and thereby found an issue has actually succeeded.

As a basic analogy, let us assume that you take your car that rattles and probably leaks some oil to a mechanic for inspection. The mechanic runs a battery of tests which do not find any issues with your car and based on the results of these tests your car is certified to be in perfect condition. Would you call the result of such a testing as successful ? In this case you still seem to have the problem plus you have incurred expenses towards testing the vehicle which turned out to be unsuccessful. If the tests had found an issue, you would naturally be inclined to consider your investment in testing to be worthwhile.
***
Liked this entry? Join my community of professional testers to receive fresh updates by email. Use this link to add your email address to the community. Rest assured, I will neither spam nor share your email address with anyone else. Your email id will remain confidential. Subscriptions are handled by Google's FeedBurner service.