Checking is short for "fact checking" or "output checking." It is an evaluation activity that can be completely automated. Testing, on the other hand, can be supported by tools, but not automated. In other words, testing, like software development, is a non-algorithmic activity that is mediated by social competence; whereas compiling and checking are both algorithmic, requiring no social competence. But just as compiling is irrelevant without programming, checking is irrelevant without testing. Checking is an important-- but subordinate-- part of testing. Why does this distinction matter? Because when testing is confused with checking, management believes that the best way to improve testing is to automate everything and turn testers into tool jockeys. This destroys testing culture and discourages smart people from doing testing. Let's not do that.
KEYNOTE: Testing Vs. Checking Explained
- Talare: James Bach
- Material: https://events.responsive.se/events/images/stories/devlin2018/devlin2018_testing_and_checking_james_bach.pdf