Testroboter
# Testroboter

Testroboter werden in der Softwarequalitätssicherung auch als Capture & Replay- bzw. Capture & Playback Tools bezeichnet, die zur Testautomatisierung beitragen. Dabei zeichnet das Werkzeug alle vom Tester manuell durchgeführten Bedienschritte, wie zum Beispiel Tastatureingaben oder Mausklicks, während einer Testsitzung auf. Diese Bedienschritte werden vom Werkzeug in einem Testskript gespeichert. Danach kann der aufgezeichnete Testfall vom Tester automatisch wiederholt abgespielt werden.

## Testautomatisierungsarchitektur

Bei größeren Projekten werden auf diese Art und Weise sehr viele Testskripte erstellt. Für die Erstellung und Wartung einer großen Anzahl von Testskripten muss daher eine geeignete Strukturierung der Testskripte durchgeführt werden. Außerdem unterstützt eine gute Strukturierung die Arbeitsteilung zwischen Testautomatisierern und Fach-Testern.

Bei der datengetriebenen Testautomatisierungsarchitektur (data-driven test) steht die Trennung von Testdaten und -skript im Vordergrund. Dabei werden die Testdatensätze in ein Tabellenkalkulationsblatt oder in eine Datenbank ausgelagert. Die Test-Sollergebnisse sind ebenfalls in der Datenbank gespeichert. Das Testskript liest die einzelnen Zeilen ein und führt die Testprozedur mit diesen Datensätzen durch. Werden zusätzliche Testfälle benötigt, werden sie vom Fach-Tester in der Datenbank bzw. im Tabellenkalkulationsblatt hinzugefügt.

Besteht die Anforderung, einzelne Teile der Testskripte in eine Prozedur zu kapseln, um so eine Wiederverwendung in anderen Skripten zu ermöglichen, muss der Testroboter kommando- bzw. schlüsselwortgetriebenes Testen (command-/keyword-driven test) unterstützen. Auch hier werden die gekapselten Prozeduren in der Regel vom Testskript getrennt und in eine Bibliothek ausgelagert. Der Fachtester stellt aus den einzelnen Prozeduren das Testskript zusammen und benötigt somit keine Programmierkenntnisse.

Interaktionsgetriebene Testroboter der neuesten Generation kombinieren die datengetriebenen und die komponentengetriebenen Ansätze. Sie bieten eine Testbausteinverwaltung, mit der Bausteine aus einem Repository gewählt und zu einer neuen Testsequenz zusammengestellt werden können. Dabei werden auch die dazugehörigen Testdaten automatisch in die Testsequenz mitgenommen. Muss eine Änderung in Testfällen, die denselben Baustein inkludieren, vorgenommen werden, geschieht dies zentral an einer Stelle innerhalb des Bausteins. Dies minimiert den Wartungsaufwand und große Repositories können effizient und übersichtlich genutzt werden.

## Aktuelle Testroboter

Am Markt stehen eine Reihe von Testrobotern zur Verfügung. Ihr Umfang bezüglich ihrer Funktionalität variiert jedoch sehr stark. Einige Werkzeuge sind reine Testroboter. Bei anderen wiederum ist die Roboterfunktion nur ein Teil ihrer Gesamtfunktionalität.

* Selenium: Selenium ist ein Open Source Testframework zur Durchführung funktionsorientierter Tests von Webapplikationen.
* HP Unified Functional Testing (UFT): Unified Functional Testing (UFT), vorher bekannt als HP QuickTest Professional (QTP), ist der aktuelle Testroboter der Firma Micro Focus. Er ersetzt den früheren Testroboter WinRunner.
* Tosca: Tosca ist der aktuelle Testroboter der Firma Tricentis GmbH.
* TestComplete: TestComplete ist der aktuelle Testroboter der Firma SmartBear Software.
* CitraTest: CitraTest ist eine Lösung der Firma Tevron. CitraTest ist ein Testroboter, der für Funktions- und Lasttests als auch zum End-to-End Monitoring (auch unter Terminalservices wie z. B. Citrix) eingesetzt werden kann.
* JStudio SiteWalker: JStudio SiteWalker ist ein Testwerkzeug für webbasierte Anwendungen zur Durchführung von automatisierten funktionsorientierten Tests.
* IBM Rational Robot: Rational Robot von IBM ist ein Testroboter zur Durchführung von Funktions-, Rückfall- und Konfigurationstests für .NET-, Java-, Web- und andere GUI-basierte Anwendungen.
* Ranorex: Ranorex ist ein GUI-Testautomatisierungsframework zur Generierung automatisierter Tests für Desktop-, Web-Applikationen und mobile Anwendungen. Es wird vom gleichnamigen Unternehmen entwickelt und vertrieben.
* Squish: Squish ist ein Automatisierungswerkzeug für Qt und andere GUI-Technologien, welches Skriptsprachen wie Python und JavaScript verwendet. Hersteller ist die Firma froglogic GmbH.
* TestPartner: TestPartner wurde ursprünglich von der Firma Compuware entwickelt und wird zurzeit von der Firma Micro Focus vertrieben. Bei TestPartner werden zwei verschiedene Modi zur Erstellung von Testfällen angeboten. Mit Visual Test wird ein Storyboard-basierter Ansatz verwendet und mit Test Script werden die Testfälle mit Hilfe eines VBA Codes generiert.
* SilkTest: Die Firma Micro Focus bietet mit SilkTest eine umfangreiche Lösung zum Testen der Softwarefunktionalitäten von Anwendungen, die über eine grafische Benutzeroberfläche gesteuert werden, an.
* QF-Test: Mit dem Tool QF-Test der Firma Quality First Software lassen sich u. a. via Capture / Replay Aufzeichnungen zur Automatisierung von Java und Web GUI Funktions-, Regressions- und Lasttests durchführen.
* Watij: Bei Watij (Web Application Testing in Java) handelt es sich um ein Open-Source-Framework in Java. Es besitzt weder eine grafische Bedienoberfläche noch wird Capture & Replay unterstützt. Die Tests müssen manuell codiert und danach kompiliert werden.
* Yawet: Yawet ist ein Testroboter der Firma InforMatrix GmbH. Das Werkzeug ist sehr einfach gehalten und unterstützt daher nur grundlegende Funktionalitäten.
* Badboy: Badboy ist eine von der Firma Badboy Software entwickelte, schlanke Capture & Replay Testsoftware. Da sie einen eigenen Browser zur Ausführung der Testfälle besitzt, kann keine Browserkompatibilität garantiert werden.
* eValid: eValid von der Firma Software Research, Inc. unterstützt nur Tests mittels Microsoft Internet Explorer, da es in den installierten Internet Explorer integriert wird. Daher können auch alle Funktionen, die der Internet Explorer bietet, genutzt werden.
* QA Wizard Pro: Die Firma Seapine Software bietet in ihrem Portfolio unter anderem dem QA Wizzard Pro für Funktions- und Regressionstests an. Da sie weitere Produkte im Test-Lifecycle anbietet, können Daten aus anderen Produkten in den Testfällen wiederverwendet werden.
* Test4Q: Test4Q ist ein Host-orientiertes Capture-/Replay Tool, das speziell CICS-Transaktionen verarbeiten kann. Eine Fülle weiterer Funktionalitäten – auch für den Batchablauf – stehen ebenfalls zur Verfügung. Unter bestimmten Voraussetzungen ist auch eine (Teil)automatisierung zur Erstellung der Testskripte (ohne eine vorherige Aufzeichnung) möglich.
* expecco: expecco von der Firma exept Software AG ist eine Testautomatisierungslösung zur Automatisierung von Tests für Desktop-, Web-Applikationen, mobile und non-GUI Anwendungen. Es wird vom gleichnamigen Unternehmen entwickelt und vertrieben. Captures können von Websessions und Mobilgeräten unverändert typischerweise aber nach Refaktorierung/Parametrisierung als Teil von Testsequenzen aufgenommen werden.
