4. Mutation Testing

4.1. Mutation Testing

Pierwsza publikacja na temat testów mutacyjnych pojawiła się w 1978 roku [3].

4.2. Rodzaje mutatorów

../_images/ecosystem-pitest-mutators-01.jpg

Figure 4.1. Mutation Testing - Condition boundary

../_images/ecosystem-pitest-mutators-02.jpg

Figure 4.2. Mutation Testing - Negative conditions mutator

../_images/ecosystem-pitest-mutators-03.jpg

Figure 4.3. Mutation Testing - Math mutator

../_images/ecosystem-pitest-mutators-06.jpg

Figure 4.4. Mutation Testing - Conditional boundary mutator

../_images/ecosystem-pitest-report-06.png

Figure 4.5. Mutation Testing - Pitest report

4.3. Frameworks

  • Mutation - testing list of tools and publications by Jeff Offutt

  • muJava - A mutation tool for Java that includes class-level operators

  • mutate.py - A Python script to mutate C-programs

  • Mutator - A source-based multi-language commercial mutation analyzer for concurrent Java, Ruby, JavaScript and PHP

  • Bacterio - Mutation testing tool for multi-class Java systems

  • Javalanche - Bytecode-based mutation testing tool for Java

  • Major - Compiler-integrated mutation testing framework for Java

  • Jumble - Bytecode-based mutation testing tool for Java

  • PIT - Bytecode-based mutation testing tool for Java

  • Descartes - A mutation engine plugin for PIT based on extreme mutation testing[21], developed within STAMP research project

  • Stryker - Mutation testing tool for JavaScript

  • Mutant - AST based mutation testing tool for Ruby

  • Jester - Source-based mutation testing tool for Java

  • Judy - Mutation testing tool for Java

  • Heckle - Mutation testing tool for Ruby

  • NinjaTurtles - IL-based mutation testing tool for .NET and Mono

  • Nester - Mutation testing tool for C#

  • VisualMutator - Mutation testing tool for C#

  • Humbug - Mutation testing tool for PHP

  • Infection - PHP AST based Mutation testing framework for PHP

  • MuCheck - Mutation analysis library for Haskell

  • mutmut - Mutation testing system for python

  • Mull - Mutation testing based on LLVM

  • Dextool - Mutate Mutation testing of C/C++

4.3.1. Java

  • PITest