Definition „Testautomatisierung“ Was ist Testautomation?
Anbieter zum Thema
Automatisierung macht in der IT viele Prozesse wesentlich einfacher und erlaubt es, Daten in großer Stückzahl zu produzieren. Bei der Testautomatisierung profitieren davon auch Developer und letztlich die User.

Ob vor einem Release, beim Update, dem Hinzufügen einer neuen Funktion oder nur in der gewöhnlichen Qualitätssicherung – jede Software muss getestet werden. Und während einige Tests von den Entwicklungsteams oder der Qualitätssicherung händisch angewendet werden sollten, gibt es auch Tests, die wiederholbar sind.
Vor allem bei diesen sogenannten Regressionstests kommt die Automatisierung ins Spiel. Je leichter und häufiger die Änderungen an einer Software oder einem System sind, desto eher kann Testautomatisierung sinnvoll sein.
Auch für die kürzeren Iterationen beim Agile Development ist Testautomation (der Begriff wird synonym zur Testautomatisierung verwendet) unverzichtbar. Doch ob die Testautomatisierung tatsächlich Zeit, Ressourcen und Geld einsparen kann, hängt auch von der Art des Testobjektes ab.
Testautomatisierung erklärt – warum Automation so wichtig ist
Software wird auf verschiedene Anforderungen hin getestet. Dazu zählen Sicherheit, Robustheit, Performance und natürlich Funktion.
Generell werden Softwaretests in drei Phasen unterteilt:
Unit Tests: Diese Art von Test testet alle Komponenten in Isolation, betrachtet diese also lediglich für sich und unabhängig von anderem Code in einer Software.
Integrationstests: Diese Tests prüfen die verschiedenen Schnittstellen zwischen einer Anwendung und dem System. Das Zusammenspiel der Komponenten wird hier getestet.
Akzeptanztests: Diese Art von Test zielt vor allem auf die Funktion einer Software ab und betrachtet die Software aus der Perspektive der Nutzerinnen und Nutzer. Auch die UI spielt hier eine Rolle und das Verhalten der User kann mit der gewünschten Nutzung abgeglichen werden.
Diese verschiedenen Phasen und Tests sind noch unabhängig davon, ob menschlich oder automatisiert getestet wird. Allerdings gibt es unterschiedliche Szenarien, die Testautomatisierung attraktiver machen. Hierzu zählt unter anderen Continuous Delivery, da hier auch Continuous Testing erforderlich ist.
Agile Methoden wie Scrum machen Testautomation zum Erfordernis, um Zeit und Ressourcen zu sparen und letztlich Messgrößen für Softwarequalität zu entwickeln, die auf einer größeren Zahl Daten basieren.
Testautomatisierung in Regressionstests
Manuelles Testen erfordert Zeit, Personal und natürlich ein entsprechendes Budget. Nahezu immer ist Testautomatisierung die effizientere Wahl, vor allem bei sogenannten Regressionstests.
In dieser Testart werden Updates in bereits getesteten Umgebungen und erstellt Datensätze, ob die Software mit einer neuen Funktionalität schneller, besser, stabiler läuft oder aber sich zurück entwickelt hat (Regression). Die hierbei entstehenden, quantifizierbaren Daten benötigen jedoch eine breite Grundlage und dies macht Testautomatisierung unausweichlich.
Das Ziel automatisierter Regressionstests ist es, ein höheres Maß an Objektivität bei der Softwarequalität zu haben und kontinuierlich ausgelieferte Versionen besser miteinander vergleichen zu können. Auch Nebeneffekte und Folgefehler durch neuen oder veränderten Code, die in einer Software nach Updates auftauchen können, werden durch automatisiert durchgeführte Tests besser
Der Einsatz der richtigen Tools
In der Praxis benötigt Testautomatisierung vor allem die passende Software. Neben Businesslösungen für größere Unternehmen, gibt es auch eine Zahl unterschiedlicher Open-Source-Projekte, die auch kleineren Unternehmen bei der Automatisierung helfen können.
In Fällen, in denen die passende Software nicht zur Verfügung steht, können Teams die richtigen Tools auch entwickeln und so mit eigener Software automatisierte Tests durchführen. Dabei stellt sich dann natürlich die Frage, inwieweit Aufwand und Nutzen noch im Verhältnis zueinander stehen und ob die Ressourcen des Development Teams nicht mit manuellen Tests effizienter genutzt würden.
Testautomatisierung in Agile-Szenarien und als Ergänzung zu menschlichen Tests
Insgesamt ist ein gewisses Maß an Testautomatisierung unabdinglich, zumal es in der Softwareentwicklung und in der Qualitätssicherung Kapazitäten schafft. Allerdings ist Testautomation auch kein Allheilmittel für bessere Tests und auch kein Ersatz für händisch durchgeführte.
Besonders vor der Fertigstellung einer Releaseversion, in einer Alpha- oder Beta-Phase ist Automatisierung oftmals nicht der richtige Testansatz. Die Änderungen fallen hier zu häufig und oft zu groß aus, der Code wird zu grundlegend geändert und für automatisiert erstellte Vergleiche fehlt die Basis vergleichbarer Versionen.
Letztlich dient Testautomatisierung – wie jede Form des Softwaretests – einer Verbesserung der Softwarequalität durch eine Verbesserung der Testqualität. Automatisierte Tests erlauben nicht nur die Durchführung von Tests in einer hohen Zahl, sondern auch die Durchführung von langwierigen Tests, die manuell überhaupt nicht ausgeführt werden könnten.
(ID:48563188)