2011-02-05 15 views
12

Soy muy nuevo en pruebas o automatización de pruebas. Recientemente me asignaron un proyecto para automatizar la prueba de interfaz de usuario de una aplicación de WPF. Después de investigar un poco en MSDN y otros, estoy un poco confundido acerca de si debería usar la Biblioteca de automatización de UI de Microsoft o la nueva función de Prueba de UI codificada de VS 2010. No entiendo claramente cuál de estos se aplica en qué escenarios, qué ventajas tiene uno sobre el otro y cuál me conviene (una vez más tengo un CAD como la aplicación WPF que echa de menos muchos AutomationIds y tengo que automatizar sus pruebas de ui). POR FAVOR AYUDA !!!Biblioteca de automatización de UI de Microsoft Vs Prueba de interfaz de usuario codificada

Respuesta

17

Básicamente Microsoft UIA es la nueva biblioteca de accesibilidad en .NET 4.0. Los controles y las aplicaciones de WPF tienen soporte integrado para UIA a través de la clase AutomationPeer.

La prueba de UI codificada es una herramienta de automatización de reproducción Record & que utiliza la biblioteca UIA de Microsoft debajo. Como es una herramienta en comparación con la escritura de código en C#, mejora la productividad de QA para registrar más casos de prueba.

Para las aplicaciones con soporte de automatización planificado, Coded-Ui debería ser suficiente. Si los AutomationID faltan, asegúrese de que los controles tengan alguna propiedad única como Nombre. Use UIVerify o Inspeccionar para verificar esto.

Si no se puede reservar ninguna propiedad única, existen las otras técnicas mencionadas a continuación que puede utilizar en combinación con la interfaz de usuario codificada.

  • de un acontecimiento Cuando la aplicación recibe un evento de UI Automation, el objeto de origen pasó a su controlador de eventos es una AutomationElement. Por ejemplo, si se ha suscrito a eventos de cambio de foco, el origen transferido a AutomationFocusChangedEventHandler es el elemento que recibió el foco. Para obtener más información, vea Suscribirse a eventos de automatización de UI.

  • Desde un punto: Si tiene coordenadas de pantalla (por ejemplo, una posición del cursor), puede recuperar un AutomationElement utilizando el método estático FromPoint.

  • Desde un identificador de ventana: para recuperar un AutomationElement de un HWND, utilice el método FromHandle estática.

  • Desde el control enfocado: Puede recuperar un elemento AutomationElement que represente el control enfocado desde la propiedad estática FocusedElement.

8

Si puede aprovechar y usar el Coded UI Test, siga esa ruta. Asegúrese de verificar que su configuration is supported dado.

La Biblioteca de automatización de UI resuelve todo en el código subyacente. Esto te obliga a usar una herramienta como UISpy para obtener acceso a los controles internos para que luego puedas construir tu prueba.

una prueba de interfaz de usuario codificada por el contrario aún tiene código detrás sin embargo, permite la grabación de pasos a través de la aplicación dada que se está probando lo que aumentará considerablemente el número de pruebas que se pueden crear.

2

Para complementar las respuestas anteriores, por favor busque en CUITE que ayuda un poco y puede ser un enfoque apropiado para usted.

Empecé a 'rodar mi propio' 'semi-framework' utilizando la biblioteca CodedUITest y diseñé un paradigma para separar los detalles de la automatización del código (C#). Básicamente, estoy creando un controlador que lee lo que se debe hacer desde una hoja de cálculo donde cada línea es un paso de prueba (o un puntero a un escenario en una hoja de cálculo diferente). En la actualidad, incompleto, pero prometedor, lo tengo trabajando contra una aplicación WPF con éxito parcial. Uno de los principales problemas es que los desarrolladores se olvidaron de identificar los controles de manera única y consistente.

Bey

4

UI Automation library es una biblioteca de bajo nivel. Por lo general, no desea escribir pruebas directamente, ya que requiere una cantidad bastante decente de trabajo.

Recomendaría buscar en más bibliotecas de alto nivel. Mencionaste uno de ellos: interfaz de usuario codificada; otra buena opción sería White de TestStack. Ambos se adaptan a diferentes tipos de proyectos. La IU codificada es buena cuando no desea invertir muchos esfuerzos en su conjunto de pruebas. Al mismo tiempo, no escala mucho, así que si va a escribir muchas pruebas, es mejor que elija Blanco.

Aquí comparo los dos marcos en más detalle: Coded UI vs White

Cuestiones relacionadas