Mutation testing in practice

Virtual Room 2

18:00 - 18:40

Methodology & culture

This session showcases advanced metrics of dynamic testing and how they can be used to detect hidden defects in the software applications.

We will apply the white-box approach to focus on the internal structures of an application and to exercise paths through the code. There are two actors during the software test: the application and the test suite. Test suite has a dependency on the application and it exercises a set of tests against it. Quality metrics of application are derived from this process. How do we know that a test suite is good enough? Does it succeed to detect all defects? Code coverage tools can evaluate the completeness of a test suite in attempt to answer those questions. But there are extra considerations has to be taken into account. Mutation testing method is used to evaluate quality of existing test suite. Mutation testing involves modifying an application code in small ways. Each modified version is called a mutant. Test suite can detect or let through the mutant. We are injecting potential defects in application code to see if our test suite is able to detect those. Quality of the test suite can be measured as a ratio of detected to undetected mutants. This metric is a mutation score. To define mutation test we use mutation operators. It is the set of common programming errors (usage of wrong operator or variable name). Mutants are generated in automated way and each is verified by test suite to detect defects. Undetected mutants are potential hidden defects in the application.

During the session there would be showcased mutation score as an advanced metric during dynamic testing with the white-box approach. Mutation score enables teams to identify blind spots in existing tests and improve on those to prevent defects in software applications.

The set of automated tools that can be used by software development teams to incorporate mutation testing in development cycle of applications written in Java and etc. We will walk through the hidden weaknesses in the example application highlighted by mutation score metric and how it can be addressed by extending an existing test suite.