If you use #InfectionPHP,

Your initial goal should be to achieve at least 90% code coverage and at least 90% MSI (Mutation Score Indicator).

If your codebase correctly handles all escaped mutants, it’s already strongly typed and behaviorally verified with #PHPUnit tests, without requiring additional static analysis tools.

SA tools will only be useful to identify missing or incomplete docblocks (e.g. array shapes) to improve IDE support and autocomplete accuracy.

https://github.com/sponsors/infection

#PHP

Sponsor @infection on GitHub Sponsors

Mutation Testing for PHP. Helps writing better code and tests.

GitHub
@ghostwriter but SA has a much faster feedback loop, and doesn't explode in execution time as mutation testing does... Also, you can use a package like this one to use SA to kill mutants: https://github.com/Roave/infection-static-analysis-plugin
GitHub - Roave/infection-static-analysis-plugin: :white_check_mark: Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis

:white_check_mark: :dragon_face: Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis - GitHub - Roave/infection-static-analysis-plu...

GitHub