skip to main content

Blog | About me

The paradox of why we automate

One of the most important challenges in test automation is figuring out what is actually worth automating. Not all things can be automated, not all things should be automated. But some can, and presumably some should. So inevitably we need to ask, why automate this thing and not that thing? That question came up in… Read more

Can tests cause bugs?

Some of the best podcasts about testing aren’t about testing at all. Enter: last week’s episode of 99% Invisible on Cautionary Tales. The episode is about examples of things going horribly wrong, and why. Obviously there some superficial connection to testing already: one reason we test software is to help prevent things from going horribly… Read more

Agile+DevOps: The Agile Acid Test and Observability

Recently I’ve been talking to various groups about “technical agility”. That is, the technical aspects of our processes and products that enable us to be “agile” in our software development. I’ve been finding it very useful to borrow terms and concepts from DevOps circles to make certain points. Perhaps unsurprising given how closely related they… Read more

A demonstration of Mutation Testing

Test coverage is one of the simplest possible metrics to help gauge quality of testing, which makes it one that is often targeted with rules like “don’t commit any code with less than 80% coverage”. However, it is also an easy metric to manipulate, and doesn’t necessarily prove anything about the quality of the tests… Read more

Five highlights from AssertJS 2019

AssertJS, a conference specifically about testing in JavaScript, took place in Toronto last week. Interestingly, I’d say most of the talks were not specific to JS at all. Here are my top 5 highlights, in no particular order: 1. Tophatting From Adam Archer: “Tophatting” is the a word used at Shopify that refers to actually… Read more