  Mutation analysis evaluates test suites and testing techniques by measuring
how well they detect seeded defects (mutants). Even though well established in
research, mutation analysis is rarely used in practice due to scalability
problems --- there are multiple mutations per code statement leading to a large
number of mutants, and hence executions of the test suite. In addition, the use
of mutation to improve test suites is futile for mutants that are equivalent,
which means that there exists no test case that distinguishes them from the
original program.
  This paper introduces two optimizations based on state infection conditions,
i.e., conditions that determine for a test execution whether the same execution
on a mutant would lead to a different state. First, redundant test execution
can be avoided by monitoring state infection conditions, leading to an overall
performance improvement. Second, state infection conditions can aid in
identifying equivalent mutants, thus guiding efforts to improve test suites.
