2011-05-12 17 views
8

desafortunadamente tengo una aplicación de escritorio de GUI que se ejecuta en Windows y se compila usando el compilador de Borland C++. Sé que es una tecnología muy antigua, pero esa es la vida. La compañía para la que trabajo tiene muchas licencias gratuitas para QTP. Pero para ser sincero, no me gusta esta herramienta y quiero cambiarla con alguna alternativa de código abierto.Herramienta de automatización de prueba/libraries/framework para aplicaciones de escritorio de Windows C++ GUI

Tengo una experiencia con los servicios de automatización web utilizando Selenium, y algunos applets java swing. Creé mis pruebas basadas en Java/JUnit. Me pregunto si puedo crear algunas pruebas en Java para probar mi aplicación C++, eso sería genial. Si eso no es posible, si puedo usar cualquier biblioteca de C/C++ para crear mi propio marco de prueba.

Eso no debería ser pruebas unitarias. Quiero crear más bien un conjunto de pruebas funcionales. Quiero ser capaz de localizar objetos como botones, tablas, celdas, etc., realizar acciones como hacer clic, cambiar el foco, etc.

Además, tengo acceso a la fuente. Pero este es más bien un viejo código de spaghetti y no tengo mucha experiencia con las aplicaciones de C++.

¿Qué es lo que sugiere?

Respuesta

5

Herramientas Open Source

White es una herramienta de automatización de la interfaz de usuario basada en .NET que puede automatizar aplicaciones Win32 entre otros tipos. Siempre que los controles utilizados en su aplicación expongan su contenido/comportamiento utilizando los ganchos de UIAutomation estándar de Windows, entonces debería poder usarlo para hacer lo que necesita.

UIAutomation Verify es otro proyecto de CodePlex que funciona con las mismas API para automatizar las UI compatibles con UIA.

Visual Studio

probar la funcionalidad de interfaz de usuario Por último, si tiene acceso a la misma a continuación, Visual Studio 2010 con guión ha incorporado en las ediciones Premium/Ultimate - Coded UI Tests. Esto es compatible con .NET, aplicaciones nativas y web con funcionalidad de grabación/reproducción y secuencias de comandos.

+0

Buscaré una verificación blanca/UIA pronto. ¿Pero puede recomendar cualquier biblioteca java para probar aplicaciones C++? – Robert

+0

@Robert Lo siento, no he usado/escuchado ninguna herramienta basada en Java para probar aplicaciones Win32. –

+1

Este es el ejemplo de la automatización del Bloc de notas de Windows con blanco: https://github.com/slmoloch/Notepad.TestSuite –

0

Robert, si su empresa ya tiene licencias de QTP, le sugiero que la use. Es la herramienta adecuada para el trabajo, y no tiene sentido reinventar la rueda si su empresa ya la posee. Tiene sus defectos, mis principales objeciones son para el lenguaje de scripts limitado de IDE y VBScript, pero no se convirtió en la herramienta líder del mercado por accidente. No hay muchas opciones de código abierto para probar una aplicación GUI de Windows C++. Las principales opciones comerciales que debe considerar son HP QTP, IBM Rational Functional Tester y VS2010 Coded UI Tests.

+0

Alguien ya comenzó la automatización con QTP, pero hay un problema con el reconocimiento de los objetos en esta herramienta, hay muchos problemas de corte, rendimiento e inestabilidad. No me gustan los IDE y VBS de QTP. Prefiero el código de Java, porque tenemos un lenguaje objetivo, tuve algo de experiencia con él y no es un problema unirme a otras librerías. – Robert

+0

No creo que mi empresa pague por otra herramienta comercial, así que prefiero las bibliotecas de código abierto. – Robert

5

Utilizamos Sikuli y hemos estado muy contentos con él. Funciona fuera de las diversas API de automatización, por lo que maneja muy bien las IU no estándar.

+0

Lo comprobaré. – Robert

+0

+1: excelente !!! He soñado durante mucho tiempo con una herramienta así ^^ ¡El MIT lo hizo! – neuro

+1

Sikuli se ve bien, pero hay dos problemas: 1) Después de tratar de encontrar un objeto o crear una región, ideo minimalizar y no puedo hacer nada. ¿Estoy haciendo algo mal? 2) El segundo problema es que esperaba algo más. Quiero programar las pruebas en lugar de hacer clic en los gráficos. Intentaba unir sikuli con java pero la documentación es pura en mi opinión y no sé cómo, por ejemplo. encuentre un campo de texto editable junto a lable Nombre de usuario o botón con etiqueta, etc. etc. ¿Es posible con Sikuli? – Robert

1

Estoy de acuerdo con Robert en que QTP a veces no es la mejor herramienta, especialmente cuando quiere que espere a que la aplicación de escritorio termine su procesamiento. Los comandos QTP no son síncronos, lo que significa que QTP no espera hasta que el comando anterior finalice la ejecución antes de pasar a la siguiente llamada. Tuvimos muchos problemas con esto. Ahora estamos planeando escribir un dll de C# que pueda hacer esto para QTP e incluirlo en nuestros programas QTP para hacer que QTP espere dinámicamente hasta que la aplicación Desktop finalice su procesamiento. Actualmente, que yo sepa, QTP no soporta dicha funcionalidad de espera.

Además, volviendo al tema de reconocimiento de objetos, Tuvimos un gran problema con esto y tomamos la ruta alternativa de invocar comandos usando Mnemonics a través de teclas en QTP. Como Simon ya mencionó, esto podría deberse a la falta de exposición de los elementos de la GUI. No teníamos mucho control a este respecto, por lo que no investigamos más sobre esto.

Cuestiones relacionadas