Today at the Oredev conference in Malmo, James Marcus Bach suggested renaming a large part of what is now called tests to checks. Bach said there is a big difference between a conscious process of questioning and evaluating a product and almost mechanical rule-based verifications. These two things are different enough that they should have different names, and bundling them under the name of “test” causes confusion. He suggested calling the former kind of work testing and latter checking.

Bach compared the situation in testing today to early days of software development where compiling and writing code were all called programming, then compiling got separated and renamed to reflect the fact that it is completely done with a machine. Checking can be automated to a great degree and delegated to the machine, said Bach, offering an example of classic TDD unit tests. Testing as a concious process needs to be done by a trained specialist. This allows us to put more emphasis on exploratory testing, which Elisabeth Hendrickson listed as one of the key seven practices for successful agile testing.
On a similar note, Mary Poppendieck talked about how testing is a learning activity at the Agile Testing Days conference in Berlin, contrasting it to checking the correctness using known expectations.
See other articles from the Oredev conference.


I’ve been following the “testing vs. checking” discussion for a few months. While I do agree that there is a difference in the two activities and of course agree that there can be value in both and that ideally a tester can perform both, I’m puzzled as to why this discussion continues. Do the primary proponents of the “testing vs. checking” terminology change (Bach, Bolton) feel that too much emphasis has been placed on automated “checking?” (Did Bach mention that at all?)
It’s a shame that the language of “checked examples” has not gained greater currency.