Recientemente, un consultor nos dijo que si una característica solo se puede probar a través de pruebas de IU automatizadas (por ejemplo, Selenium, UI codificada), entonces hay un problema arquitectónico subyacente. Si bien esta afirmación puede ser un poco extrema, es a lo largo de las mismas líneas de la pirámide de pruebas en que las pruebas de IU deben formar una pequeña porción de su conjunto de pruebas automatizadas en general.
Entonces, ¿qué tipo de características deberían tener las pruebas de IU automatizadas? ¿Un sistema con una arquitectura convincente todavía tendrá características que solo pueden verificarse a través de las pruebas de IU, o estas pruebas deberían servir simplemente como "respaldo" para un conjunto de pruebas unitarias y de servicio?
Respuestas:
Presumiblemente, tiene algún tipo de arquitectura que conecta botones y otros widgets a acciones: haga clic en guardar y se llamará a la función guardar, etc.
Suponiendo que tiene una buena cobertura de prueba de las acciones en sí mismas a través de pruebas unitarias o de integración, el objetivo de las pruebas automatizadas de la interfaz de usuario es asegurarse de que todos los widgets estén haciendo llamadas adecuadas a las acciones subyacentes y que muestren correctamente los resultados de esas acciones.
En otras palabras, validan que la interfaz de usuario refleja correctamente el estado del modelo y está correctamente conectada al controlador.
El otro componente es cuando alguna lógica de negocios está en el código de la interfaz de usuario. Por ejemplo, tal vez requiera ciertos caracteres en un campo de contraseña. Debe probar esas características de alguna manera, ya que puede ser difícil o imposible hacerlo mediante pruebas unitarias.
fuente
¿Qué características se deben probar a través de pruebas automatizadas de IU?
Todas las características de la interfaz de usuario.
Debes probar:
fuente
No existe una característica que solo pueda probarse mediante pruebas de IU automatizadas. Herramientas como Selenium simplemente imitan el comportamiento de un humano, sin aburrir al humano hasta el punto de suicidarse. Hágase una pregunta (o la de su asesor): " ¿Cómo probaría un programa los aspectos de la IU que una persona no puede hacer? " La siguiente pregunta es: " Si es así, ¿por qué le importaría lo que hacen? "
Por otro lado, si tienes esa característica, bueno, sí, diría que tienes un problema arquitectónico subyacente. :-)
fuente