Automatisierte Tests

Automatisiert testen oder manuell?

Automatisierte Tests können viel früher als manuelle Tests im Entwicklungszyklus eingesetzt werden, um einzelne Methoden und Komponenten des entstehenden Produktes zu prüfen. Damit sinkt das Risiko erheblich, dass kritische Fehler erst spät entdeckt werden; die Gesamtqualität des Produktes steigt. Zusammengefasst: Manuelles Testen ist Pflicht, Testautomatisierung die Kür.

Die Vor- und Nachteile manueller Tests

Bei manuellen Tests fungieren unsere Tester als „echte Nutzer“ und sorgen so dafür, dass die Tests sehr realitätsnah sind.
Manuelle Tests decken deutlich mehr Fehler als das Automated Testing auf, weil Tester immer auch intuitiv agieren und von den geplanten Wegen durch die Anwendung abweichen können. Dazu kommt: Je erfahrener der Tester, desto besser ist meist auch seine persönliche „Testheuristik“ und damit die Erfolgsquote beim Auffinden von Fehlern.
Die Nachteile liegen allerdings auch auf der Hand: Manuelle Tests kosten mehr Zeit und Ressourcen, sie lassen sich nicht exakt wiederholen und sie liefern keine Zahlen zu Performance oder Systemverhalten.

Automatisierte Tests versus manuelle Tests

Vergleicht man die Vor- und Nachteile von manuellen und automatisierten Tests, zeigt sich deutlich, welche Strategie in welchem Kontext das beste Verhältnis zwischen Aufwand und Nutzen verspricht. Die grünen Bereiche in diesen Tabellen zeigen, wo die Stärken beider Varianten liegen.

Aufwände     Nutzen    
Aufwand hinsichtlich... Manueller Test Automatischer Test Nutzen hinsichtlich... Manueller Test Automatischer Test
Planung Mittel bis hoch Hoch Vollständigkeit (Testabdeckung) Mittel Sehr hoch
Einrichtung Mittel Mittel bis hoch* Aufdecken unerwarteter Fehler Sehr hoch Gering
Wartung Mittel Hoch Reproduzierbarkeit Mittel** Sehr hoch
Durchführung Sehr hoch Sehr gering Wiederholbarkeit Sehr gering Sehr hoch
Reporting Mittel bis hoch Gering      
Auswertung Hoch Gering      

* abhängig von der Systemkomplexität
**abhängig von Standardisierungsgrad und der Vollständigkeit der Fehlerberichte

Bei Projekten, die mehrere Software-Veröffentlichungen umfassen, haben automatisierte Tests klar die Nase vorn. Je länger ein Projekt läuft, desto wichtiger sind für die Qualitätssicherung automatisierte Testroutinen, die die Funktionsfähigkeit zu jedem Zeitpunkt überprüfen und abbilden können.
Dennoch gibt es auch hier einen Haken. Automatisierte Tests sind zwar unschlagbar, wenn es darum geht, die Korrektheit des Systems wieder und wieder auf definierten Pfaden zu demonstrieren. Sie können aber, im Gegensatz zum menschlichen Tester, nicht „destruktiv“ testen.
Denn neben dem Ziel, die geplanten Funktionalitäten unter definierten Bedingungen zu prüfen, wird natürlich auch getestet, um unerwartete Systemzustände vorsätzlich zu provozieren. Und das können Menschen einfach besser.
Was Menschen hingegen nicht können, sind nicht-funktionale Testverfahren wie z. B. ein Performance- und Last-Test oder die Überwachung der Systemumgebung. Diese und andere Tests können prinzipiell nur mit der Unterstützung entsprechender Tools ausgeführt werden.

Was sind automatisierte Tests?

Objektive Aussagen über den Reifegrad einer Software können nur dann zuverlässig getroffen werden, wenn ausreichend belastbare Daten über einen längeren Zeitraum vorhanden sind. Eine solche Datenbasis lässt sich mit einem manuellen Systemtest kaum schaffen. Hier kommen automatisierte Tests in Spiel. Für jede Entwicklungsstufe gibt es geeignete Testtypen, die klare Aussagen zum aktuellen Umsetzungsstand ermöglichen.

Unsere Leistungen

  • Erstellung von Testkonzepten zur optimalen Überprüfung von webbasierten Oberflächen
  • Implementierung von automatisierten Tests auf Basis des Selenium-Frameworks
  • Integration der Tests in ein Continuous Integration System
  • Automatische Ausführung der Tests mit vielen Browser/OS-Kombinationen
  • Umgebungsmonitoring: Überwachung der Lauffähigkeit von Entwicklungs- und  Live-Umgebungen inklusive genauer Problemallokation
  • Durchführung nicht-funktionaler Tests anhand bewährter Checklisten, die auf die projektspezifischen Anforderungen angepasst werden (z.B. Performance, Sicherheit, Modularität, Wartbarkeit)

Unsere Referenzen

  • Frontend-Tests für Smartshopping: Automatisierte Prüfung der Kernfeatures kurz vor und direkt nach jedem Release
  • Automated Testing und Monitoring für einen Marktführer im Touristikbereich