Conference for mobile developers

Russia, Saint-Petersburg, April 21-22, 2017

Congress Centre PetroCongress, Lodeynopolskaya Str. 5

Mutation Testing: how good your tests are

Day 1 /  / Track 2  /  RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии. /

For decades developers try to build a bug-free software. Numerous techniques and metrics have been developed. However, there is still a need for a method that can both assert program domain and provide reliable metrics.

Mutation Testing is one of such techniques.

There is a function and a test for that function. Any semantic change in the function (so-called "mutant") should break the test ("kill mutant"). If that's not the case (the test still passes), then mutant is considered as survived. No mutants should survive ever. If they are, then either the test is bad, or the function is not correct.

Research in this area exists since 70's. However, this method is not widely adopted. The computational cost was one of the blockers. Another one is the way how such systems are implemented.

In this talk, I want to present Mull: mutation testing system based on LLVM. It uses runtime compilation (JIT) to speed up the whole process and make mutation testing accessible for everyday usage. LLVM bitcode as a target language makes Mull applicable for high-level languages such as C++, Rust, Objective-C, Swift, etc.

Alex Denisov, Uberchord GmbH

Alex is a Software Engineer from Ukraine, who lives in Berlin. He has a particular interest in low-level programming, developer tools, and in the area of automated testing and quality of software in general. These interests gave birth to the two projects he works on in his spare time:

  • System Under Test: blog about testing of various OSS projects (https://
  • Mull: LLVM-based tool for mutation testing ( project/mull)

He firmly believes that people should share more knowledge, so he maintains his blog, gives talks, and organizes LLVM Social in Berlin.

All talks  


Программа конференции