As abordagens de testes tradicionais se concentram em avaliar se nosso código de produção está fazendo o que deveria. No entanto, podemos cometer erros no código de teste, introduzindo afirmações incompletas ou inúteis que criam uma falsa sensação de confiança. É aqui que entra o teste de mutação: ele avalia a qualidade dos próprios testes, encontrando pontos cegos que são difíceis de perceber. Nossos times têm usado Pitest há algum tempo, e recomendamos seu uso em projetos Java para medir a integridade do conjunto de testes. Resumindo, o teste de mutação introduz mudanças no código de produção e executa os mesmos testes uma segunda vez; se os testes ainda estiverem verdes, significa que os testes não estão bons e precisam ser melhorados. Se você estiver usando linguagens de programação diferentes de Java, Stryker é uma boa escolha neste espaço.
Pitest is a test coverage analysis tool for Java that uses a mutation-testing technique. Traditional test coverage analysis tends to measure the number of lines that are executed by your tests. It is therefore only able to identify code that is definitely not tested. Mutation testing, on the other hand, tries to test the quality of those lines that are executed by your test code and yet might contain general errors. Several problems can be spotted this way, helping the team to measure and grow a healthy test suite. Most of such tools tend to be slow and difficult to use, but Pitest has proven to have better performance, is easy to set up, and is actively supported.