testiloquent

Testing-EssentialsThink Like a TesterTest StrategyTest Tooling, AutomationTest Analysis and -DesignPerforming Tests and ReportingAppendix


Models

any problem we can articulate at all we can articulate abundantly more clearly, if not outright solve, through the use of a picture. – Dan Roam.

About Models

The Seven Uses of Models (REDCAPE)

Systems, both of the technical and human variety are at the center of all we do in IT. Working with them can be tricky, but - as discussed in the previous lesson - using heuristics can make working with them easier. Systems can also be complex, difficult to understand and reason about, and this is where modeling comes in. “Any single model simplifies the world and highlights only some dimensions.” – Scott E. Page

Modeling helps us both to check our assumptions and make sense of the systems we are dealing with. Models help us to communicate with others about a system by providing a representation of particular facets of it, exposing salient features and excluding others.

A geographically accurate London transit map. Image source: https://www.theatlantic.com/entertainment/archive/2015/09/behold-the-geographically-accurate-tube-map/405967/
Fig. 1: Geographically correct London transit map
London transit map. Image source: https://printable-map.com/wp-content/uploads/2019/05/large-print-tube-map-pleasing-london-underground-printable-with-and-throughout-printable-map-of-the-london-underground.jpg
Fig. 2: The iconic London transit map - a simplification with greater explanatory value

Modeling Languages

On starting your internship, you may work not only with developers but with people in a range of roles. Some of these roles deliver models in a specific modeling “language”.

Project managers may model project activities into work breakdown structures or Gantt charts. UX designers may create empathy maps or customer journeys. Data base administrators may use data models. Business analysts may use business process models.

Some multi-purpose modelling formats are context maps, mind maps, matrixes, clustered lists.

Your Turn

Modeling is a craft, mastered through engagement; it is not a spectator sport. – Scott E. Page

We encourage you to create models for deeper learning while studying in this boot camp, when you start your internship to accelerate your on-boarding, and in general as part of your note-taking habit to better understand the systems you encounter in your daily life. Use the modeling “language” that works best for your context. As the sketches in the lesson on heuristics make evident, modeling need not involve a high level of formality or sophistication. If your model helps make something clearer, it’s a good model, and you can make improvements any time.

More on modelling in testing:

We’ll let Extreme Programming have the last word here:

Models are useful as tools of discovery. The process of creating a model is just as important as the model itself, often more. When you are unsure about how to proceed you can model to get your direction. When confronted with code that defies understanding modeling can help. Models include flowcharts, class diagrams, interaction diagrams, UI mock ups, etc. There are many different model types well suited to learning new things about your project.


Previous: Heuristics ▪ Next: Test Strategy