In Looking Good, Testers! I made the case that testing is about looking and that delegating the looking to someone or something else involves a risk calculation: do you both understand the task the same way, is the third party likely to carry out the task in the way you requested, how easily can you check any results they give back, could they complement you in some way, how will you keep your knowledge and skills up to date if you don't do this task any more, how much does this task matter, how much do you care about any of that, ...?
I didn't say anything there about selecting what to look at or for ... and I'm not going to talk about it here either because it's essentially the whole of testing. I will note one thing, though: to find things other people don't find, look where other people don't look.
What I do want to cover here is looking at things that, arguably, you don't need to.
My team was recently asked to add a new layer to a service we own. We have another service to use as a model although there are enough important differences that this isn't a simple copy-paste operation.
Some the team know the other service and the layer's tech already but I don't and so when the first slices of planning and then implementation started, I needed to make some choices about whether, when, and how much time to invest in learning.
I decided I would, now, and a small amount, iteratively. I looked broadly at first, covering topics such as:
- the terminology used in the other service and the tech
- the existing service's integration with the tech
- the use cases the existing service supports
- the key properties of those use cases and how they map to our service
- how testing is done for the existing service
- how the tool used for that testing works
- how I can use the same tool on our service
- how I can control and inspect the behaviour of the tool
But this wasn't a linear process. I followed what looked interesting or potentially useful, a little at a time, building background as I went. As is my way, I made models of the space (Miro boards and spreadsheets this time) and wrote notes. These start out as tools for me to document, review, and cement my evolving understanding, but often turn into something more generally valuable as was the case this time when "James's spreadsheet" became a thing in discussions.
--00--
I didn't need to do that work. I wasn't asked to. There wasn't a ticket for it. Others have expertise in the area already, and the tooling exists for me to be able to exercise what we're building. I could have kept a shallow understanding and done basic checking.
But I didn't. Why?
In large part, instinct. I felt that this was an area where it would be beneficial to have more context, if not now then later. With that knowledge, I don't feel so distant from important decisions, I have the ability to think more deeply about where there are gaps in our work, in our testing, I can recognise the different shapes of the system in front of me and begin to build experience, expertise, and intuition about it.
This kind of activity isn't itself testing, but it benefits from testing skills and serves later testing. I don't seek permission to do it and I don't feel like I need to: after all, I'm just looking.
Image: Rana Kaname on Unsplash
