Who, What, When, and Why?

For our software testing to be effective, we need to understand why we test, who does it, what it entails, and when it is done.

Why We Test

As software developers, our testing procedure exists for a few reasons: to help us to find faults and fix them, and to ensure the same faults don’t reappear in later versions.

Note that testing can never reveal the absence of faults, only their existence. If your tests don’t find any bugs, it doesn’t necessarily mean they aren’t there; it just means you haven’t found them yet.


Testing can only discover the presence of faults. It can’t prove the absence of faults. Don’t be led into a false sense of security by code that passes a suite of inadequate tests.

Software testing at ...

Get Code Craft now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.