It struck me recently that there are two clear modes that we operate in when testing – and our behavior in those modes is different. This post is my attempt to define them – so that I can be more aware of what I’m doing and work on them differently.
Mode 1 – Searching
When you’re Searching for bugs, you’re expecting that something’s out there. You’ve done your background thinking and decided on an area to look at or a rough approach – but you don’t know where any individual bug actually is.
When you’re in searching mode, your actions are to cover as much ground as possible and to find any inital indication that there’s something you might want to investigate further. This means it’s good to
- change lots of things at once
- keep summary notes of what you’re doing and where you’ve been
- defocus, distract yourself, use breadth-first search techniques
- use System 1 – i.e. fast, reactive, emotional and assumption based approaches.
Mode 2 – Tracking
You swap into Tracking Mode when you catch a glimpse of something that’s not quite right. You now know there’s something funny going on, and you’re working to get from symptoms that there might be a bug in the area to having the bug boxed up and delivered.
When you’re in tracking mode, you’ve found the signs of a problem and now need to hunt it down. Your actions are about focusing in from symptoms to bug – or bugs, be ready to find a whole nest of the blighters! This means it’s good to
- change one thing at a time
- keep exact notes of what you’re changing and what you’re keeping the same
- focus and use depth-first search techniques
- use System 2 – i.e. slow careful, rational thinking.
To be clear, these modes aren’t “better” or “worse” than each other; you need to use them both to hunt down those bugs. Just be aware which you’re doing as you do it.