Automatisiertes Integrationstesten einer C++-App mit einer Datenbank

Automatisiertes Integrationstesten einer C++-App mit einer Datenbank


Ich führe automatisierte Integrationstests in eine ausgereifte Anwendung ein, die bisher nur manuell getestet wurde.


Die App ist Windows-basiert und kommuniziert mit einer MySQL-Datenbank.


Was ist der beste Weg (einschließlich Details zu empfohlenen Tools), um Tests in Bezug auf die auftretenden Datenbanktransaktionen voneinander unabhängig zu halten?


(Änderungen an der App-Quelle für diesen speziellen Zweck sind keine Option.)


Antworten:


Wie überprüfen Sie die Ergebnisse?


Wenn Sie die DB nach Ergebnissen abfragen müssen (und es hört sich so an, als würden Sie das wahrscheinlich tun), stimme ich Kris K zu, außer dass ich mich bemühen würde, die DB nach jedem Testfall neu zu erstellen, nicht nur nach jeder Suite.


Dadurch können gefährliche Interaktionstests vermieden werden


Als Tools würde ich CppUnit empfehlen. Sie führen eigentlich keine Unit-Tests durch, aber das sollte keine Rolle spielen, da das xUnit-Framework Ihnen das Setup- und Teardown-Framework bieten sollte, das Sie benötigen, um Ihre Testvorrichtung automatisch einzurichten


Offensichtlich kann dies abhängig von Ihrer Datenbankgröße, Population usw. zu langsam laufenden Tests führen. Sie können möglicherweise Datenbanken anhängen/trennen, anstatt sie zu löschen/neu zu erstellen.


Wenn Sie an weiterer Forschung interessiert sind, sehen Sie sich XUnit Test Patterns an. Es ist ein gutes Buch und eine gute Website für solche Dinge.


Und danke für die Automatisierung :)


Nick