Last time, we saw how to make each test target it’s audience effectively. This was important because different audiences have different needs. So we should address those needs individually, in separate stages of our continuous delivery pipeline. Let’s look again at the sample pipeline from the start of this continuous delivery testing series:
We can see that this pipeline separates different tests into different stages. This brings us to the final practice in our series:
Practice #3: Execute tests with different audiences separately
Stages in our pipeline provide feedback at different levels and to different audiences. Some audiences, most notably developers, want feedback early and often. Developers are expensive, and in my experience they don’t deal with boredom well.
Developers – at least the good ones 🙂 – want to know right away whether the work they’ve done has introduced any errors. From last week we learned that unit tests are ideal for this because they provide fast feedback. That means unit tests are the first tests to appear in our pipeline.
Integration tests are often too slow, and functional acceptance tests almost always are. We don’t want to delay feedback to our developers by running them at the same time. Furthermore, functional acceptance tests target business stakeholders as their audience. I’ve yet to meet a business stakeholder that needs feedback as often as developers (and I hope I never do). Address their needs after those of your developers, and your pipeline will be more effective for all parties.
We hope you enjoyed this series on making continuous delivery testing more effective. For more on this subject, be sure to check out Neal Ford‘s video “Engineering Practice for Continuous Delivery“. Good luck meeting your continuous delivery dreams!