Testing is exploration. In a mature testing organisation the expedition is well planned, and staffed with seasoned explorers. The planning will be done around a number of maps of the territory to be explored. Some maps will show different levels of detail - to show all the detail on one map would confuse the issue, so one map will identify areas of population, one will provide information of season rainfall statistics etc. Maps are very important. The explorer plans different routes through the maps to match the aims of the expedition, perhaps they are trying to unearth hidden temples and consequently will pick routes which take them through areas which are sparsely populated now, but in the past were densely populated. Effective exploration requires an understanding of the terrain to be explored.
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.