Aus mehr als 200 Automatisierungsprojekten und der Zusammenarbeit mit unterschiedlichen Testabteilungen großer und mittelständiger Unternehmen hat Qytera sechs goldene Regeln für eine reibungslose Testautomatisierung erfasst.
Diese möchten wir gerne im Folgenden näher erläutern.
Was ist Testautomatisierung?
Testtools werden eingesetzt, um Testaktivitäten zu automatisieren. Unter Testautomatisierung versteht man allgemein den “Einsatz von Software zur Durchführung oder Unterstützung von Testaktivitäten” (ISTQB-Glossar).
Testautomatisierung kann theoretisch für alle Testarten eingesetzt werden.
Automatisierte Tests lassen sich nach ihren Zielen kategorisieren. Diese Kategorisierung führt zu verschiedenen Testarten:
- Unit-Tests
- Integrationstests
- API-Tests
- Funktionstests
- End-to-End-Tests
- Regressionstests
- Akzeptanztests
- Performancetests
- Lasttests
- Sicherheitstests
- Barrierefreiheitstests
- Smoke-Tests
Es ist wichtig zu beachten, dass nicht jede Testart automatisiert werden muss oder sollte. Die Entscheidung zur Testautomatisierung hängt von verschiedenen Faktoren ab – darunter der Projektkontext, das verfügbare Budget sowie Zeit und Ressourcen.
Automatisierte Softwaretests bedeuten für mich:
Mehr Zeit für neue Features statt nerviger Bugs und zufriedene Kunden 🚀🚀
... und dadurch die Softwarewelt ein Stück besser zu machen.
Warum Testautomatisierung?
In Zeiten von Microservices Architekturen und Cloud-Lösungen müssen Unternehmen immer kürzere Release-Zyklen bei gleichbleibender oder sogar steigender Softwarequalität meistern.
Die Softwarequalität ist ein zentraler Faktor für den Erfolg eines digitalen Produktes.
Die Folgeschäden von schlechter Softwarequalität, wie Reputationsverlust sowie der Verlust von Kunden und Umsatzeinbußen können dramatisch sein.
Testautomatisierung ist kein Selbstläufer: Sie funktioniert nicht alleine durch ihre Einführung. Es müssen Prozesse erstellt, Vorbereitungen getroffen und wichtige Punkte beachtet werden. Richtig implementiert führen automatisierte Tests zu mehr Effizienz und Qualität in der Entwicklung Ihres Softwareprodukts bei gleichzeitigen Zeit- und Ressourceneinsparungen. Damit die automatisierten Tests bei Ihrer Qualitätssicherung zum Erfolg führen, sollten Sie diese Tipps beachten, die wir Ihnen im Folgenden vorstellen.
1. Testbarkeit
Wichtig ist zunächst die Frage, ob und unter welchen Umständen eine Testautomatisierung möglich ist. Ihre Software wurde nicht für automatisierte Tests entwickelt, sondern für Funktionalitäten, die sie erfüllt. Eventuell müssen Sie keine Änderungen durchführen, vielleicht müssen Sie aber auch das Testobjekt anpassen, damit Testautomatisierung möglich ist. Unbedingt wichtig ist es, dass Sie auch in Zukunft daran denken, die Software bei Anpassungen testbar bleiben zu lassen.
2. Testarchitektur
Die klassische Testpyramide zeigt auch die sinnvollsten Bereiche der Testautomatisierung: die Basis bilden wie üblich die Komponenten- oder Unittests. Diese werden sehr schnell durchgeführt und auch die Entwicklung ist durch die Simplizität der zugrundeliegenden Prozesse meist schnell gemacht.
Die Integrationstests - im Bereich der Komponenten- oder Systemintegration - integrieren die neueste Programmierung erstmals automatisiert und dürfen deshalb auf keinen Fall vernachlässigt werden.
Die Automatisierung von Systemtests lohnt sich vor allem bei agilen Projekten mit häufiger Durchführung von Regressionstests.
Nicht in der Testpyramide enthalten, aber auch sehr wichtig und teils sehr gut automatisiert testbar, sind nicht-funktionale Tests. Vor allem Last- und Performancetests (z.B. mit Apache JMeter) können sehr gut automatisiert getestet werden.