How to apply mutation testing to the RCU for fun and profit


One Line Summary

Learn how we overcame the practical and computational limitations of mutation testing to identify real problems in projects as complex as the Kernel, and how you too can adopt this technique.


Mutation testing is an automated test technique often used in academia to determine the quality of test suites and the robustness of programs. Though seen as the gold standards by academics, it has seldom been applied to programs longer than a few hundred lines of code due to the computational explosion it is prone to as programs grow.

We have been working to adapt this technique to the practical exigencies of the RCU to evaluate its testing harness as well as identify new bugs in a more scalable and automated way. By rapidly triaging and throwing away uninteresting mutants we have been able to use this technique to identify 1 bug and 2 test case modifications in a relatively well-established and solid module of the Linux Kernel over the last few weeks.

In this talk, I will describe mutation testing and its potential, how we overcame the scalability issues associated with this technique, and how this technique can successfully be used to identify hairy bugs in big and complex systems.


RCU, Mutation Testing


  • Iftekhar Ahmed

    Oregon State University


    I am a Ph.D. student in Computer Science at Oregon State University. I am interested in code quality measurement and automated testing techniques. Recently I have been working on applying mutation testing to find new bugs, as well as evaluate testing scripts and infrastructure in a more scalable and automated way. This would benefit the developers in large scale projects by identifying bugs and eventually help them to improve the quality of the software.My other interests include books, music and movies.