Event

PhD Defence: Code-Change Aware Mutation-based Testing in Continuously Evolving Systems

  • Conférencier  Miloš OJDANIĆ

  • Lieu

    Campus Kirchberg, CK building, room E00 – D17

    LU

You are all cordially invited to attend the PhD Defence of Mr. Miloš OJDANIĆ on Tuesday, 20 June, at 10:00 in room E00 – D17 at CK Building (Campus Kirchberg).

Members of the defence committee:

  • Chair: Prof. Dr Yves Le Traon, University of Luxembourg, Luxembourg
  • Vice-chair: Prof. Dr Annibale Panichella, Delft University of Technology, Netherlands
  • Supervisor: Prof. Dr Michail Papadakis, University of Luxembourg, Luxembourg
  • Member: Prof. Dr Gregory Gay, Chalmers and the University of Gothenburg, Sweden
  • Member: Prof. Dr Mauro Pezzè, Università della Svizzera Italiana, Switzerland & Università di Milano Bicocca, Italy
  • Expert in an advisory capacity: Dr Renzo Degiovanni, University of Luxembourg, Luxembourg

Abstract:

In modern software development practices, testing activities must be carried out frequently and preferably after each code change to bring confidence in anticipated system behaviour and, more importantly, to avoid introducing faults. When it comes to software testing, it is not only about what we are expecting; it is equally about what we are not expecting. Developers desire to test and assess the testing adequacy of the delta of behaviours between stable and modified software versions.

Many test adequacy criteria have been proposed through the years, yet very few have been placed for continuous development. Among all proposed, one has been empirically verified to be the most effective in finding faults and evaluating test adequacy. Mutation Testing has been widely studied, but its current traditional form is impractical to keep up with the rapid pace of modern software development standards and code evolution due to a large number of test requirements, i.e., mutants.

This dissertation proposes change-aware mutation testing, a novel approach that points to relevant change-aware test requirements, allows reasoning to what extent code modification is tested and captures behavioural relations of changed and unchanged code from which faults often arise. In particular, this dissertation builds contributions around challenges related to the code-mutants’ behavioural properties, testing regular code modifications and mutants’ fault detection effectiveness.

First, this dissertation examines the ability of the mutants to capture the behaviour of regression faults and evaluates the relationship between the syntactic and semantic distance metrics often used to capture mutant-real fault similarity.

Second, this dissertation proposes a commit-aware mutation testing approach that focuses rather on change-aware mutants that bring significant values in capturing regression faults. The approach shows 30% higher fault detection in comparison with baselines and sheds light on the suitability of commit-aware mutation testing in the context of evolving systems.

Third, this dissertation proposes the usage of high-order mutations to identify change-impacted mutants, resulting in the most extensive dataset, to date, of commit-relevant mutants, which are further thoroughly studied to provide the understanding and elicit properties of this particular novel category. The studies led to the discovery of long-standing mutants, demonstrated as suitable to maintain a high-quality test suite for a series of code releases.

Fourth, this dissertation proposes the usage of learning-based mutant selection strategies when questioning how effective are the mutants of fundamentally different mutation generation approaches in finding faults. The outcomes raise awareness of the risk that the suitability of different kinds of mutants can be misinterpreted if not using intelligent approaches to remove the noise of impractical mutants.

Overall, this dissertation proposes a novel change-aware testing approach and provides insights for software testing gatekeepers towards more effective mutation testing in the context of continuously evolving systems.