Cuando las pruebas escritas por IA pasan todas pero cuesta confiar en ellas, Stryker mide su solidez rompiendo el código a propósito(qiita.com)
Idioma del texto: coreanoVer en el idioma original
Resumen sencillo
- Aunque todas las pruebas pasen, no se sabe si realmente detectan errores. Las pruebas de mutación rompen el código a propósito en pequeños detalles y luego comprueban si las pruebas fallan. Si fallan, el error fue detectado; si pasan, se les escapó. Stryker es una herramienta que automatiza este proceso.
- El equipo del autor lo aplicó a un cliente Prisma (131 modelos) que filtra automáticamente los datos por empresa. La tabla de definiciones con las condiciones de cada modelo estaba en 100% desde el principio, y las pruebas del cliente escritas a mano pasaron a 100% tras reforzarlas en 89.74%.
- Entre los casos que se escaparon había una prueba en la que el intento de borrar una fila de otra empresa fallaba por una restricción de clave externa y no por el filtro por empresa. La llamada a bind que la IA añadió tras un comentario de revisión resultó ser código innecesario, porque al eliminarla el comportamiento no cambiaba.
- En el entorno del autor, 407 mutantes tardaron 3 minutos 30 segundos, y cuando la escala creció a 1,326 tardó 24 minutos. Hubo que indicar solo las pruebas con base de datos real para que no se ejecutaran pruebas no relacionadas, y el autor plantea ejecutarlo una vez antes del PR.
Opinión editorial
O: En un SaaS multiinquilino, se propone que el desarrollador backend a cargo del filtro por empresa ejecute Stryker antes de un PR, indicando con --mutate solo el archivo que nunca debe fallar.
X: En el entorno del autor, 407 mutantes tardaron 3 min 30 s, y al crecer a 1,326 tardó 24 min. Además se ejecutan pruebas que no tienen relación, así que hay que indicar solo las pruebas con base de datos real.
Idioma del texto: coreano
Encontrado en
Qiita ↗ / Publicado por la fuente
¿Te ha pasado algo parecido? Cuéntanos en una o dos líneas qué hiciste. No hace falta conocer el producto.