Estamos integrando un proceso de prueba en nuestro proceso SCRUM. Mi nuevo rol es escribir pruebas de aceptación de nuestras aplicaciones web para automatizarlas más adelante. He leído mucho acerca de cómo deben escribirse los casos de prueba, pero ninguno me dio consejos prácticos para escribir casos de prueba para aplicaciones web complejas, y en su lugar arrojaron principios contradictorios que encontré difíciles de aplicar:
Los casos de prueba deben ser cortos: tome el ejemplo de un CMS. Los casos de prueba cortos son fáciles de mantener e identificar las entradas y salidas. Pero, ¿qué pasa si quiero probar una larga serie de operaciones (por ejemplo, agregar un documento, enviar una notificación a otro usuario, el otro usuario responde, el documento cambia de estado, el usuario recibe un aviso). Más bien me parece que los casos de prueba deberían representar escenarios completos. Pero puedo ver cómo esto producirá documentos de prueba abiertamente complejos.
Las pruebas deben identificar entradas y salidas: ¿Qué sucede si tengo una forma larga con muchos campos interactivos, con diferentes comportamientos? ¿Escribo una prueba para todo o una para cada una?
Los casos de prueba deben ser independientes: ¿pero cómo puedo aplicar eso si probar la operación de carga requiere que la operación de conexión sea exitosa? ¿Y cómo se aplica a escribir casos de prueba? ¿Debo escribir una prueba para cada operación, pero cada prueba declara sus dependencias, o debería reescribir todo el escenario para cada prueba?
Los casos de prueba deben estar ligeramente documentados: estos principios son específicos de los proyectos ágiles. Entonces, ¿tiene algún consejo sobre cómo implementar este principio?
Aunque pensé que escribir casos de prueba de aceptación iba a ser simple, me sentí abrumado por cada decisión que tenía que tomar (FYI: soy un desarrollador y no un probador profesional). Entonces mi pregunta principal es: ¿Qué pasos o consejos tiene para escribir casos de prueba de aceptación mantenibles para aplicaciones complejas? Gracias.
Editar : Para aclarar mi pregunta: soy consciente de que las pruebas de aceptación deben comenzar desde el requisito y considerar toda la solicitud como un recuadro negro. Mi pregunta se refiere a los pasos prácticos para escribir el documento de prueba, identificar los casos de prueba, lidiar con las dependencias entre pruebas ... para aplicaciones web complejas
La información conflictiva puede ser frustrante y difícil de generalizar y aplicar a su situación específica. Ergo, puede que tengas que hacer lo que funciona mejor en tu contexto.
No soy un gran admirador de los documentos de prueba largos, y he usado imágenes de manera bastante efectiva para algunos proyectos más pequeños. ¿Trata eso? ¿Como un diagrama de flujo (o cualquier otro diagrama UML como un diagrama de estado, etc.) en lugar de usar solo texto? Indique entradas, salidas, condiciones, bucles, carriles, estados, interacciones con otros componentes, etc., y luego indique si son exitosos, fallidos, transferidos, otros (?) Según sus criterios.
Puede ser un poco de trabajo al principio, pero puede ayudarlo a mantenerse sano a largo plazo. Cualquiera sea el método que elija, cuanto más trabaje con él, mejor lo conseguirá.
HTH, y buena suerte!
KM
fuente
Creo que ya has establecido algunos buenos criterios. Su segundo punto es una buena manera de definir los ámbitos para sus pruebas, y sugiero también probar las condiciones de error y las correcciones (defiendo que cada corrección de errores venga con al menos una nueva prueba unitaria). Puede parecer abrumador ahora, pero simplemente sumérjase y, después de adquirir un poco de experiencia, será más fácil reconocer lo que hace que las pruebas sean buenas.
fuente