There’s a move towards separating what testers do into two categories, called by some “testing” and “checking”. I don’t particularly like the terminology (or most attempts to redefine words), but I appreciate the distinction, as well as the reaching towards semantic clarity.
The distinction being that there are two unique activities that are called testing.
The first is exemplified by unit tests, but also includes the functional testing done to “assure” requirements are met — usually represented on spreadsheets with lots of steps and expected results, as well as regression testing (which those typically become.)
The second is exemplified by exploratory testing, but also includes performance testing, security penetration testing (though hopefully, a standard set of security tests falls under the first category), and usability tests.
This isn’t a clear separation, and some amount of each category can fall into any type of testing.
The distinguishing characteristic is whether the expected result of the test is known at the outset or not. Or rather, whether the result is assumed. The object of the result is the distinguishing factor — whether the object is to learn something new or verify something already known is correct.
This is where I find the appellations of “testing” and “checking” imprecise. While you can clearly distinguish which category a test falls into, the labels are not obvious and must be learned – although it’s clear enough to categorize them when given the labels.
- A test, for instance, at school is a verification of a student understanding requirements.
- A test of strength or will is a challenge to find it’s capacity.
- A scientific experiment can be considered a test, but isn’t typically called so
- A check is what you do to the test results at school
- A check is also a boundary limiting what can be done
I think better terms would be “verification” and “exploration”. It is clear with verification that you are “checking” for expected behavior. And it is also clear with exploration that you are “testing” unknown factors.
Both are important to QA, and being aware of the two categories, regardless of the terminology, helps you decide how the focus of testing should be balanced. In different situations, more of one type or the other may be advantageous. For instance, a startup with an unproven product might want to do more exploratory testing; but a mature product with clear requirements might want to do more verification. The point being that neither should neglected.