Mull it over: mutation testing based on LLVM

08/05/2019
by   Alex Denisov, et al.
0

This paper describes Mull, an open-source tool for mutation testing based on the LLVM framework. Mull works with LLVM IR, a low-level intermediate representation, to perform mutations, and uses LLVM JIT for just-in-time compilation. This design choice enables the following two capabilities of Mull: language independence and fine-grained control over compilation and execution of a tested program and its mutations. Mull can work with code written in any programming language that supports compilation to LLVM IR, such as C, C++, Rust, or Swift. Direct manipulation of LLVM IR allows Mull to do less work to generate mutations: only modified fragments of IR code are recompiled, and this results in faster processing of mutated programs. To our knowledge, no existing mutation testing tool provides these capabilities for compiled programming languages. We describe the algorithm and implementation details of Mull, highlight current limitations of Mull, and present the results of our evaluation of Mull on real-world projects such as RODOS, OpenSSL, LLVM.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/05/2021

TRANSMUT-SPARK: Transformation Mutation for Apache Spark

We propose TRANSMUT-Spark, a tool that automates the mutation testing pr...
research
06/10/2020

Retrofitting Symbolic Holes to LLVM IR

Symbolic holes are one of the fundamental building blocks of solver-aide...
research
03/13/2019

SymPas: Symbolic Program Slicing

Program slicing is a technique for simplifying programs by focusing on s...
research
07/13/2018

irbasis: Open-source database and software for intermediate-representation basis functions of imaginary-time Green's function

The open-source library, irbasis, provides easy-to-use tools for two set...
research
11/07/2018

Descartes: A PITest Engine to Detect Pseudo-Tested Methods - Tool Demonstration

Descartes is a tool that implements extreme mutation operators and aims ...
research
08/03/2021

Towards Substructural Property-Based Testing

We propose to extend property-based testing to substructural logics to o...
research
08/09/2023

Fixing Rust Compilation Errors using LLMs

The Rust programming language, with its safety guarantees, has establish...

Please sign up or login with your details

Forgot password? Click here to reset