Mutations

A mutation is a tiny change in your code. Gooze applies one mutation and runs tests to see if tests notice.

Statuses

Each mutation ends in a status. Simple meaning:

  • Killed: tests failed for the mutation (usually good)
  • Survived: tests still passed (usually means weak/missing assertion)
  • Skipped: Gooze did not run it (example: no matching test)
  • Error: Gooze had an unexpected error

About timeouts: different Gooze versions can show timeouts differently. If you see many suspicious kills, check logs and try --verbose.

Mutation types (common)

Gooze usually enables a subset of mutation types by default. Common ones you may see:

  • arithmetic
  • boolean
  • numbers
  • comparison
  • logical
  • unary

What to do when you see a survivor

A survivor is a hint. It usually means: your tests do not check this behavior.

  1. Open the diff in gooze view.
  2. Ask: what behavior changed?
  3. Add a test that would fail if this behavior changes.
  4. Run Gooze again and see if it is killed now.
gooze view