2008-10-29 9 views
30

En otro question pregunté si mutation-testing 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é?¿Qué marcos de pruebas de mutaciones existen?

  • Programa en Java, así que preferiría las herramientas de Java, pero me arriesgaría a mirar 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.

Respuesta

10

sólo sé de dos marcos, pero son tanto para Java :)

No he utilizado ninguno de los dos, yo tengo miedo.

+0

El enlace para Jester tiene un '' p 'adicional. –

+0

@Andrew: arreglado, gracias. –

2

Puede intentar µJava. No lo he usado, pero parece que las pruebas de mutación podrían ser una forma interesante de evaluar suites de prueba.

5

Para Ruby hay Heckle, y un recién llegado llamado Boo_hiss.

+0

Echa un vistazo al cazador. Es la nueva genialidad para Ruby.

+0

Y zombie-chaser. Pruebas de mutaciones ... ¡con zombies!

3

Para la comunidad .Net, existe NesTer, pero tiene algunas limitaciones serias. P.ej. solo es compatible con C# y NUnit.

No parece que se mantenga activamente tampoco, pero podría ser un punto de partida.

+0

Solo funciona para soluciones desarrolladas en visual studio 2005 –

3

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?

El revoltijo 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 buscando en Javalanche pero no lo intenté todavía.

Tendré noticias en unas pocas semanas.

0

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 encontré 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 empresa, 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.

17

También hay PIT que pueden engancharse en su construcción a través de un plugin maven o una interfaz de línea de comando.

Proporciona informes mucho mejores 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 burlas (Mockito, JMock, EasyMock, PowerMock y JMockit).

(revelación Soy el autor).

+0

¿Hay alguna forma de guardar los mutantes generados por PIT en mi carpeta deseada? para que pueda ser utilizado por otros programas? – Milson

+0

@Milson no tiene nada incorporado, pero si revisa el historial del grupo de Google, encontrará publicaciones que describen cómo enganchar en el marco y escribirlas en el disco – henry

2

MμClipse sólo admite 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 I had wrote a entire article about this !

16

Sé que es un hilo viejo, pero aún así es 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 on CodePlex y on Nuget. El sitio web principal del proyecto es here.

+3

I 'Vre probé las NinjaTurtles, pero está mal documentado y no puedo entender qué sucede o qué estoy haciendo exactamente mal ... Así que probé CREAM y funciona muy bien. – DaMachk

+0

Aún se está desarrollando, estoy dispuesto a ayudar. –

3

Puede ser de algún interés. Microsoft Research: https://pex4fun.com/

+1

@urig gracias por destacar, URL actualizada. – nashwan

+0

Gracias por la nueva URL @nashwan. Eliminé mi comentario para no engañar a futuros lectores. – urig

Cuestiones relacionadas