Automatisierte Testung
Mittwoch, Oktober 31st, 2012Nach der Installation der letzten Entwicklerversion ist euch vielleicht aufgefallen, das sich ein drittes Programm namens „BVATest.exe“ in dem Setup befunden hat. Mit dem Programm möchte ich immer wiederkehrende Tests des BVASystems automatisieren und mir damit langfristig eine Menge Arbeit ersparen. Außerdem hoffe ich, das durch die systematische Herangehensweise eventuelle Fehler nicht so häufig übersehen werden. Damit ihr die durchgeführten Tests nachvollziehen und eventuell eigene Tests durchführen könnt, habe ich mich entschlossen die Testanwendung in die Entwicklerversionen zu integrieren. Stabile Softwareversionen werden die Testanwendung dagegen nicht enthalten.
Was sind automatisierte Tests?
Beim Testen einer Software überprüft man, ob das Programm den Anforderungen entspricht. Dabei ist es notwendig, das die komplette Prüfung mit jedem Versionssprung erneut durchgeführt wird. Es ist nämlich möglich, das eine einzige geänderte Codezeile Auswirkungen auf längst abgeschlossene Funktionen hat. Durch eine automatisierte Testung erreicht man, das der Aufwand zur Testung stark reduziert wird. Außerdem wird verhindert, das man durch eine unsystematische Herangehensweise Testfälle vergisst.
Auch kann durch eine automatisierte Testung die Qualität einer Software beurteilt werden. Je mehr Anforderungen erfolgreich erfüllt werden, desto qualitativ hochwertiger ist die Software. Mit Hilfe einer automatisierten Testung kann also festgestellt werden, ob die alte Version X oder die neue Version Y besser zu den Anforderungen passt.
Der größte Vorteil einer automatisierten Testung ist ganz klar der Geschwindigkeitsvorteil der sich bei der Entwicklung ergibt. Außerdem ist es für den Entwickler einfacher, Änderungen am Programmcode vorzunehmen, da die Auswirkungen jederzeit schnell überprüft werden können.
Nachteil einer automatisierten Testung ist natürlich, das die Tests selber wiederum Fehler enthalten können. Zum Beispiel kann bei der Definition der Tests eine wichtige Anforderung übersehen werden. Wird allerdings so ein Fehler gefunden, so kann durch die Anpassung der automatisierten Testung sichergestellt werden, das dieser Fehler kein zweites mal übersehen wird.
Geplante Funktionsweise
Das Testprogramm „BVATest“ soll mit XML basierten Projektdateien arbeiten. In diesen Projektdateien können beliebig viele Testaufgaben definiert werden. Bei der Definition einer Aufgabe müssen alle zu nutzenden Parameter festgelegt werden. Außerdem sollen Abhängigkeiten definiert werden können. Zum Beispiel muss zum Test der Funktion „Datenbankbild löschen“ zuerst ein Bild in der Datenbank gespeichert werden.
Alle definierten Tests werden nach dem Start der Testung nacheinander abgearbeitet. Rückgabewerte werden in einem gesonderten Teil der Oberfläche dargestellt und außerdem werden sie mit erwarteten Rückgabewerten verglichen. Treten Unterschiede auf, so werden diese deutlich hervorgehoben.
Vorläufiges Entwicklungsziel
Mein vorläufiges Entwicklungsziel ist es, das durch das Testprogramm alle Worker-Aufgaben automatisiert getestet werden können. Dadurch, das die Aufgaben komplett von der Oberfläche losgelöst sind, bieten sie sich regelrecht zur automatisierten Testung an. Außerdem bilden sie einen wichtigen Bestandteil der Bilddatenbank. Was nützt es, wenn ich viele tolle Funktionen habe, aber gerade beim Hinzufügen eines neuen Fotos einen Fehler übersehe.