3. Mutation Testing

3.1. Mutation Testing

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

DLS78

Richard A. DeMillo, Richard J. Lipton, and Fred G. Sayward. Hints on test data selection: Help for the practicing programmer. IEEE Computer, 11(4):34-41. April 1978.

3.2. Rodzaje mutatorów

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

Figure 3.3. Mutation Testing - Condition boundary

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

Figure 3.4. Mutation Testing - Negative conditions mutator

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

Figure 3.5. Mutation Testing - Math mutator

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

Figure 3.6. Mutation Testing - Conditional boundary mutator

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

Figure 3.7. Mutation Testing - Pitest report

4. 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.1. Java

  • PITest