Test-Automatisierung hilft mittlerweile in vielen Gebieten, Softwaretests effizienter umzusetzen.
Verteilte, automatische Tests sind nur mit wenigen Testrobotern möglich und während Scheduling mit Ergebnisaggregation von so gut wie keinem Tool direkt unterstützt wird, hat ANECON im Rahmen eines Kundenprojekts ein System entwickelt, das einen vollautomatischen Testdurchlauf mit Time-Constraints erlaubt.
Die Umsetzung durch das Test-Automatisierungs-Team erfolgte "in Time and Budget", Thomas Bucsics fasst die Details zusammen und erläutert, wie dadurch die Testautomatisierung übersichtlich und zeitgerecht ablaufen kann.
Bei Desktop-, Web- und Client-Server Applikationen mit nur einem Server ist die Gestaltung des Automatisierungssystems einfach, besonders wenn die Startzeit der einzelnen Testfälle nicht relevant ist. Ein Testroboter ist im Regelfall ausreichend, und es gibt pro Testfall und Zyklus genau ein Ergebnis, das durch den automatischen Testdurchlauf ermittelt werden kann.
Soll eine Webapplikation getestet werden, die auf mehreren Servern redundant läuft, ist es in vielen Fällen sinnvoll, den Test auf mehrere Testroboter aufzuteilen. Somit ist neben den Testrobotern ein zusätzliches System notwendig, das für eine koordinierte Testdurchführung zuständig ist. Weiters ist zu beachten, dass die Ergebnisse der Durchführung der Testfälle auf verschiedenen Servern zusammengeführt werden müssen.
Wenn außerdem der Zeitpunkt der Durchführung für bestimmte Testfälle relevant ist, wird der Einsatz eines so genannten Scheduling-Moduls notwendig, das dafür sorgt, dass für diese Testfälle zeitgerecht ein Testroboter zur Verfügung steht und gestartet wird.
Viele Anbieter von Testrobotern vertreiben Tools, die Testfälle auf mehreren Robotern verteilt starten können. Scheduling und Ergebnisaggregation sind allerdings sehr rare Features und müssen im Normalfall selbst implementiert werden, sofern dies überhaupt möglich ist. Deutlich schwieriger wird es zusätzlich, wenn die verwendete Testfallverwaltung und der verwendete Testroboter von verschiedenen Herstellern kommen.
ANECON hat in den letzten Monaten ein System im Rahmen eines Kundenprojekts entwickelt, dass einen auf mehrere Rechner verteilten, vollautomatischen Testdurchlauf mit Time-Constraints erlaubt, wobei Roboter und Testfallverwaltung von unterschiedlichen Herstellern stammen. Es wurde durch das ANECON Test-Automatisierungs-Team "in Time and Budget" entworfen, entwickelt und getestet und basiert größtenteils auf Open-Source Software.
Der Tester kann in einer Testfallverwaltung Testfälle und Test-Sets in natürlichem Text verfassen, die dann von einem Automatisierungsentwickler implementiert werden.
Die Implementierung eines solchen Testfalls kann sich aller, auf den Testroboter-Umgebungen verfügbaren, Datenquellen bedienen.
Für das Überprüfen und Ausfüllen von HTML-Dokumenten über einen Webbrowser bietet das System außerdem ein XML-Schema inklusive dazugehöriger Module für die Testroboter. Dies vereinfacht die datengesteuerte Implementierung dieser sehr häufig benötigten Aktivitäten. Es wurde außerdem ein Webinterface zum beschleunigten Erstellen solcher Testdaten erstellt. Das Webinterface ermöglicht eine Versionierung der Testdaten in einem gängigen Versionsmanagement-System.
Sind Implementierung und Daten der Testfälle für ein Testset vorhanden, kann der Tester eine Liste von Servern definieren, auf denen die gewünschten Testfälle ablaufen sollen, und das Testset direkt aus dem Testfallverwaltungstool heraus zu starten. Die Testfälle werden vom System an mehrere Testroboter verteilt, wobei die zeitgerechte Durchführung von Testfällen durch einen Online-Scheduling-Algorithmus gewährleistet wird, ohne einzelne Testroboter über längere Zeit hinweg zu blockieren.
Während des Durchlaufs eines Testsets wird der Status der einzelnen Testfälle an das Testfallverwaltungstool weitergegeben und ist so für den durchführenden Tester jederzeit ersichtlich.
Sollte ein Testroboter oder dessen Implementierung nach einer für jeden Testfall einzeln bestimmbaren maximalen Laufzeit kein Ergebnis liefern (z.B. aufgrund von Infrastrukturproblemen oder eines Absturzes des Testroboters), versucht das System, diesen Roboter zurückzusetzen. Sollte dies wiederum fehlschlagen, kann der Testroboter händisch neu angestartet werden.
Nach der Durchführung eines Testfalls auf allen gewünschten Servern werden die Ergebnisse zusammengefasst und in das Testfallverwaltungssystem geschrieben. Sollte ein Testfall fehlschlagen, wird vom System automatisch ein Trouble-Ticket in der Testfallverwaltung erstellt, welches Daten über Testfall und dessen Ergebnisse auf den einzelnen Servern enthält.