Vaidas Pilkauskas
@liucijus

Mutation testing

Failing is the new passing

Source code manipulation

Pros

  • Large number of mutations
  • Close to the real code
  • Understandable

Cons

  • Hard to integrate
  • Slow
  • Uses disk

Byte code manipulation

Pros

  • Fast
  • Easy to integrate
  • No source code
  • Should be JVM lang agnostic

Cons

  • Difficult
  • Divorced from the code
  • Hard to describe

Mutations

Activated

  • Conditionals Boundary Mutator
  • Increments Mutator
  • Invert Negatives Mutator
  • Math Mutator
  • Negate Conditionals Mutator
  • Return Values Mutator
  • Void Method Calls Mutator

Deactivated

  • Constructor Calls Mutator
  • Inline Constant Mutator
  • Non Void Method Calls Mutator
  • Remove Conditionals Mutator
  • Experimental Member Variable Mutator
  • Experimental Switch Mutator