Model Building vs. Model Checking

At Consultants Camp, James Bach and Michael Bolton presented some of their material for their new Rapid Testing 2.0 class (still under development I think). One of the interesting dynamics they raised was the dynamic between model building vs. model checking.

Modeling is composing, describing, and working with mental or formal models of the things you are exploring. Identifying relevant dimensions, variables, and dynamics. A good mental model may manifest itself as having a "feel" for the product; intuitively grasping how it works. It's how we build cohesive ideas. It's how we take the random bits of information we gain about something and put them together to build something useful for our exploration. Our models grow and contract over time. As we learn new information, we test the model with it. If we need to, we incorporate the new information into the model.

If your testing is primarily about learning and not about searching, then you are model building.

If your testing is primarily about searching and not about learning, then you are model checking.

The distinction is important because as testers we need to be aware of how we use our models. Because models are simplifications, they are incomplete/incorrect. We need to be able to recognize when we need to build our models out more (learning) and when we have enough that we can test against them (searching and checking).
Software TestingMichael Kelly