2009-01-27 12 views
6

Estoy buscando iniciar pruebas de regresión automatizadas en un complemento de Excel bastante grande que gira en torno a una GUI compuesta de unos pocos UserForms modales con controles estándar.Prueba automatizada de UserForms de VBA: ¿herramientas y/o técnicas?

El principal problema es que la mayoría de las herramientas de test He mirado en (Rational Robot , AutomatedQA TestComplete, Network Automation Automatizar etc) no soportan plenamente la VBA controla por lo que sus pruebas terminan reproducir clics del mouse y presionar teclas, por lo que no son realmente mantenibles. Idealmente, necesito una herramienta de prueba que reconozca los controles de formulario de VBA, por lo que puedo decir "presione este botón y espere a que este cuadro de lista cambie" en lugar de "hacer clic en (237, 58) y esperar 500 milisegundos".

También consideré construir la automatización de prueba en el complemento como VBA, pero la mayor parte del tiempo del usuario se usa interactuando con un cuadro de diálogo modal que detiene el VBA ejecutándose en segundo plano, por lo que está fuera de cuestión.

Mi pregunta-¿Hay alguien aquí tiene alguna experiencia con una herramienta de prueba automatizada que

a) reconoce los controles de formulario de usuario de VBA y pueden interactuar de forma fiable con ellos

b) tiene soporte para scripts de prueba con saltos condicionales y el registro de éxito/fracaso, en lugar de simplemente grabar y reproducir?

Como alternativa, ¿alguien sabe de qué forma puedo evitar el problema de los diálogos modales al pausar la ejecución de VBA para poder conducir el complemento desde dentro de VBA?

He pasado un tiempo mirando foros de control de calidad pero no he encontrado nada allí, por lo que cualquier ayuda o pistas serían apreciadas.

Gracias por su ayuda,

-Martin

Respuesta

2

No sé de una herramienta que hace lo que dice, pero ¿ha pensado en atacar desde una dirección diferente?

Estoy especulando un poco acerca de qué parte de la lógica en el podría ser empujada hacia abajo en una Clase VB/VBA "normal" de tal manera que los métodos individuales puedan ser probados en unidades. Tal vez una Clase así podría exponer los eventos, incluso, de modo que para las pruebas pueda reemplazar la forma con un arnés de prueba que proporcionó los estímulos necesarios y recopiló las respuestas para verificar.

No se abordaría la conexión de la forma (ahora muy ligera) a la clase subyacente, pero al menos minimizaría el área no probada.

Realmente estoy pensando "en voz alta", pero ¿crees que eso funcionaría?

+0

Eso no es una mala idea. Me gustaría mantener los cambios arquitectónicos mínimos, y sería una gran cantidad de codificación, pero elimina mucho el dolor de lidiar con la GUI. Estamos explorando alternativas, pero tal vez volvamos a esta idea. – MLdeS

Cuestiones relacionadas