Testing-Essentials ▪ Think Like a Tester ▪ Test Strategy ▪ Test Tooling, Automation ▪ Test Analysis and -Design ▪ Performing Tests and Reporting ▪ Appendix
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.
The Seven Uses of Models (REDCAPE)
- Reason: To identify conditions and deduce logical implications.
- Explain: To provide (testable) explanations for empirical phenomena.
- Design: To choose features of institutions, policies, and rules.
- Communicate: To relate knowledge and understandings.
- Act: To guide policy choices and strategic actions.
- Predict: To make numerical and categorical predictions of future and unknown phenomena.
- Explore: To investigate possibilities and hypotheticals.
– Scott E. Page
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.
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.
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.