Las pruebas a través de la interfaz de usuario o al acceder directamente a la capa empresarial se pueden considerar como dos tipos diferentes de pruebas, con diferentes ventajas y desventajas.
Si está probando la interfaz de usuario directamente, está probando lo que ve el usuario y no tiene que cambiar el código para poder probarlo. Sin embargo, se vuelve bastante difícil probar casos de esquina, o cómo el sistema reacciona a condiciones excepcionales (como excepciones). Es como dice Robert Martin, frágil. Si su interfaz cambia, debe cambiar sus pruebas. Por lo tanto, las pruebas a través de la IU dependen de la madurez de su IU. Más adelante en el proyecto, la interfaz de usuario es más estable, por lo que las pruebas a través de la interfaz de usuario tienen más sentido. Además, probar algunas cosas a través de la interfaz de usuario es difícil o intrincado.
Si está probando la capa de negocio, puede probar más fácilmente las condiciones de esquina y es menos susceptible a cambios en la interfaz de usuario. Sin embargo, como dices, el software debe estar escrito de tal manera que permita las pruebas de este tipo. Incluso puede que tenga que exponer una nueva interfaz para permitirlo, que luego debe mantenerse. En mi experiencia, a veces es bastante difícil lograr que los desarrolladores admitan este tipo de interfaz. Se considera que no es tan importante como la interfaz real. Pero siempre es posible. Este tipo de interfaz necesita la aceptación de los desarrolladores; de lo contrario, corre el riesgo de que no sea compatible con el tiempo.
Si no tiene la interfaz externa, intente solicitarla. Nunca se sabe, es posible que pueda persuadirlos de que es una buena idea. Es más fácil al comienzo de un proyecto.
Si tiene la interfaz externa, utilícela para probar su lógica comercial.
De lo contrario, tendrá que usar la interfaz de usuario para probar estas cosas. Un enfoque sería usar la IU para hacer pruebas de humo, para responder las siguientes preguntas: ¿Este software es comprobable? Piensa en las cosas comunes que tienes que probar cada vez que obtienes una compilación del desarrollador. ¿Puedo iniciar sesión, puedo cerrar sesión, aparece la página principal, puedo hacer un pedido simple? Elija 5 o 6 de estas cosas, y cree un conjunto de pruebas automatizadas para probar estas cosas. Utilice estas pruebas como una guía sobre la cantidad de funcionalidad que puede probar a través de la interfaz de usuario, y qué tan útil es.
Puede usar esto como argumento cuando vaya a los desarrolladores y solicite la interfaz externa.
usted menciona el desarrollo de una interfaz externa: supongo que esta interfaz necesita ser desplegado en el servidor de contenedor/app , expuesto a través de algún mecanismo remoto como un servicio web e invocado remotamente desde la prueba de aceptación? ¿O es realmente necesario si se trata de una aplicación basada en Spring en la que el contenedor no está realmente sollicionado? – Spiff
Sí, también deberá desplegarse y exponerse. Puede ser parte del mismo paquete, pero como dices necesitarás habilitarlo y deshabilitarlo. –