tutorial - Generación automática de pruebas unitarias para Java
testing en java (6)
¿Qué le parece usar Randoop Randoop . Esto funciona tanto para Java como para .NET
¿Alguna herramienta para generar automáticamente pruebas unitarias para código Java ?
ACTUALIZACIÓN: el uso principal previsto es generar rápidamente pruebas unitarias para el código heredado que se va a refactorizar. No es necesario mantener automáticamente las pruebas sincronizadas con el código después de la generación automática.
Casi la misma pregunta se hizo aquí, pero la respuesta fue para .NET en lugar de Java ( Pex fue la respuesta aceptada):
Generación automática de casos de prueba unitarios para .NET y Java
Creo que Agitar tenía una herramienta como esta llamada AgitarOne . Creo que todavía puede obtenerlo, pero asegúrese de que la compañía todavía esté allí.
Herramientas comerciales:
- AgitarOne parece ser el jugador más grande en el campo. También existe una versión de prueba de 30 días y una interfaz web gratuita llamada JUnit Factory . Aquí hay una revisión independiente del uso de la herramienta, por ejemplo. La generación de pruebas de AgitarOne se centra principalmente en las pruebas de regresión.
- Jtest es otro gran jugador, que ha existido desde 1998. Existe una prueba gratuita. Tanto AgitarOne como Jtest se han awarded varias veces , y ambos son IDE: s basados en Eclipse.
- SilverMark Test Mentor, Java Edition es un producto comercial que aparentemente también puede crear pruebas basadas en el código Java. Este producto no tengo experiencia.
Herramientas gratuitas:
- CodePlex AnalytiX solía ser una herramienta comercial (fue el primer complemento comercial para Eclipse en 2001), pero desde que Google compró la empresa que la desarrolla, el producto se ha lanzado como gratuito. Es un IDE completo basado en Eclipse y un finalista de Jolt Award en la generación de pruebas en 2007. Las características son agradables, pero la herramienta no se ha actualizado en mucho tiempo, por lo que desafortunadamente no funciona con las versiones actuales de eclipse, y parece tener problemas con el código que requiere java> = 1.5.
- EvoSuite es un ganador de la competencia de generación de pruebas unitarias SBST (Prueba de software basada en la búsqueda) ''13 y de la competencia de generación de pruebas unitarias SBST ''17 . Existe un plugin de Eclipse, una interfaz web y una versión de línea de comando de la herramienta. Hay un criterio de regresión documentado, pero aparentemente aún no funciona: las pruebas generaron el objetivo para cobertura de sucursales, cobertura de mutación débil o cobertura de mutación fuerte.
- Randoop usa un enfoque de generación de prueba aleatoria dirigida a la retroalimentación. La herramienta ha estado presente desde 2007 y ha estado en continuo desarrollo. Randoop puede producir tanto pruebas de regresión como pruebas de búsqueda de errores. Es una herramienta de línea de comandos robusta y confiable, y también existe el complemento Eclipse.
- Palus afirma usar análisis dinámico y estático, y está construyendo encima de Randoop. Sus autores afirman que se ha utilizado internamente en Google. Mi experiencia con este software es que al menos la versión actual (0.2) parece tener algunos problemas internos y no parece ampliarse bien.
- Daikon , Eclat , Javalanche , Java PathFinder , JCrasher , jWalk , Korat , RecGen y ReCrash son herramientas gratuitas que también están disponibles.
Tenga en cuenta que las pruebas generadas por Jtest y AgitarOne dependen de corredores con licencia y no se pueden ejecutar si no tiene integrados sus complementos. Este no es el caso de las herramientas gratuitas que he probado, que generan pruebas independientes.
Descargo de responsabilidad: no estoy afiliado a ninguna de estas herramientas pero he realizado investigaciones académicas sobre el tema.
NetBeans lo hace automáticamente desde los archivos fuente de Java (supongo que los otros IDEs también).
Tal vez podrías echarle un vistazo al plugin junit (el enlace está actualmente abajo :-()?
Netbeans 8 tiene una capacidad incorporada para construir pruebas unitarias que son más que stubs. Para usar esta característica:
- Abra la clase que quiere probar.
- Seleccione
Create/Update Tests
en el menúTools
. - Seleccione las funciones que desee.
- Abra la prueba de la unidad creada y termine las partes restantes de la prueba.
- CodePro Analytix tiene un módulo de generación de pruebas JUnit que parece que hará lo que usted desee. Ver la guía del usuario .
- [CoView] era un producto a un precio razonable, a solo $ 9.99 por usuario por año, desafortunadamente ya no existe.
- AgitarOne Automated JUnit Generation vale la pena investigar.
Los tres productos tienen una opción de probar antes de comprar, por lo que podría usarlos para comparar el código generado con un pequeño subconjunto de su aplicación.