¿Qué características se deben probar a través de pruebas automatizadas de IU?

12

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?

mragh
fuente
Además de todas las características de la interfaz de usuario, supongo.

Respuestas:

11

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.

Bryan Oakley
fuente
3

¿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:

  • Todas las funciones que los usuarios pueden hacer.
  • Funciones que los usuarios hacen en todos los navegadores (y versiones de) en los que los hacen.
  • Ambos caminos felices (haciendo lo correcto en cada paso) versus tristes (el usuario comete errores).
  • Datos válidos e inválidos.
  • Números grandes y pequeños.
  • Todos los roles y funciones roles específicos del rol.
  • Interfaces de usuario y administrador.
  • Intentos de allanamiento.
  • La creación frente a la actualización de datos funciona según lo previsto.
  • Eliminar el trabajo y eliminar los datos de la base de datos asociada en otras tablas.
  • Usuarios de teclado y mouse.
  • Diferentes dispositivos o simuladores de: PC, teléfonos, ipads, etc.
Michael Durrant
fuente
0

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. :-)

Ross Patterson
fuente
1
Creo que por "solo" se refieren a pruebas automatizadas de IU versus pruebas unitarias o de integración. No creo que sea posible crear algo que el selenio pueda probar que un humano no puede (módulo de la velocidad de los humanos versus la velocidad del selenio)
Bryan Oakley
Lo siento, puedo ver de dónde sacaste eso de la pregunta. Aunque me has retado a desarrollar una aplicación que solo Selenium pueda usar, solo para pegarla a nuestro equipo UX :)
mragh