Automatisiertes Testen
Ab heute wird automatisiert!
Testpyramide
Die Test- oder Automatisierungspyramide bietet eine Übersicht über die Einsatzhäufigkeit und Abhängigkeiten zwischen den einzelnen Testarten.
Für die Bereitstellung von hochwertiger Software und einer validen Automatisierungsstrategie müssen alle Ebenen bezüglich Automatisierung berücksichtigt werden. Der grösste Teil der Automatisierung sollte auf den untersten Ebenen (Unit- und Integrationstests) stattfinden.
Unit-Test
Bei einem Unit-Test (= Komponententest) wird ein einzelnes vom restlichen Kontext isoliertes System getestet. Dazu wird das zu testende System in einem dedizierten Testkontext geladen und alle Abhängigkeiten zum ursprünglichen Kontext werden durch Attrappen (Mocks, Stubs, Fakes und Ähnliches) ersetzt.
In agilen Vorgehensmodellen werden Unit-Tests als wichtiges Mittel zur Qualitätssicherung eingesetzt.
Integrationstest
Während beim Unit-Test nur ein System im Testkontext existieren darf, werden bei einem Integrationstest mehrere Systeme in diesen Kontext eingebunden. Der Integrationstest hat also das Ziel, Fehlerzustände in Schnittstellen und die Funktionalität der Systeme in ihrem Zusammenspiel zu überprüfen.
Wann Integrationstests?
Meist sind die Voraussetzungen für Unit-Tests nicht erfüllt, da zum Beispiel Abhängigkeiten nicht entkoppelt werden können.
Systemtest
Mit einem Systemtest wird das integrierte System gemäss den spezifizierten Anforderungen vom Produkt überprüft. Dabei wird sichergestellt, dass eine grafische Benutzeroberfläche die entsprechenden Funktionalitäten enthält und alle definierten Spezifikationen eingehalten werden.
Der Systemtest wird mit verschiedenen Testdaten auf einer Testumgebung durchgeführt, welche der späteren Produktivumgebung des Kunden möglichst nahe kommt.
Abnahmetest
Vor der Auslieferung der Software an den Kunden wird hinsichtlich der Benutzeranforderungen und -bedürfnisse ein sogenannter Abnahmetest (= Akzeptanztest) durchgeführt.
Testautomatisierung
Das Ziel der Testautomatisierung ist die Reduzierung der Anzahl manueller durchgeführter Tests. Hierbei geht es um die Erhöhung der Testabdeckung durch automatisierte Tests für die Qualitätssicherung.
Die Testautomatisierung bietet folgende Vorteile:
- Stabilere Software
- Erhöhte Kundenzufriedenheit
- Mittel- bis langfristige Kosteneinsparung
- Geringerer Testaufwand: Flexibler Einsatz der Ressourcen
- Unterstützung von Continuous Testing auf einem CI-Server (24/7) mit detaillierten Testberichten für die Fehleranalyse
- Grösserer Testumfang: Verbesserung der Testabdeckung durch datengetriebenes Testen
Literatur & Links
- [Ranorex 2019] https://www.ranorex.com/resources/testing-wiki/gui-testing, 2019
- [SwissQ 2019] https://swissq.it/de/news/wieviel-darf-testautomatisierung-kosten, 2019
- [Spillner & Linz 2012] Andreas Spillner, Tilo Linz: „Basiswissen Softwaretest“, 2012
- [Tielke 2018] David Tielke: „Die Welt des Testens“, 2018
Neueste Kommentare