Many Models – Better Test Ideas Rikard Edgren
Henrik Emilsson has convinced me that skilled software testing is based on invisible mental models that help us see what can be tested.
If we can make these visible, we can sharpen our skills, and also teach testing more effectively.
Here follows a simple example I used in class, that shows that by switching between several models you will get different test ideas.
If you want to learn by experiencing, download Perfect Age Calculator application, and test for ten minutes or so.
Example 1 – The User Interface
OK, you’re casually reading a testing blog, that’s fine.
This is the User Interface, and the way you see it is your very first model, giving you (at least) “click these” test ideas.
Example 2 – Timeline
I guess you immediately tested some familiar dates, e.g. your own birthday to see if it handles normal data (Benevolent Start Heuristic)
Many of you checked today’s date and a date in the future.
These tests are probably based on your model of time, which can look in many ways, but something like a timeline (which can be very different for people!)
Example 3 – Detailed Timeline
The time model can be more elaborated, e.g. including mental notes of leap years, and other special dates. This, the previous and next models are visualizations of your equivalence partitioning.
Example 4 – Year, Month, Day
Some switched to test ideas bases on the date being three parts: Year, Month, Day.
This (more easily) rendered test ideas like same year, month, date; and invalid entries for each of these three. You were also more alert to problems with calculation of each of these three.
Example 5 -Technical Flow
Some of you used a technical flow model, reversing what the code is doing. Depending on your knowledge of data types this generated test ideas challenging the boundaries, perhaps by using “den 5 februari 2012″ on a Swedish machine.
Example 6 -Quality Characteristics
Some testers always apply a characteristics model, personally I use an instinctive sub-set of thetesteye’s list, which in this case gave test ideas for intuitiveness, professionalism, memory consumption etc.
There could be variations of these, and many more as well (keyboard/mouse interactions, surroundings, competitors, familiar problems…); and I encourage you to find these in yourself, so you can make even better use of them.
(For a complex product, there will be hundreds of possible models, and a good way to find some of them is to combine your knowledge with SFDPOT from James Bach’s Heuristic Test Strategy Model.)
The results from these tests on Perfect Age Calculator show a lot of problems, seemingly too many for such a simple program.
When this happens, you should question your models (I Might Be Wrong Heuristic); I started to wonder if there might be some other kind of calculation they try to make.
But Sourceforge project information reads: “This tool is very useful for official use like office, schools, institutes etc.”
So my conclusion is that the piece of software doesn’t live up to its claims.
You don’t need to explicitly visualize your many mental models while testing, as a matter of fact, you shouldn’t, because it would take too much time.
Most of you reading this blog probably do it instinctively, and in different ways (hence the diversity testing embraces.)
But you might need to make the models explicit a couple of times, to train your testing brain to think in many different models, to get a richer set of test ideas. And by sharing our invisible models, I think we can get even better at testing.
The even more important question about which of these tests that are important, well that’s another story…