" #softwaretesting #testing #models "
On a recent trip abroad we hired a car which had satnav. The party that we joined also had a range of different satnav products - different makers and no doubt different map versions.
On one occasion we had a convoy heading to a destination some 35km away, 3 cars (A, B & C) using their respective satnav. The cars departed for the destination in order ABC but arrived in order BAC each having taken different routes.
Now there were a range of different parameters that could affect the route calculation:
- Shortest route
- Fastest route
- Most economical route
- Route avoid certain points
- Accuracy of map
- Plus other factors that are not to do with the map itself - wrong turnings, not driving according to the assumed parameters (eg speed), traffic accidents, etc, etc
After more usage of the satnav I realised some other points...
We tended to notice less en route to different places when using (relying on) the satnav. If we hadn't had it we would probably have noticed landmarks and features in more detail. But now we were in a 'different world' - following someone else's view of the world.
Reliance on the map guidance became less as familiarity of the surroundings increased. We were in the areas for a week and reliance on the map became less over time.
These observations are directly comparable to my software testing experience. The map is just a model - a certain level of detail used for a certain purpose. Change the detail or the purpose and it is a different model.
Also, the use of a map (model) can change over time. On one occasion it might be used as a main guide to get to a destination and after a period of familiarity it is used as a waypoint on course to a destination. Something to help orienteer along the way. I've touched on some of these re-use ideas before when walking in the woods.
Notice the parallels with use and purpose between maps and model usage in software testing.
Some maps are old, some new, some sightseeing, some for walking & hiking. Some use maps as a history - tracking where they have been - they can even use someone else's map and make notes about features they have seen
Points to note with your map (model) usage:
- Is it a normative or informative reference? Does it describe the contours of the landscape (main claims of the product) in a lot of detail, or is it a hand-sketch of the area in much less detail (key features to look at)?
- Is it a record of progress (as in coverage of features)?
- Is it a partial plan (X marks the spot - lets look for treasure and other interesting things along the way)?
- Is it a mission objective?
- Is it a sightseeing guide (testing tour)?
- Is it a record of danger (places to avoid or see, marshes and bogs not suitable for walking - bug clusters in the product)?
- One thing to note - maps (models) get old. Sometimes that's ok - some features do not change (ancient monuments, town locations, product features).
- Sometimes it's not - you want the latest sightseeing information (tourist attraction) or danger areas (buggy areas of the product).
- Ultimately a map (model) is a view of a landscape (or product). There might be a lot of personal views on the map (model) - what is included, to what detail, what is left out or even omitted.
- Whether new or old, the use of it should be able to be dynamic - that is, your use of it is the aspect that adds value to the journey (testing session/s).
Caution for Map (Model) use in Software Testing
From the first observation, and the points above, the models (of product or problem space) should always have a known purpose - fitting the right model to the right objective - and should (ideally) be used in a dynamic way.
From the second observation this is a caution to question the assumptions connected with the model. If you're in unfamiliar territory then you may need to rely on the model for guidance, but use it dynamically. Is the information correct, what information can I add? Don't just follow - question (even internally) as you go. Even question about how the terrain would look if the map/model was wrong - to give yourself clues about what to look for.
If you rely too much on the map - whether it's someone else's or your own - then you there is a potential to lose touch with your testing objectivity/eye/mindset - something that is needed for good testing.
Still to come
From the third observation - there are aspects of time perception and the amount of information processing we make (or shortcut) and aspects of focused and stimulated attention - this is an area I'm still researching with potential implications for scripted and exploratory testing (more to come).
So, how is your map reading and usage? How is your model usage?