Model the Test, or Test the Model?
Apr 29, 2014
Three weeks ago, SogetiLabs published the “Innovation in Quality” report (download here) in which Geert Vanhove and I discussed the changing role of the tester. We see that testers develop a second skill set, next to their ‘testing skill set’ and that this second skill set is either IT-oriented or business-oriented. But there is also a third option, a ‘road in the middle’, namely using models more extensively combining the best of both worlds! And for quite some time now I’ve been urging people, testers and business people alike, to start using models. There is so much benefit in them!
Let me first elaborate a little on Model Based Testing, or MBT in short. The core of MBT is generating test cases from models. For this to be possible, a model must be unambiguous and straight forward, to the point that a computer can interpret and process it. A flow diagram (a picture) depicting a process is easily recognized as a model, but pseudo code (pure text!) as a means to define business rules satisfies the description just as well! Developing models requires an abstract way of thinking, that mostly appeals to ‘techies’: the ‘IT-oriented’ side of MBT. But models also force us to focus on ‘what matters’ and leaving out what can be left ignored. This is the ‘business-oriented’ side of MBT.
Still, this ‘best of both worlds’ aspect in itself does not explain the benefit of using models. This benefit follows from the improved feedback capabilities when developing models: discussing 1 or 2 pages of ‘structured text’ in e.g. a use case can be bothersome (is it consistent, complete, correct, …?), 10 pages become really cumbersome and let’s not even think about non-structured text (verbal diarrhea, as someone called it!). But when the contents of a design or analysis is poured into models, anything that violates completeness, consistency, correctness or what have you catches the eye much more easily.
In other words: the title of the blog is a little misleading … by modeling your test, you automatically test your model! The title should be: Model your Test AND Test your Model!