Interaktive Testautomatisierung mit direkter Anbindung an ein Testmanagementsystem

Artikel von Boris Wrubel und Andreas Schwarz

Die Anwendungsmöglichkeiten von Smartphones sind längst nicht mehr überschaubar. Gerade mit der aktuellen Entwicklung rund um die NFC-(Near-Field-Communication-)Anwendungen der Mobiltelefone tun sich neue Einsatzgebiete, aber gleichzeitig auch komplexe Anforderungen an den damit verbundenen Softwaretest auf. Anhand eines Projektes aus der Praxis und der Vorstellung eines Prototypen wird gezeigt, wie in diesem Umfeld Testautomatisierung inklusive der Einbindung in ein vorhandenes Testmanagementsystem (Squash TM) aussehen kann.

Die Anzahl der Möglichkeiten, das eigene Smartphone zu nutzen, steigen stetig an. Immer mehr Funktionalitäten bieten die kleinen Supercomputer aus der Hosentasche, und Konsumenten nehmen sie gerne an. Aus der Softwareentwicklungsbranche ist dieses neue Vertriebsfeld nicht mehr wegzudenken. Für den Erfolg dieser Smartphone-Anwendungen auf diesem hart umkämpften Markt ist daher entscheidend, dass die gelieferte Software den Anforderungen entspricht und fehlerfrei arbeitet. Eine große Herausforderung für den Test.

Sogar noch größere Herausforderungen an den Softwaretest stellen Applikationen dar, die neben dem Smartphone weitere Hardware nutzen. So konnten NFC-fähige Karten in den letzten Monaten durch innovative Bezahllösungen an Bekanntheit gewinnen. In diversen Supermärkten und Fastfood-Restaurants kann mittlerweile bezahlt werden, indem man die Kredit- oder Geldkarte kurz am Terminal vorbeiführt; die Karte muss nicht mehr in das Kartenterminal gesteckt werden. Auch Zutrittssysteme funktionieren auf ähnliche Weise.

Genau diese Funktionen und Aufgaben sollen nun in naher Zukunft NFC-fähige Mobiltelefone durchführen. In dem Kontext von sicherheitskritischen Anwendungen kommt somit der Qualitätssicherung eine große Verantwortung zu. Da am Markt eine Vielzahl an unterschiedlichen Geräten und verschiedene Softwareversionen parallel existieren, ist hier der Einsatz von Testautomatisierungswerkzeugen ein wichtiger Bestandteil des Softwaretests. Konkret wird nun anhand eines Projektes die Möglichkeit aufgezeigt, wie eine solche Testautomatisierung inklusive Einbindung in ein vorhandenes Testmanagementsystem (Squash TM) aussehen kann.

Ziel der im Projekt eingesetzten Testautomatisierungslösung ist es, die automatisierten Testläufe zu ermöglichen und diese vollständig in das Testmanagementsystem einzubinden, sodass diese direkt gestartet werden und die Ergebnisse ebenso automatisiert dokumentiert werden können. Bisher mussten bei selbst gebauten Testautomatisierungen die Ergebnisse mühsam manuell in das Testmanagementsystem eingepflegt werden. Genau diese Schritte gilt es zu automatisieren.

Von Squash Test [1] wird Squash TM als Testmanagementwerkzeug und Squash TA für die Testautomatisierung eingesetzt. Squash TA setzt auf dem Continuous Integration Server von Jenkins auf und bietet die Möglichkeit, automatisierte Testfälle (als JUnit Tests) aus Squash TM zu starten und Ergebnisse in Squash TM zu erfassen.

Um die automatisierte Durchführung von Testfällen mit entsprechender Hardware zu ermöglichen, müssen nun Testscripts geschrieben werden, die zusätzlich die benötigte Hardware steuern und letztendlich die Ergebnisse zurück an Squash TM liefern.

Dieser Schritt wird mithilfe eines Raspberry Pi [2], einem kleinen Computer auf ARM-Basis, gelöst. In dem beschriebenen Projekt werden drei verschiedene NFC-Karten an das Smartphone geführt, um von diesem gelesen zu werden. NFC-Tags an der Unterseite der runden Scheibe stellen eine exakte Positionierung und Identifizierung sicher. Für die Steuerung der drei Motoren wird zusätzlich ein Arduino [3], eine Prototyping Platform, eingesetzt.

Die Testscripts sind so aufgebaut, dass diese auf bestimmte Ereignisse, die während der Durchführung auftreten können, reagieren. Beispielsweise muss auf das Aussetzen der 3G-Verbindung während des Testlaufes reagiert werden. Dieses Exception Handling kann individuell an die jeweiligen Testläufe angepasst werden.

Nach Verknüpfung der einzelnen Komponenten miteinander können nun Testdurchführungen direkt aus Squash TM gestartet werden. Dazu werden die entsprechenden Testscripts auf dem Squash-TA-Server gestartet. Das Testscript verbindet sich mit dem Raspberry Pi und führt die gewünschten Testfälle aus. Die Ergebnisse werden direkt an Squash TM zurückgeliefert und als Ergebnis in dem zuvor gestarteten Testlauf gespeichert. Abbildung 1 zeigt den Ablauf eines Testdurchlaufes und den Nachrichtenaustausch zwischen den einzelnen Komponenten.

Somit können zeitaufwendige Testläufe ebenfalls vollständig automatisiert und auch bei einer hohen Anzahl an Releases jederzeit erneut ohne viel Aufwand getestet werden. Abbildung 2 zeigt den Prototypen mit verbautem Raspberry Pi inklusive Greifarm, der mit zwei Motoren gesteuert wird. Gelesen werden die Karten von einem Android-Smartphone. In Zukunft können durch die aufgezeigten Möglichkeiten viele weitere Tests, die bisher manuell durchgeführt wurden, weiter automatisiert werden.

Ausblick

Um die Testläufe noch detaillierter zu dokumentieren, wird bereits an einer Möglichkeit gearbeitet, deutlich mehr Informationen als nur „passed“ oder „failed“ an Squash TM zurückzuliefern. Dazu soll ein offener Service integriert werden, um viele verschiedene Werkzeuge und Programmiersprachen anbinden zu können. Somit ist die Testdurchführung nicht weiter an Squash TA/Jenkins gebunden. Des Weiteren wird es möglich sein, die Testdurchführungen mit Parametern zu versehen, um die Testläufe modular zu gestalten.

Referenzen/Links

[1] Squash Test: http://www.squashtest.org

[2] Raspberry Pi: http://www.raspberrypi.org/

[3] Arduino: http://arduino.cc/

Ein Demovideo wird demnächst auf http://peso.inso.tuwien.ac.at veröffentlicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

Recent Posts