Testautomatisierung: Vorteile, Tools und Tipps vom Experten

Autor: Hanno Rippe

Was versteht man unter der Testautomatisierung? 

Hochwertige Software wird heutzutage in einer hohen Taktzahl ausgeliefert. Um trotzdem eine gleichbleibend hohe Qualität und geringe Fehlerrate zu sichern werden Testautomatisierungen etabliert. Diese führen – wie der Name schon sagt – automatische Testfälle durch und erstellen Testreports.

Doch was genau zeichnet automatisierte Tests aus?

 

 

Warum überhaupt Tests automatisieren? 

Auch wir führen Testautomatisierungen durch um sicherzustellen, dass die entwickelte Software den Anforderungen des Kunden entspricht und wie erwartet funktioniert. Häufig muss lediglich geprüft werden, ob aufgrund der letzten Arbeiten an der Codebasis etwas schadhaft verändert worden ist. Mit steigender Komplexität der Software wird es immer schwieriger, alle potenziell vorhandenen Fehlerfälle manuell zu testen.

Theoretisch ist dies möglich, allerdings wäre es enorm zeitaufwändig. Die menschlichen Eigenschaften, wie zum Beispiel rasche Ermüdung und Konzentrationsschwächen, führen dazu , viele Fehler zu übersehen . Daher sind ausschließlich manuelle Tests nicht für häufige Releases geeignet, wie sie in der agilen Softwareentwicklung jedoch üblich sind.

Seit längerem gibt es deshalb Ansätze,  systematisch Tests zu entwickeln und diese sukzessiv zu automatisieren. Dieses Vorgehen gibt uns die Gewissheit, dass wir auf dem Weg der Implementierung eines Anwendungsfalles keine Fehler machen. Die automatisierten Tests stellen sicher, dass die wichtigsten Geschäftsprozesse nach Änderungen des Codes weiter korrekt funktionieren werden.

Zusätzlich wird durch die Testautomatisierung der gesamte Entwicklungsprozess beschleunigt. Nicht alle Schritte lassen sich automatisieren. In der Praxis hat sich gezeigt, dass eine Zusammenarbeit von automatisierten und manuellen Tests an den richtigen zuvor definierten Stellen die größtmögliche Sicherheit für technisch und fachlich korrekt funktionierende Software bietet.

Welche Vorteile bietet das automatische Testen genau?

Was sind die Vorteile von Testautomatisierungen? 

 

  • Das automatische Testen aller Prozesspfade, Felder und Szenarien ist zeit- und kostensparend
  • Mehrsprachige Websites können leichter getestet werden
  • Automatisierung erfordert kein menschliches Eingreifen. Die automatisierten Tests können unbeaufsichtigt durchgeführt werden (z.B. über Nacht).
  • Die Automatisierung erhöht die Geschwindigkeit der Testausführung
  • Durch die Automatisierung wird die Testabdeckung erhöht
  • Es besteht nicht die Gefahr, dass Tests zur Routine werden, da die Tests automatisch durchgeführt werden
Manuelles Testen Automatisiertes Testen
Manuelle Tests erfordern menschliches Handeln für die Testausführung.Beim Automatisierungstest werden Tools zum Ausführen von Testfällen verwendet
Manuelle Tests erfordern Fachkräfte, viel Zeit und verursachen hohe Kosten. Automatisierte Tests sparen Zeit, Kosten und Arbeitskräfte. Nach der Erstellung ist es einfacher, eine automatisierte Testsuite auszuführen
Jede Art von Anwendung kann manuell getestet werden. Bestimmte Testtypen wie Ad-hoc- und Affentests eignen sich besser für die manuelle Ausführung. Automatisierte Tests werden nur für stabile Systeme empfohlen und werden hauptsächlich für Regressionstests verwendet
Manuelle Tests können sich durch häufiges Wiederholen negativ auf die Konzentration auswirken und somit kein valides Ergebnis erzielen.Der langweilige Teil, immer wieder dieselben Testfälle auszuführen, wird von durch Automatisiertes Testen erledigt.

Was sollte vor der Durchführung von Testautomatisierungen beachtet werden? 

 

Um eine Strategie zur Umsetzung von Tests zu entwickeln ist es wichtig, vor dem eigentlichen Testen eine Teststrategieprozess zu finden und niederzuschreiben. Hier wird festgelegt, was die Ziele sind und wie diese erreicht werden sollen.

Folgende Schritte sind zur praktischen Umsetzung der Teststrategie notwendig:

  • Priorisierung und Bewertung der Kernfunktionalitäten der Anwendung (Was soll getestet werden?)
  • Tests schreiben, ordnen und organisieren (Einführen von Microsoft Azure Testplans)
  • Transparenz, Rückverfolgbarkeit und eine Kontrolle des Testprozesses schaffen, um qualitativ hochwertige Software bereitzustellen. (Integration der Tests in den agilen Kanban Workflow)
  • Automatisierte Prozesse zur regelmäßigen und dauerhaften Sicherung der Qualität aufbauen
  • Dokumentation des Fortschritts

Wie werden die Kernkomponenten bei Testautomatisierungen bestimmt? 

 

Um eine unbekannte Anwendung möglichst effektiv testen zu können ist es wichtig die Komponenten zu bestimmen, welche für das Automatisieren der Tests relevant sind.

Eine Möglichkeit besteht darin vorab für die einzelnen Elemente die Wahrscheinlichkeit der Fehlerhaftigkeit zu ermitteln, und die Schwere der Auswirkungen in diesem Fall zu definieren.

Die Elemente aus der Gruppe mit der kleinsten Risikoprioritätszahl werden intensiv getestet, die der folgenden Gruppen (mit steigendem Wert) in Abstufungen weniger intensiv getestet.

Gewicht++ 1+ 2o 3– 4–5Test
aufwands
klassi
fizierung
sehr hoch 1 123451 – intensiv
hoch 2 2468101 – intensiv
mittel 3 36912152 – solide
gering 4481216203 – oberflächlich
sehr gering 55101520204 – bei Gelegenheit