Wie automatisiere ich den Softwaretest bei Webanwendungen?

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

  • funktioniert sehr zuverlässig auch bei Formularen mit anderer ID-Nummer.
  • umfangreiche Dokumentation
  • kostenlos
  • Makros sind in der kostenlosen Version in der Länge begrenzt (maximale Länge 46 Zeilen)

 

Ü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:

 

Auch das Wiki auf Google-Code ist sehr zu empfehlen.

Vorteile

Nachteile

  • vielfältige Testbefehle
  • leicht erlernbare Proprietäre Programmierung mit Selenese
  • mächtiges Testwerkzeug über Programmiersprachen
  • unbegrenzte Länge von Test Cases
  • Management von Test Cases innerhalb verschiedener Test Suiten ohne doppelte Erstellung
  • Open-Source
  • weite Verbreitung
  • kostenlos
  • keine Unterstützung anderer Browser in der IDE, sondern nur mit Programmiererfahrung innerhalb des Selenium Webdrivers

 

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.

Schreibe einen Kommentar

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