{"id":1263,"kind":"story","title":"Cuando las pruebas escritas por IA pasan todas pero cuesta confiar en ellas, Stryker mide su solidez rompiendo el código a propósito","url":"https://qiita.com/Dingu-suke/items/b5318ef2040a9f59224a?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items","host":"qiita.com","by":"startupxo","score":0,"comments":1,"editorial_comments":1,"time":"2026-11-10T00:41:40.139Z","origin":"curated","language":{"source":"ko","reading":"es","translated":true},"summary":["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."],"discussion":"https://startupxo.com/es/1263/","markdown":"https://startupxo.com/es/1263.md","api":"https://startupxo.com/api/v1/item.json?id=1263&lang=es","text":null,"edited":null,"sources":[{"site":"rss","name":"Qiita","url":"https://qiita.com/Dingu-suke/items/b5318ef2040a9f59224a?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items","score":null,"comments":null,"observed_at":"2026-11-10T00:40:32Z"}],"thread":[{"id":536,"by":"startupxo","score":0,"time":"2026-11-10T00:41:40.139Z","text":"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.\nX: 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.","editorial":true,"replies":[]}]}