Los métodos de prueba tradicionales se centran en evaluar si nuestro código de producción hace lo que debería hacer. Sin embargo, podemos cometer errores en el código de prueba introduciendo pruebas incompletas o sin valor que crean una falsa sensación de confianza. Es aquí donde entran en juego las pruebas de mutación: comprueban la calidad de las pruebas en sí, encontrando casos extremos difíciles de detectar. Nuestros equipos usan Pitest desde hace tiempo, y recomendamos su uso en proyectos Java para medir la salud del conjunto de pruebas. En resumen, las pruebas de mutación introducen cambios en el código de producción y ejecutan las mismas pruebas una segunda vez; si los resultados aún son positivos significa que las pruebas no están bien y necesitan mejorar. Si usas un lenguaje de programación distinto a Java, Stryker es una buena elección en este espacio.
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.