unit testing - unit - ¿Qué marcos de pruebas de mutaciones existen?
unit test c# visual studio 2017 (11)
En otra pregunta , pregunté si la prueba de mutación es útil en la práctica. Como no obtuve ninguna respuesta que me satisfaga, quiero consultar las herramientas actuales. Por lo tanto, necesito una descripción general sobre los actuales marcos de pruebas de mutaciones existentes. ¿Cuáles de ellos son los más útiles y por qué?
- Programo en Java, así que preferiría las herramientas de Java, pero correría el riesgo de ver marcos interesantes para diferentes idiomas.
- Quiero integrarme en un proceso de compilación automático, por lo que preferiría las herramientas que se pueden ejecutar a través de la línea de comandos.
Jester proporciona un archivo para las mutaciones y son limitadas. Hasta cierto punto, puede agregar sus propias mutaciones al archivo.
Experimenté con Jumble y Jester y descubrí que Jumble proporciona más mutaciones y mejor documentación. Además, recibí respuestas rápidas de los propietarios del proyecto cuando les envié un correo electrónico. Una desventaja de Jumble es que opera en el bytecode usando BCEL. Eso presenta una especie de curva de aprendizaje para muchos desarrolladores.
Mi compañía, State Farm, escribió una tarea Ant que podemos contribuir al proyecto Jumble. En base a lo que he leído en sus listas de correo, otros están trabajando en una tarea Ant para Jumble también.
Estoy viendo Javalanche también. Estaré encantado de compartir lo que sé cuando haya terminado.
Puedes probar μJava . No lo he usado, pero parece que las pruebas de mutación podrían ser una forma interesante de evaluar suites de prueba.
Para la comunidad .Net, existe NesTer , pero tiene algunas limitaciones serias. Por ejemplo, solo es compatible con C # y NUnit.
Tampoco parece mantenerse activamente, pero podría ser un punto de partida.
Eché un vistazo a Jester (el código fuente real) y me parece que no admite demasiadas mutaciones. Hay un archivo allí donde se especifican estas mutaciones. Podría estar equivocado sobre lo anterior, pero lo que definitivamente no me gustó fue la mezcla entre el lanzamiento de la herramienta desde la línea de comandos y la pequeña interfaz de retroalimentación GUI. ¿Por qué no dar feedback en la línea de comando como lo hace JUnit cuando se ejecuta fuera de un IDE?
Jumble es otra cosa :). Tiene una interfaz de línea de comando simple y viene con un plugin de Eclipse también. La respuesta es todo el texto en la consola. Estoy contento con esta herramienta y planeo escribir algún objetivo ANT para agregarlo a la integración continua de mi proyecto.
También estoy mirando Javalanche pero aún no lo intenté.
Tendré noticias en unas semanas.
CREAM es una herramienta para C # /. Net http://galera.ii.pw.edu.pl/~adr/CREAM/index.php
También hay PIT que puede engancharse en su compilación a través de un plugin maven o una interfaz de línea de comando.
Proporciona informes mucho más agradables que las otras herramientas disponibles con mutación combinada y cobertura de línea. También funciona considerablemente más rápido que las herramientas basadas en fuente para Java como Jester, y aproximadamente el doble de rápido que Jumble.
A diferencia de Jumble y Javalanche, también funciona con todos los principales frameworks de burla (Mockito, JMock, EasyMock, PowerMock y JMockit).
(revelación Soy el autor).
MμClipse solo es compatible con JUnit 3 y ya no se mantiene. Bufón en cuanto a eso, es laborioso y requiere una configuración complicada; más no se mantiene más. La mejor herramienta que pude encontrar es Javalanche ¡Había escrito un artículo completo sobre esto!
Sé que es un hilo antiguo, pero sigue siendo una respuesta a la pregunta. Estoy trabajando con algunos amigos en un marco de prueba de mutación de .NET de código abierto llamado NinjaTurtles, que puedes encontrar en CodePlex y en Nuget . El sitio web principal del proyecto está aquí .
Podría ser de algún interés. Microsoft Research: http://www.pexforfun.com/