Integración automatizada probando una aplicación C++ con una base de datos

Integración automatizada probando una aplicación C++ con una base de datos


Estoy introduciendo pruebas de integración automatizadas en una aplicación madura que hasta ahora solo se ha probado manualmente.


La aplicación está basada en Windows y se comunica con una base de datos MySQL.


¿Cuál es la mejor manera (incluidos los detalles de las herramientas recomendadas) para mantener las pruebas independientes entre sí en términos de las transacciones de la base de datos que se producirán?


(Las modificaciones a la fuente de la aplicación para este propósito en particular no son una opción).


Respuestas:


¿Cómo estás verificando los resultados?


Si necesita consultar la base de datos (y parece que probablemente lo haga) para obtener resultados, estoy de acuerdo con Kris K, excepto que me esforzaría por reconstruir la base de datos después de cada caso de prueba, no solo de cada suite.


Esto ayuda a evitar pruebas de interacción peligrosas


En cuanto a las herramientas, recomendaría CppUnit. Realmente no está haciendo pruebas unitarias, pero no debería importar, ya que el marco xUnit debería brindarle el marco de configuración y desmontaje que necesitará para configurar automáticamente su dispositivo de prueba


Obviamente, esto puede resultar en pruebas de ejecución lenta, según el tamaño de la base de datos, la población, etc. Es posible que pueda adjuntar/desvincular bases de datos en lugar de descartarlas/reconstruirlas.


Si está interesado en realizar más investigaciones, consulte Patrones de prueba de XUnit. Es un buen libro y un buen sitio web para este tipo de cosas.


Y gracias por automatizar :)


Nick