Thursday, March 25, 2010

Model Based Testing using your mind

Model Based Testing seems one of the trends which is living nowadays in "the land of the testers"
You will find more often information about this on topic on the internet, seminars, conferences, webinars, blogs, magazines. So it must be interesting, it must be new as lot of people are speaking about it.

I wrote about this topic a bit earlier already just to share my thoughts. 6th june 2009: Model Based Testing was this new?
This time I was triggered by a posting by Ewald Roodenrijs on First model, than build He gives the advice first to model and then to start building. This seems a good advice. Why not use this approach if this helps communication with your team?

A few weeks ago I also attended a session of the European chapter of Weekend Testers. Weekend Testing EWT08: Kept sticking in testing. During this session Michael Bolton also suggested to build a model before start testing. In the perspective of the challenge of weekend testing is was rather building a model in your mind instead formal paper work.

A week later during the session of EWT (European Weekend Testing) I tried to use modelling first instead starting testing. I made up a model about the system how I think the application will be based on the information provided in documentation. to model it I used the heuristic: SF DePOT (Structure, Function, Data, Platform, Operations, and Time)

For me this worked out well. I learn to think about the software in another way then just functions, test scripts which must pass etc.

If model based testing is based on defining models and use them before you start testing, then I was also doing some model based testing. I only skipped a lot of formal work.
The next step would be translating my thoughts to a user, tester, developer, or who ever is interested. Here a decision can be made: will I use formal model techniques which will fit the model-tools or will I use a heuristic model (hey: also a model!)

I'm sure that there are a lot of advantages with a formal model based testing approach. I personally prefer at this moment using common sense and focus on right questions instead guided by an heuristic approach presented at one of the links mentioned above instead of implementing model based testing with a big bang.

A former teacher told me once: "If you can avoid automation, then do it, once you started there is no way back!" Is this also the case with model based testing?

Another question which just popped up in my mind is: why are we spending so much time in understanding models and creating models and not trying to learn how our own mind is working and how our mind can support us at work? Is this the meaning of learn to learn and continue with it?


  1. Really good point about MBT! I also think that the essence of testing is to use your mind. But what does it mean? IMO it means that testers build (mental) models of the tested system and design their tests based on it. MBT is all about the formalization of this model and reaching higher test quality (especially according to the reached test coverage).
    I think that your two last questions can be answered by MBT! By formalizing the models we have in our mind we learn how our mind is working and by using automation to generate test cases we can improve our thinking. Don't you think?

  2. Hello Michael,
    First, my compliments for your site, it seems a source I certainly have to dive in to and learn more about MBT.

    A nice approach you have by using and formalizing models we are able to learn and teach our mind. This makes me curious why this should work? There are a lot of languages in the world and still we have difficulties to communicate with each other, we even need to use models for this. We also have several different programming languages and still we using definitions variables etc differently. Even within the same programming language. If this is already hard, how would teaching and learning an new language, modelling language help us now where other left us?

    In my opinion models are only worth to use if we are able to ask the right questions creating a model, using a model and also explaining a model. Because you keep questioning the model must be dynamic which makes a model less strong.

    If human beings are already hard to understand then it will be harder to understand the human who tries to understand a simplification of the real world, which is called model.

    Models might be useful as long as we use it to communicate, not to rely on.