2011-09-21 58 views
7

¿Cómo se realizan las pruebas de regresión en Java? ¿Existen marcos de prueba de regresión automática o simplemente escribe (JUnit) pruebas unitarias que ayudan a garantizar contra las regresiones?Prueba de regresión basada en Java

¿Existe alguna manera o conjunto de mejores prácticas para las pruebas de unidades de codificación, de modo que también sirvan para el doble propósito de ser pruebas de regresión, o necesita mantener las pruebas de regresión separadas de las pruebas unitarias?

+0

Puede ser el mejor en programmers.stackexchange.com – Qwerky

Respuesta

1

JUnit generalmente está destinado a pruebas unitarias en lugar de pruebas funcionales a escala completa (de las cuales la prueba de regresión es un ejemplo si se mira al sistema como un todo).

Sin embargo, no es raro usar un traje de prueba por separado para realizar pruebas funcionales y de integración "pesadas" que se conectan a los motores reales, etc., y verifican los resultados según las expectativas.

Una razón para usar JUnit aquí es la capacidad de pasar de 'pruebas falsas' a pruebas funcionales reales usando la inyección de dependencia. Podría proporcionar, por ejemplo, un colaborador simulado en la prueba más ligera y una instancia de colaborador real en la prueba funcional completa.

+1

¿Cuáles son algunos marcos de prueba de regresión/funcionales típicos para Java si JUnit no es el más adecuado para este tipo de prueba? – IAmYourFaja

+0

@Mara - www.spockframework.org –

4

Las pruebas de regresión no tienen nada que ver con un idioma. Es una técnica que se utiliza para garantizar que los cambios de código futuros no rompan las funciones existentes. En Java puedes usar junit o testng o cualquier otra cosa. Normalmente, una prueba de regresión es una prueba funcional y no es una prueba de unidad pura.

+0

Thinks Woo4Moo. Por "prueba de función", ¿quiere decir "secuencial", lo que significa que en lugar de probar un componente/unidad, ejecuta (de forma similar a un guión) una serie de acciones para asegurarse de que se conserve algún invariante? – IAmYourFaja

+0

@Mara, así es como funcionan todas las pruebas automatizadas. Las pruebas de regresión son solo "pruebas de código nuevo contra las pruebas antiguas", el * tipo * de prueba que es (unidad, funcional, integración, etc.) no hace ninguna diferencia. –

+1

Dave - interesante. Por lo tanto, siempre y cuando haya mantenido un marco de prueba unitario exhaustivo, ¿no se ocupa también de las pruebas de regresión, ya que nunca descarta una antigua prueba unitaria? Esto me confunde un poco, porque todo el tiempo escuchas acerca de las pruebas de regresión, pero según tu explicación, parece que todo lo que tienes que hacer es asegurarte de que las pruebas de tu unidad estén listas. ¿Estoy en camino o me he descarrilado? – IAmYourFaja

0

Una prueba de regresión es cualquier prueba que detecta regresiones.

Si quieres pruebas de aceptación, he oído cosas buenas sobre FitNesse.

Cuestiones relacionadas