2009-01-13 6 views
10

Para C++, hay muchos buenos marcos de pruebas unitarias, pero no pude encontrar uno bueno para functional testing. Con las pruebas funcionales, me refiero a cosas que tocan el disco, requiere que toda la aplicación esté en su lugar, etc.Marco de prueba para pruebas funcionales/del sistema para C/C++?

Punto en el caso: ¿Qué marco ayuda a probar cosas como si funciona su E/S? Tengo un sistema enrollado a mano, que crea carpetas temporales, copias de un montón de datos, por lo que las pruebas siempre se realizan en el mismo entorno, pero antes de dedicar más tiempo a mi marco personalizado, ¿hay algún problema? ¿Ya está bien?

+0

¿En qué plataformas está usted? –

+0

Windows y Linux en este momento. Mi marco de prueba actual está escrito contra .NET 2, y funciona donde funciona Mono. – Anteru

Respuesta

3

Escribí uno desde cero tres veces ya: dos veces para probar aplicaciones C++ que hablaban con intercambios utilizando el protocolo FIX, una vez para una aplicación GUI.

El problema es que debe emular el mundo exterior para realizar las pruebas adecuadas del sistema. No me refiero a "fuera de tu código": fuera de tu aplicación. Esto implica emular usuarios finales, entidades externas, Internet, etc.

Normalmente utilizo Perl para escribir mi sistema de pruebas del sistema y las pruebas, sobre todo porque es bueno para acceder a todo tipo de instalaciones del sistema operativo y las expresiones regulares son ciudadanos de primera clase.

Algunos consejos: asegúrese de que sus registros sean fáciles de analizar, detallados pero no demasiado detallados. Tener una configuración sana por defecto. Facilite el "reinicio" de la aplicación; debe hacerlo después de cada prueba.

El enfoque que suelo usar es tener algún tipo de "adaptador" que convierta las comunicaciones de la aplicación con el mundo exterior en stdin/stdout de algún ejecutable. Luego construyo un marco perl además de eso, y luego los casos de prueba usan el marco.

2

A continuación enumero un par de herramientas y aplicaciones de prueba más grandes de las que tengo conocimiento. Si proporciona más información en su plataforma (sistema operativo, etc.) probablemente podamos proporcionar mejores respuestas.

Por parte de lo que necesita, Microsoft proporciona la Application Verifier:

comprobador de aplicaciones (AppVerifier) ​​es una herramienta de verificación tiempo de ejecución utilizado en aplicaciones de pruebas para la compatibilidad con Microsoft Windows XP. Esta herramienta se puede utilizar para probar una amplia variedad de problemas de compatibilidad conocidos mientras se ejecuta la aplicación. Este artículo detalla los pasos para usar AppVerifier como una adición efectiva al desarrollo de aplicaciones y ciclos de prueba.

El Verificador de aplicación puede ser útil para probar condiciones de poca memoria, otros recursos bajos y otros usos de API.

Otra parte del rompecabezas es el paquete Microsoft Detours, que se puede utilizar para reemplazar llamadas API con su propio código (útil para decir, devolver códigos de error para pruebas que son difíciles de configurar).

Detours es una biblioteca para instrumentar funciones Win32 arbitrarias en máquinas x86, x64 e IA64. Desvíos intercepta las funciones de Win32 volviendo a escribir el código en memoria para las funciones de destino. El paquete Detours también contiene utilidades para adjuntar DLL arbitrarios y segmentos de datos (llamados cargas útiles) a cualquier binario de Win32.

Existen otros paquetes integrales más grandes (y más caros) disponibles también. Borland hace Silk.
El software automatizado hace TestComplete. La selección de una de estas herramientas correspondería a sus necesidades para sus aplicaciones.
IBM/Rational proporciona el Rational Functional Tester, que está disponible en muchas plataformas y ofrece muchas funciones.

+0

Lo malo de Detours es que, aunque v2.1 es gratuito, es para investigación, no comercial, no solo de producción. La versión 3.0 elimina estas restricciones pero cuesta $ 9,999, un gran compromiso si no sabes si satisface tus necesidades. –

0

Hola No estoy seguro de si el marco que tenemos ayuda en su situación pero se engancha en Rational Functional Tester y permite al usuario crear diversos conjuntos de datos para adjuntarlos a diferentes pruebas y cambiar los entornos sin cambiar los scripts y reutilizaciones la automatización de una manera eficiente. Eche un vistazo si le interesa: http://www.testpro.com.au/Test-Automation-Framework.html

+2

Agregue una exención de responsabilidad a sus publicaciones recomendando sus productos. Veo que divulgas tu afiliación en tu perfil, pero no todos pensarán en mirar. Ver también [faq # promotion]. –

Cuestiones relacionadas