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

Fig. 3.1. Mutation Testing - Condition boundary

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

Fig. 3.2. Mutation Testing - Negative conditions mutator

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

Fig. 3.3. Mutation Testing - Math mutator

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

Fig. 3.4. Mutation Testing - Conditional boundary mutator

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

Fig. 3.5. 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