Skip to content

Quolyk/mull

 
 

Repository files navigation

Mull

See LLVM-based Mutation Testing System. Request For Comments and FOSDEM 2017: Mutation Testing, Leaving the Stone Age by Alex Denisov.

Slack Status

Getting started

So far Mull is being developed against OSX. Linux support is coming.

OS X

Warning: Recently we migrated Mull to be an out-of-source project. Migration went smoothly and all is working on our end (c). Please let us know if you notice some dependencies that we missed to specify below.

Notes

Current code is being developed against stable LLVM 3.9 branch.

Either use binary distribution via brew install llvm or clone LLVM and build it yourself from release_39 branch.

Getting dependencies

# These are needed by LLVM
brew install zlib
brew install ncurses

# SQLite is needed for Mull to generate reports.
brew install sqlite

Getting Mull

git clone https://github.com/mull-project/mull.git
cd mull

Getting Google Test

After you clone Mull, you have to install Google Test.

cd googletest
make install
cd ..

Building Mull

mkdir BuildXcode
cd BuildXcode
cmake ../ -G Xcode -DCMAKE_TOOLCHAIN_FILE=../Mull.toolchain.OSX.cmake

open Mull.xcodeproj

Use make help to see the common tasks used by developers.

Use MullUnitTests scheme to run the tests. Use mull-driver scheme to build Mull.

Open questions

There are the questions we want to answer with Mull eventually.

  • Can mutation testing actually detect serious errors in the real-world programs?
  • What are the most effective mutation operators?

Useful Material

Papers

An Analysis and Survey of the Development of Mutation Testing

Are Mutants a Valid Substitute for Real Faults in Software Testing?

Articles

LLVM-based Mutation Testing System. Request For Comments

Talks

FOSDEM 2017: Mutation Testing, Leaving the Stone Age by Alex Denisov

LLVM Social Berlin #6: Mull meets Rust

About

Attempt to build a system for mutation testing on top of LLVM. Work in progress, as always.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • LLVM 85.1%
  • C++ 13.5%
  • Other 1.4%