Repolode
mbj

mbj/mutant

Pruebas de mutación para Ruby: modifica el código e informa qué cambios no detecta la suite de pruebas.

Estrellas
2,212
Forks
163
Issues abiertos
127
Último commit
ayer

¿Qué es?

Mutant es una herramienta de pruebas de mutación para Ruby. Aplica sistemáticamente pequeños cambios al código, como intercambiar operadores, eliminar instrucciones o modificar valores de retorno, y luego ejecuta las pruebas con cada cambio. Las mutaciones que no hacen fallar ninguna prueba se marcan como vivas, lo que señala comportamientos que las pruebas no verifican realmente.

Cada mutación viva requiere tomar una decisión: simplificar el código porque las pruebas ya determinan el comportamiento correcto, o añadir la prueba que falta. Esto resulta útil cuando herramientas de IA generan el código o las pruebas, ya que el hecho de que las pruebas pasen no demuestra por sí solo que comprueben algo significativo.

Mutant se integra con RSpec, Minitest y Test::Unit, y funciona con aplicaciones Rails mediante el aislamiento de la base de datos por worker. Admite ejecuciones incrementales para CI, guarda los resultados de las sesiones para revisarlos más adelante y es gratuito para proyectos de código abierto; para uso comercial requiere una licencia de pago.

Funciones clave

  • 01Aplica mutaciones de operadores, instrucciones y valores de retorno al código Ruby, y ejecuta las pruebas con cada una.
  • 02Informa de las mutaciones vivas, que señalan comportamientos no cubiertos por las pruebas.
  • 03Se integra con RSpec, Minitest y Test::Unit.
  • 04Admite Rails con aislamiento de la base de datos entre workers en PostgreSQL y SQLite.
  • 05Ofrece un modo incremental para ejecutarse en CI y guarda el historial de sesiones para revisar resultados anteriores.

Casos de uso

  • Comprobar si las pruebas escritas por asistentes de IA verifican realmente el comportamiento del código.
  • Encontrar puntos débiles en una suite de pruebas de Ruby existente antes de refactorizar.
  • Ejecutar pruebas de mutación incrementales en CI solo para el código modificado.

Inicio rápido

  1. 1

    Instala la gema de integración de RSpec

    gem install mutant-rspec
  2. 2

    Ejecuta mutant sobre un sujeto de tu código

    mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'

Antes de usarlo

  • Solo es compatible con Linux y macOS.
  • Es gratis solo para proyectos de código abierto; el uso comercial requiere una suscripción de pago.
  • El README no indica una licencia de código abierto clara (los metadatos muestran NOASSERTION).

En colecciones

Temas

#mutation-testing#ruby#testing#rspec#minitest#code-quality#rails#code-quality-analyzer#code-review#coverage

Preguntas frecuentes

¿Qué es mutant?
Pruebas de mutación para Ruby: modifica el código e informa qué cambios no detecta la suite de pruebas. Mutant es una herramienta de pruebas de mutación para Ruby. Aplica sistemáticamente pequeños cambios al código, como intercambiar operadores, eliminar instrucciones o modificar valores de retorno, y luego ejecuta las pruebas con cada cambio. Las mutaciones que no hacen fallar ninguna prueba se marcan como vivas, lo que señala comportamientos que las pruebas no verifican realmente.
¿mutant es gratuito? ¿Qué licencia tiene?
mutant es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿mutant sigue mantenido?
Mantenimiento activo. El último commit de mutant fue el 6 nov 2026.
¿Para qué puedo usar mutant?
Comprobar si las pruebas escritas por asistentes de IA verifican realmente el comportamiento del código. Encontrar puntos débiles en una suite de pruebas de Ruby existente antes de refactorizar. Ejecutar pruebas de mutación incrementales en CI solo para el código modificado.
¿Cómo se instala mutant?
Instala la gema de integración de RSpec: gem install mutant-rspec Ejecuta mutant sobre un sujeto de tu código: mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'
¿Dónde consigo mutant?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mbj/mutant

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados