Für den erfolgreichen Test von Softwaresystemen sind geeignete Test- oder Dummydaten zwingend erforderlich, um mit dem System erfolgreich arbeiten und die Prüfspezifikationen verifizieren zu können. Außerdem sollten Tests regressionsfähig gemacht werden, um trotz gestiegenen Funktionsumfang der Software garantieren zu können, dass diese sich bei den alten Funktionalitäten immer noch genauso verhält. Im Folgenden beschreibe ich eine kostengünstige Methode zur Testautomatisation mit iMacros für Firefox und der Selenium IDE und vergleiche diese Tools.
Testsunterstützungssysteme für SOA-Architekturen
Eine mit Prozessengine ausgestattete Serviceorientierte Architektur (SOA) wird üblicherweise auf einem Webserver zentral gehostet und die Benutzerschnittstelle stellt meist eine im Webbrowser dargestellte Oberfläche dar. Als Beispiel für eine Open-Source-SOA-Plattform möchte ich activiti nennen, die auf BPMN basierende Prozesse mit der verwendeten Prozessengine verarbeiten kann. Auf http://www.bpm-guide.de/2010/11/19/camunda-w-jax-2010-screencasts-video/ ist unter „Activiti 5 – Eine Einführung“ in einem Screencast eine beispielhafte Oberfläche zu sehen.
Testunterstützungssystem als Lieferbestandteil im V-Modell XT
Wurde innerhalb des V-Modell XT / V-Modell XT Bund kein Testunterstützungssystem im Vertrag als Bestandteil der Lieferung definiert, muss sich der Auftraggeber über die Beschaffung eines eigenen Testunterstützungssystems Gedanken machen. Dabei ist eine Grundvoraussetzung für einen Softwaretest die Erzeugung von Testdaten. Dies kann mit den im folgenden vorgestellten kostenlosen Tools gut erledigt werden.
Testautomatisierung bei ISTQB
Gem. Kapitel 6.1.2 des ISTQB-Syllabus handelt es sich bei den im Folgenden beschriebenen Tools um Testausführungswerkzeuge. Es lohnt sich daher als angehender Certified Tester diese als Beispiele einmal zu testen.
Diese werden definiert als:
Diese Werkzeuge, ermöglichen eine automatische oder halbautomatische Ausführung von Tests unter Verwendung der gespeicherten Eingaben und der erwarteten Ausgaben mittels einer Skriptsprache. Normalerweise liefern sie für jeden Testlauf ein Protokoll. Sie können auch genutzt werden, um Tests aufzuzeichnen, und üblicherweise unterstützen sie Skriptsprachen oder eine GUI-basierte Konfiguration zur Parametrisierung der Daten oder für andere spezifische Anpassungen.
Über iMacros
iMacros ist ein Webtesting-Tool, mit dem Webseiten, die über einen Browser angezeigt werden, automatisiert (d.h. ohne manuelle Betätigung von Tastatur und Maus) mit einmal aufgezeichneten Makros gesteuert werden können. Hierbei wiederholt iMacros alle Aktionen, die der Benutzer bei der Aufzeichnung des Makros durchgeführt hat. Die weiteren Anwendungsgebiete können im englischsprachiges Wiki unter http://wiki.imacros.net/Main_Page nachgeschlagen werden.
iMacros ist als Addon für folgende Browser erhältlich:
Die offizielle Herstellerseite lautet: http://imacros.net/imacros/
Vorteile |
Nachteile |
|
|
Über die Selenium IDE
Ein anderes Tool ist die Selenium IDE als Addon für Firefox. Selenium ist ein Framework zur Erstellung von Tests für Webapplikationen wie z.B. Blogs, Webapps, Intranetportalen. Dabei wird die Webanwendung direkt über den Browser durch Selenium bedient. Es finden also keine Zugriffe auf die dahinter liegenden Schnittstellen statt, womit hier die Sicht eines Benutzers simuliert wird. Als Literatur ist das Buch „Selenium. Web-Applikationen automatisiert testen“ zu empfehlen.
Andere Browser werden nicht direkt über die IDE sondern seit Selenium 2.0 über den sog. Webdriver unterstützt. Um diesen erfolgreich benutzen zu können, sind jedoch Programmierkenntnisse in Java, C#, Ruby, Python, Perl oder PHP erforderlich. Über den Selenium Webdriver werden die folgenden Browser unterstützt:
- Firefox
- Internet Explorer
- Chrome
Der verfügbaren Pakete können hier eingesehen werden. Die Version 1.3.0 der Selenium IDE kann über diesen Link als Firefox Addon installiert werden. Die Dokumenation ist unter http://seleniumhq.org/docs/02_selenium_ide.html#introduction l verfügbar.
Für Leute, die eher visuell lernen, empfehle ich die folgenden kostenlosen Video-Tutorials auf Youtube, die das grundsätzliche Bedienkonzept der Selenium IDE anhand praktischer Beispiele vorstellen:
- Teil 1: http://www.youtube.com/watch?v=3BeK5aH2y3Q
- Teil 2: http://www.youtube.com/watch?v=jWDGM4eZqVw
- Teil 3: http://www.youtube.com/watch?v=7dC7eiDqytc
Auch das Wiki auf Google-Code ist sehr zu empfehlen.
Vorteile |
Nachteile |
|
|
Screencast
Hier folgt in Kürze ein entsprechender Screencast.
Verwendete Dateien:
Fazit
Mit ein wenig Einarbeitung in die Dokumentation können schon nach kurzer Zeit Akzeptanztests automatisiert werden. Dies spart viel Zeit und erhöht die Testabdeckung durch die so möglichen große Anzahl an automatisierten Regressionstests. Dadurch wird langfristig die Softwarequalität gesteigert und so die Nutzerakzeptanz erhöht.
Mein Persönlicher Favorit bei den 2 Testunterstützungssystemen ist klar Selenium. Dieses Tool ist Open-Source und sehr weit verbreitet, womit das erworbene Wissen auch leicht beim Test anderer Softwaresysteme angewendet werden kann. Die in der IDE erstellten Dateien sind im html-Format und damit gut wartbar. Durch den Einsatz von lösungsorientierten Hochsprachen wie Java oder C# kann die Testautomatisation beliebig verfeinert und skaliert werden, womit der Wartungsaufwand stark abnimmt.