2018 – Projet n°91 – Mutation testing techniques : investigating the equivalent mutants

Ce projet est réalisé par Perrine Tcheeko Nzetchou et Nikeethan Selvaratnam.

The project is devoted to the study of mutation testing methods and tools. Mutation testing is
based on test sequence derivation via a fault injection into the original program. However,
equivalent mutants can be also provided even if a given mutant differs syntactically from the
original source code. In this project, we plan to perform an experimental study of the
percentage of such mutants as well as of their nature. The effect of such equivalent mutants
for various aspects of software engineering should also be investigated.

Mutation testing techniques in Python are not as documented as in C or Java. There are three
mutation testing methods in Python: MutPy, Mutmut, Comic Ray which were recently
developed. Thus, we decide to study mutation testing methods in Python using one of the
tools adapted to Python named MutPy. During this project, we will use python3 and MutPy
In Mutpy, we can find the list of the different mutations possible and the code associated to
them. At the beginning, we won’t look carefully the code behind mutants, but analyze
mutants and what their behaviours are.
First of all, we plan to test basic programs and see how MutPy works, then find all the
mutants possible in short algorithms and establish whom are equivalent mutants. We will
dress a short list containing the eventual equivalent mutants. We plan in this step to find
equivalent mutants in very easy algorithms such as sorting algorithms.

After becoming familiar with Python and MutPy, we will test on more complex algorithms
and search all equivalent mutants. We will produce a table containing the equivalent mutants,
the programme and how it affects it in terms of performance (speed, use of memory, ...).
Finally, we will conclude about the impact of equivalent mutants in engineering software.