This post gives definition what is non testable program. Software tester can still test such program. This definition is aligned with Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
In previous post we gave definition of oracle. But those oracle definitions come with two assumptions:
- There is mechanism that helps tester to determine correctness of system under test
- Tester can determine System Under Test correctness using oracle mechanism in reasonable amount of time and reasonable amount of effort
Program is considered non testable if:
There is no oracle
There is theoretical oracle, but practically it is not possible to use it to determine program correctness.
By this definition we can conclude:
Many, if not most programs are by our definition considered non testable.
Example For Non Testable Program
Example is Google Search.
The Need for Tester
When we describe testing as process of comparing empirical results to expected results, we must consider that even the basic process of comparison requires human judgment, based on understanding of the problem domain [BBST Foundations]