2008-09-03 20 views
17

Estamos trabajando en un proyecto grande 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.Prueba de interfaz de usuario

Tenemos usuarios no técnicos que realizan pruebas, pero a menudo omiten partes y permiten que los errores se filtren.

Mi pregunta es: ¿Existen mejores prácticas para organizar las pruebas de UI de un proyecto de WinForms? ¿Hay alguna manera de automatizarlo?

Gracias!

+0

Escuchará que la "automatización de la prueba GUI es frágil" o que las "pruebas automáticas de la GUI son una pesadilla". Por lo general, de personas que vieron la automatización de pruebas realizada por personas al azar o de aquellos que nunca vieron la automatización de la interfaz gráfica de usuario acaba de escuchar cómo falla. De cualquier manera, la automatización de pruebas requiere compromiso y material especializado. La herramienta es solo una herramienta, hay muchas herramientas. Pocos de ellos: http://www.testingfaqs.org/t-gui.html – yoosiba

Respuesta

19

Existen herramientas de prueba GUI que harán clic en botones y otras 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.

+5

De todos modos, el autor necesita una solución, no solo objeciones ... – Budda

0

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.

6

Puede automatizar las pruebas de interfaz gráfica de usuario utilizando White marco.

Considere también utilizar un diseño compatible con TDD, es decir, utilice el patrón MVP/MVC.

Le recomiendo que lea la documentación de los patrones de Microsoft & practica equipos.

Especialmente echar un vistazo a Composite UI application block 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 dirigida por pruebas.

+0

"Considere también utilizar un diseño compatible con TDD, es decir, use el patrón MVP/MVC". Corrígeme si estoy equivocado, pero ¿no sería un diseño "** Test ** amistoso"? Creo que TDD sugiere mucho más que simplemente probar ... – sixtyfootersdude

4

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 Passive View 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.

1

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ífica.

Su mejor opción será investigar un poco más sobre el tema y visitar algunos de los sitios de pruebas especializadas como http://www.sqaforums.com.

1

Encontré esta manera rápida y sucia de probar diseños de página 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.

0

Un nuevo método disponible ahora es el uso de 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.

0

Cómo organizar las pruebas de IU depende de cómo se diseñen los casos de prueba.

Automatizando 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 marcos de automatización de pruebas/guiones fundamentales basados ​​en estas tecnologías antes de comenzar a escribir pruebas automatizadas.

+0

Tu respuesta es sosa y vacía. – nalply

Cuestiones relacionadas