Fear the mutants. Love the mutants.
2023-04-19 , B05-B06

Developers often use code coverage as a target, which makes it a bad measure of test quality.

Mutation testing changes the game: create mutant versions of your code that break your tests, and you'll quickly start to write better tests!

Come and learn to use it as part of your CI/CD process. I promise, you'll never look at penguins the same way again!


Code coverage (the percentage of your code tested by your tests) is a great metric. However, coverage doesn’t tell you how good your tests are at picking up changes to your codebase - if your tests aren’t well-designed, changes can pass your unit tests but break production.

Mutation testing is a great (and massively underrated) way to quantify how much you can trust your tests. Mutation tests work by changing your code in subtle ways, then applying your unit tests to these new, "mutant" versions of your code. If your tests fail, great! If they pass… that’s a change that might cause a bug in production.

In this talk, I’ll show you how to get started with mutation testing and how to integrate it into your CI/CD pipeline. After the session, you’ll be ready to use mutation testing with wild abandon. Soon, catching mutant code will be a routine part of your release engineering process, and you’ll never look at penguins the same way again!


Expected audience expertise: Python:

Novice

Expected audience expertise: Domain:

Novice

Abstract as a tweet:

Developers often use code coverage as a target, which makes it a bad measure of test quality. Mutation testing changes the game: use your code to create mutants that break your tests, and you'll quickly start to write better tests! Come and learn to use it in your CI/CD process.

I'm a Python Developer Advocate and Software Engineer at Vonage (ex-IBM). I'm interested in communications APIs, machine learning, open-source, developer experience and dancing! My training is in Physics, and now I use my problem-solving skills daily, working on open-source projects and finding ways to make developers’ lives better.