Posted by Ben Simo
Harry Robinson posted an answer to inquiries about the Google Testing Blog's slogan: "Life is too short for manual testing." Some were concerned that the slogan implied that Google does not value manual and exploratory testing. I too had such concerns.
Harry pointed out that the slogan is just a slogan and that life really is too short to try all the combinations that might expose important bugs.
This got me to thinking about slogans as models. A slogan is really a model of an idea. It is not complete. It is simpler than the thing it describes.
Consider the following advertising slogans:
- "The ultimate driving machine"
- "When it absolutely, positively has to be there overnight."
- "Finger lickin' good."
- "Let your fingers do the walking."
- "Reach out and touch someone."
- "The quicker picker-upper."
- "Have if your way."
- "It's everywhere you want to be."
- "Betcha can't eat just one."
In addition to the more detailed model invoked in your mind, it should not be difficult to find faults with these slogans. The slogans are incomplete; yet they are not useless.
Slogans demonstrate both the usefulness and potential complexity of models. A model does not need to be complete to be useful.
So, how does this apply to software testing ... and test automation?
When we develop test cases or perform exploratory testing we are implementing our mental models. When we execute tests, we (hopefully) learn more about the system under test and update our mental models.
In the same way, explicit models used for model-based test automation can be refined after each test execution. There is no need to model all the possible details before the first test run. Running tests based on incomplete models can provide valuable information about your test subject. It can validate or disprove your assumptions. Results from an incomplete model can help lead you to other useful tests -- both manual and automated.
Investigate using Hierarchical State Machines to simplify model definition and maintenance.
Build your models one step at a time.