Creo que entiendo las pruebas unitarias. Pero me preguntaba: ¿hay alguna manera de automatizar algo visual, como asegurarse de que el anti-aliasing funcione o que las esquinas redondeadas de un sitio web tengan el aspecto que se supone que deben tener? Tengo la sensación de que simplemente no es práctico, pero tengo poca experiencia en el mundo de la garantía de calidad.¿Cómo se prueban los componentes visuales?
Respuesta
"anti-aliasing funciona o que las esquinas redondeadas en un sitio web se ven como se supone que deben?"
En teoría, podría escribir herramientas automáticas para tomar instantáneas de las representaciones y de alguna manera analizarlas y compararlas con la maqueta.
Necesitará algún tipo de mecanismo de "anclaje" para alinear la respuesta del modelo con la salida representada y luego hacer una diferencia en color, donde la salida resultante es una imagen negra completa == cumplimiento perfecto.
Sin embargo, hacer esto es, sin duda, de manera exhaustiva complicada, y la costumbre compensar perceptuales fallos, tales como la forma en que se ve a una persona colourblind en una pantalla con un mapa de colores mal calibrado.
Lo que necesita hacer en su lugar es crear un árbol completo de todas las rutas de navegación posibles en la aplicación (un poco más fácil de ejecutar programáticamente/suite de pruebas), y luego entregar una especificación a un conjunto de humanos para que ejecutar en una variedad de plataformas.
que se encargará de esta semana, pero se repetir las pruebas manuales Evey tiempo se realiza un cambio de código? O cada vez que hace un lanzamiento? Las pruebas manuales simplemente no escalarán. Son baratos en el corto, pero irremediablemente costoso en a largo plazo. - Tim Ottinger
FWIW, incluso Firefox todavía tiene un conjunto de pruebas dirigidas por humanos. Los humanos simplemente son mejores para reconocer comportamientos que, si bien cumplen con el estándar definido, no cumplen con algún otro estándar que aún no se haya definido de manera arbitraria, y por lo tanto, aún no se ha escrito un caso de prueba para él.
Haz la prueba de usabilidad en el pasillo. ;)
También podría considerar la automatización a nivel de interfaz gráfica de usuario, el uso de una herramienta como TestComplete. Existen muchas herramientas de este tipo a un rango de precios con una gran variedad de funcionalidades. Consulte SQAF automation forum para tener buenas discusiones sobre este tema.
Este es un problema difícil con las pruebas unitarias, y no hay una buena respuesta. Inspeccionar técnicamente el resultado que se muestra en la pantalla ya no es una prueba unitaria (es una prueba más funcional).
El mejor enfoque que he encontrado es estructurar su código para hacer que la capa de vista como delgada sea posible en última instancia. Patrones como MVC y Presentation Model son útiles para esto. Una vez hecho esto, puede probar la lógica comercial de la vista (como en las interacciones específicas entre los componentes de la vista) programáticamente sin tener que mostrar nada en realidad.
- 1. Moq ¿cómo se prueban los métodos internos?
- 2. Reemplazar componentes no visuales con el código
- 3. ¿Cómo se prueban los shaders de OpenGL escritos en GLSL?
- 4. ¿Cómo se prueban los métodos privados con NUnit?
- 5. ¿Cómo se prueban sus objetos comerciales?
- 6. Emacs: ¿Alternar entre los marcadores visuales?
- 7. ¿Cómo obtener los parámetros de los componentes?
- 8. ¿Cómo se eliminan los componentes con Castle 3.0?
- 9. GridBagLayout: cómo evitar que se colapsen los componentes invisibles
- 10. ¿Cómo se imprimen los componentes Flex en FireFox3?
- 11. Mejoras visuales de emacs
- 12. Al realizar pruebas unitarias para el objetivo C, ¿cómo se prueban los bloques?
- 13. prueban que pueden inyección SQL
- 14. Error de tiempo de ejecución cuando se prueban JUnit
- 15. Cómo alinear los componentes JSF al centro
- 16. ¿Cómo maneja su organización los componentes comunes?
- 17. ¿Cómo reutilizo los componentes en ExtJS?
- 18. ¿Cómo colocar los componentes en posiciones específicas?
- 19. ¿Cómo usar los componentes symfony desacoplados?
- 20. TabRenderer sin estilos visuales habilitados?
- 21. ¿Para qué se utilizan los componentes fuertemente conectados?
- 22. Extendiendo los componentes de Richfaces
- 23. ¿Cómo se divide NSString en componentes?
- 24. ¿Se pueden registrar temporalmente los componentes en un contenedor Autofac?
- 25. UITextField Comentarios visuales de validación
- 26. Patrones visuales en la memoria?
- 27. RavenDb: Fuerza los índices a esperar hasta que no estén obsoletos mientras se prueban las unidades
- 28. No se pueden modificar los componentes XNA Vector
- 29. ¿Cómo se crean, representan, repintan, notifican los eventos de los componentes Swing, ...?
- 30. ¿Cómo habilitar estilos visuales en WPF para diálogos comunes?