user interface - una - Pruebas de interfaz de usuario
que contiene una interfaz de usuario (11)
Estamos trabajando en un gran proyecto con una medida de funcionalidad GUI nueva / modificada. Hemos encontrado en el pasado que a menudo presentamos nuevos problemas en el código relacionado al agregar nuevas funcionalidades.
Tenemos usuarios no técnicos que realizan pruebas, pero a menudo se pierden partes y permiten que los errores se filtren.
Mi pregunta: ¿existen algunas mejores prácticas para organizar las pruebas de UI de un proyecto de WinForms? ¿Hay alguna manera de automatizarlo?
¡Gracias!
El siguiente libro es una introducción al tema. Hay tantas formas como desarrolladores hay por ahí ..
http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby
Encontré esta manera rápida y sucia de probar diseños de páginas web en varios navegadores. Se llama browsershots.org . Nuestro cliente requiere soporte en 5 navegadores en este momento y eso lleva alrededor de una semana para la prueba de regresión completa. Este servicio entregará capturas de pantalla de más de 70 navegadores y versiones. Los imprimo y sostengo las páginas a la luz. Si no se alinean, debe haber un problema de diseño.
Hay herramientas de prueba GUI que harán clic en los botones y cosas para usted, pero son bastante frágiles en mi experiencia.
Lo mejor que puede hacer es mantener su capa de interfaz de usuario lo más delgada posible. Sus clases de controlador de eventos deberían ser, de manera óptima, solo una o dos líneas que llamen a otras clases más susceptibles de prueba. De esta forma, puede probar su lógica empresarial en pruebas unitarias sin tener que hacer clic en un botón.
Mantenga la capa de la GUI lo más delgada posible. El artículo de Michael Feathers, The Humble Dialog Box , es un clásico. También echa un vistazo a la vista pasiva de Martin Fowler. También escuché que los "clickers automáticos" son frágiles y que es más fácil dedicar más tiempo a la prueba que gastar manteniendo el código.
Puede automatizar la prueba de GUI utilizando White framework.
También considere usar un diseño amigable para TDD, es decir, use el patrón MVP / MVC .
Le recomendaría encarecidamente leer la documentación de los equipos de patrones y prácticas de Microsoft.
Especialmente eche un vistazo al bloque de aplicación de interfaz de usuario compuesta y CompositeWPF .
Estos proyectos están específicamente diseñados para brindarle las mejores prácticas en el desarrollo de aplicaciones de GUI, incluida la interfaz de usuario impulsada por pruebas.
Realmente no puedo ayudar con la organización o las mejores prácticas, pero una extensión NUnit parece estar disponible para pruebas de formularios, NUnitForms .
Hay muchas herramientas y bibliotecas disponibles que pueden automatizar las pruebas de WinForms, desde soluciones de código abierto como White hasta soluciones comerciales costosas como HP QuickTest Pro. También existe el espacio de nombres UIAutomation en .NET si desea implementar su propio marco de automatización. Pero el costo real de la automatización está en el tiempo y las habilidades especializadas que requiere implementar. La capacidad de mantenimiento también es uno de los aspectos más importantes del diseño de prueba automatizado; no desea gastar recursos excesivos manteniendo actualizados los activos de automatización con su aplicación. También hay muchos factores que influyen en la decisión de automatizar, que serán específicos de su aplicación y organización específicas.
Su mejor opción será investigar un poco más sobre el tema y consultar algunos de los sitios de pruebas especializadas, como http://www.sqaforums.com .
Utilicé una descarga de prueba similar a este producto ( http://www.tethyssolutions.com/product.htm ) y este producto ( http://www.mjtnet.com/macro_scheduler.htm ) hace años y me sentí feliz con el resultados. Estas son soluciones bastante baratas y algunos de estos productos de grabador de macros se pueden usar para pruebas automatizadas.
Un nuevo método disponible ahora es usar Ruby, a través de la gema Ruby llamada win32-autogui . Esto proporciona un marco para probar las aplicaciones GUI de Windows. Combínelo con las herramientas de Ruby RSpec y Cucumber, y constituye un marco de prueba bastante poderoso.
Cómo organizar las pruebas de UI depende de cómo diseñe los casos de prueba.
La automatización de la aplicación Windows Forms en el nivel de prueba de la unidad puede usar el marco TDD, como NUnit; o use el marco BDD, como NSpec.
La automatización de las aplicaciones de Windows Forms en el nivel de prueba funcional puede usar White, CodedUI o incluso directamente usando Windows Automation API 3.0 (UI Automation y MSAA).
Dado que todos estos productos mencionados anteriormente son tecnologías en lugar de soluciones, es mejor construir algunos frameworks de automatización / scripting de pruebas fundamentales basados en estas tecnologías antes de comenzar a escribir pruebas automatizadas.
En caso de que alguien encuentre esto útil:
Lista de herramientas de prueba GUI encontradas en Wikipedia.