Existe una buena herramienta para generar casos de pruebas unitarias dado, por ejemplo, un proyecto .NET o Java, genera casos de pruebas unitarias que cubrirían casi un 100% de cobertura de código. El número de casos de prueba podría ser directamente proporcional a la complejidad ciclomática del código (cuanto mayor sea la anidación de bucles y condiciones, mayor será la complejidad ciclomática), donde cuanto mayor sea la complejidad ciclomática, mayor será el conjunto de casos de prueba generados. No espero que sea completamente funcional (digamos que voy a construir las pruebas unitarias y ejecutarlo después de que se haya generado), pero diría que puede tener un estilo de plantilla en el caso de prueba donde se debe modificar el caso que se adapta a sus necesidades previstas. Pero también debe tener un método de instalación y desmontaje apropiado y es lo suficientemente bueno para detectar si se deben usar objetos simulados para pruebas unitarias en caso de que existan dependencias. Entonces, ¿existe tal herramienta?Generación automática de casos de prueba unitarios para .NET y Java
Respuesta
Para .NET, Microsoft tiene Pex, que con suerte se incorporará a .NET 4.0, junto con Code Contracts. Recomiendo ver el video del canal 9.
Me parece que este tipo de cosas son muy buenas para las clases muy controladas por datos - analizadores, etc. No puedo ver que con mucha frecuencia empiezo , pero es una herramienta útil para tener en su arsenal sin embargo.
Para C# (o .NET en general), PEX podría ser esa herramienta. Funciona en el nivel IL e intenta forzar su camino en cada rama. Ha descubierto con éxito una amplia gama de errores (en el BCL, etc.).
Aunque parece contrario a la intuición, también podría estar interesado en los marcos de generación de pruebas aleatorias. La investigación ha demostrado que puede ser igual de eficaz en la búsqueda de errores que los enfoques sistemáticos basados en la cobertura, como usted sugiere.
Consulte Randoop ambos para .NET y Java. Funciona al generar una secuencia más o menos aleatoria de llamadas a métodos, y comprueba contratos, bloqueos, etc. Es completamente automático.
También le recomendamos que consulte otras herramientas de prueba aleatorias basadas en QuickCheck, p. para Java, Scala, F #. que son más similares a Pex, es decir, usted proporciona una especificación, o una prueba de unidad parametrizada, y la herramienta verifica una cantidad de argumentos de entrada generados.
He encontrado que esta forma "parametrizada" de escribir pruebas unitarias es en realidad mucho más natural en al menos el 60% de los casos, y encuentra muchos errores más.
La página web del proyecto Randoop se ha movido a http://mernst.github.io/randoop/. – mernst
Para Java, intente JUnit-Tools. Tiene su propio plugin de eclipse junto con una buena documentación.
- 1. Herramientas de generación de casos de prueba
- 2. ¿Generación automática de pruebas unitarias para Java?
- 3. Generación automática de pruebas de unidades .NET
- 4. Generación de prueba de unidad automática incorporada C
- 5. Generación de casos de prueba de gramática BNF
- 6. Generación automática de clases simuladas para gmock
- 7. Generación automática/plantilla de vectores de prueba en C++
- 8. Pruebas unitarias de generación automática para el código Java heredado
- 9. Casos de prueba para entradas de cadena
- 10. Gettext generación automática de comentarios
- 11. Prueba automática de Classic ASP
- 12. Generación automática de conjuntos de datos DBUnit
- 13. ¿Proyectos de prueba unitarios o múltiples unidades por solución?
- 14. Generación automática de GUI en C#
- 15. Prueba automática de Qt
- 16. Generación automática de un Explorador de API para servicios WCF
- 17. Generación automática de código para Strings.xml de Eclipse
- 18. Generación de código Java
- 19. Generación automática de interfaz en eclipse
- 20. de Python creación unittest y dinámica de casos de prueba
- 21. Marco de prueba de Google - Dependencia entre casos de prueba
- 22. Generación automática de fuentes y archivos jar en Netbeans
- 23. Prueba de generación de gráficos con JUnit
- 24. Catálogos de prueba: errores comunes o casos de prueba
- 25. .NET runtime vs. Java Hotspot: ¿Está .NET una generación atrás?
- 26. Casos de uso para utilidades concurrentes Java
- 27. ¿Qué marcos de prueba unitarios están disponibles para el ensamblador x86?
- 28. ¿Cómo administrar casos de prueba usando Confluence?
- 29. Casos de prueba, "cuándo", "qué" y "por qué"?
- 30. ¿Cómo decidir casos de prueba para pruebas unitarias?
¡Maldición, 12 segundos en ella! –
¿Qué puedo decir, Marc? O lo tienes o no lo has hecho ...;) –
Al "comenzar" con él: las pruebas de Pex son más como especificaciones ejecutables. Pensar en el input de ejemplo es realmente un trabajo aburrido que se maneja mejor con el software ... conoce todos los casos de esquina que el devloper está tratando de ignorar;) –