Testing Limitations
The cluster focuses on the philosophical limitations of software testing, repeatedly emphasizing that tests can only prove the presence of bugs, not their absence or the full correctness of code.
Activity Over Time
Top Contributors
Keywords
Sample Comments
Tests can never verify the correctness of code, they only spot-check for incorrectness.
This is a misconception. Coding is very difficult to verify, it's just that everyone takes a good enough approach. They check the output and if it looks good they move on. But you can't just test and check your way through problems. If this was true we wouldn't have bugs lol. I hear you, your test set didn't have enough coverage. Great! Allow me to introduce you to black swans.
Tests can only prove the presence of bugs, not their absence.
Tests can only prove the presence of bugs, not their absence.
Tests cannot prove the absence of bugs, ever.
You cannot use unit tests for everything, since the number of unit tests required is basically infinity. Logically, unit tests can only prove an error exists and cannot show the program is correct. What they most likely did was mathematically showed that all possible edge cases (potentially inifinitely many) are all considered.
Relying on tests is naive. Your tests can't cover every case. The article even mentions this -- their tests passed, but it failed in production.
Testing does not show correctness, it can only show incorrectness.
Tests are not meant for ensuring it works with all inputs. You cant simply just throw values at it hoping its all okay.To prove it works with all possible inputs, there are other tools at your disposal.
Tests are not bullet proof and subtle errors may go uncatched. If you can completely eliminate a source of errors, why not?