Errors cannot be found without a model. Quality Control cannot be conducted without a model.
I have heard it said that "some testers never model" and "reviews are not conducted against a model". These statements are false. In the absence of a defined and identifiable model, there will be an informal model, a model of understanding in the tester's head.
A model is our understanding and knowledge of the system. The level of testing that can be done with no understanding and no knowledge of the system is zero.
Try this. Take a program that you don't know what it does. Make sure that the program presents all its information in a way that you cannot understand. If you don't know Japanese then test a Japanese program. If the information presented to you is obscure enough then you will find it impossible to build a model of it and then you have no way to assess the correctness of any action. Remember that if you even understand the name of the program or its main purpose then that is information that you will have assimilated into a model and will use during testing.
Reviews cannot be conducted without a model of whatever the thing being reviewed is supposed to represent. Review models are different from testing models.
A review will be conducted against a number of models:
- The model of a well-formed document. (does it have a title page? Are the pages numbered?)
- The syntax of the actual text
- The semantic model in the reviewers' head of the items to be presented which they have a vested interest in.
There are at least as many informal models as there are people.
Modelling is a fundamental task in testing.
Quality Control is essentially the checking of a model against an implementation of that model.
A test is a specific situation with a predefined set of things to check against the model. The differences are errors, either in the model or the implementation.