Die Bedeutung von Softwaretests steigt im Software-Lebenszyklus immer weiter an. Durch kurze Entwicklungszyklen wird das manuelle Testen der einzelnen Komponenten und deren Integration schier unmöglich. Deshalb bietet sich die Automatisierung dieser Test nicht nur an, sondern wird existenziell um auch bei agilen Projekten die Qualität des (Zwischen)-Produktes sicherstellen zu können und um am immer weiterwachsenden Markt mithalten zu können. Die Testautomatisierung beschreibt dabei nicht nur das automatisierte Ausführen der Softwaretests, sondern beinhaltet auch die Automatisierung der anderen Komponenten des Softwaretests, wie die Erstellung von Testfällen, die Testdokumentation oder die Auswertung der Softwaretests. Der Fokus soll in dieser Ausarbeitung aber auf der Automatisierung der Erstellung und Ausführung von Softwaretests liegen.
Inhaltsverzeichnis
1. Einleitung
1.1 Grundlagen
1.2 Ansätze zur Testautomatisierung
1.2.1 Keyword-Driven Testing
1.2.1 Data-Driven Testing
1.2.2 Capture & Replay
1.3 Veränderung der Testpyramide
1.4 Motivation von Testautomatisierung
2. Continuous Integration (CI)
2.1 Vorteile von CI
2.2 Voraussetzungen für CI
2.3 Nachteile von CI
2.4 Continuous Delivery / Deployment
2.5 Circle-CI
2.6 Add-Ons für Circle-CI
3. Grenzen der Testautomatisierung
3.1 Technische Grenzen
3.2 Wirtschaftlichkeit
3.3 Weitere Probleme
3.4 Crowdtesting
4. Fazit
Zielsetzung & Themen
Diese Arbeit untersucht die Bedeutung der Testautomatisierung im modernen Software-Lebenszyklus, insbesondere im Kontext agiler Projekte. Ziel ist es, die methodischen Ansätze, die Integration in CI/CD-Pipelines sowie die ökonomischen und technischen Grenzen der Automatisierung aufzuzeigen.
- Grundlegende Ansätze wie Keyword- und Data-Driven Testing
- Die Evolution von der klassischen zur agilen Testpyramide
- Continuous Integration (CI) als Rückgrat der Testautomatisierung
- Einsatzmöglichkeiten von Circle-CI und ergänzenden Tools
- Die Grenzen automatisierter Tests und die Rolle von Crowdtesting
Auszug aus dem Buch
1.2 ANSÄTZE ZUR TESTAUTOMATISIERUNG
Im Folgenden möchte ich die Ansätze Data-Driven-Testing, Keyword-Driven-Testing und Capture&Replay vorstellen, die einem behilflich sein können, um seine Anforderungen an die Software zu validieren, indem man mit diesen Verfahren Tests erstellt, die sich gut für die Automatisierung eignen. Außerdem möchte ich auf das Robot-Framework genauer eingehen, mit welchem sich sehr einfach Tests zusammenbauen lassen.
Das Keyword-Driven Testing basiert darauf zu testende Abläufe in einzelne Keywords zu unterteilen. Einen Mehrwert bietet es vor allem dadurch, dass sich diese Keywords beliebig kombinieren lassen, wodurch sich auch ohne Programmierkenntnisse einfach Testfälle erstellen lassen. Dadurch dass die Tests so feingranular aufgeteilt sind, sind diese einfach zu warten, da die Tests bei einer Änderung im Produkt nur an einer Stelle geändert werden müssen und nicht an jeder Stelle, an der die Änderung getestet wird.
Ein Framework, welches das Konzept des Keyword-Driven-Testing umsetzt, ist das Robot Framework. Dieses bietet vordefinierte Keywords wie Log oder Take Screenshot, um die Testergebnisse zu dokumentieren, aber zum Beispiel auch boolesche Operatoren [18]. Außerdem stehen verschiedene Libraries bereit, die unteranderem die Einbindung von Selenium Browser-Tests oder Android-Tests erlauben. Die Keywords lassen sich um Argumente ergänzen, sodass man den gleichen Test mit verschieden Konfigurationen, wie zum Beispiel unterschiedlichen Browsern oder URLs laufen lassen kann, ohne dafür einen neuen Test schreiben zu müssen (siehe Abb. 1 & 2).
Zusammenfassung der Kapitel
1. Einleitung: Beschreibt die steigende Notwendigkeit automatisierter Softwaretests in agilen Projekten zur Qualitätssicherung bei kurzen Entwicklungszyklen.
2. Continuous Integration (CI): Erläutert die Integration von automatisierter Testausführung bei jedem Code-Check-In sowie die Vorteile und Voraussetzungen für ein effizientes CI-System.
3. Grenzen der Testautomatisierung: Diskutiert technische Einschränkungen, wirtschaftliche Aspekte sowie die Ergänzung durch manuelle Ansätze wie Crowdtesting.
4. Fazit: Resümiert die zentrale Rolle der Testautomatisierung für effiziente Feedback-Schleifen und betont die Bedeutung einer frühzeitigen Planung.
Schlüsselwörter
Testautomatisierung, Softwaretest, Continuous Integration, Robot-Framework, Keyword-Driven Testing, Data-Driven Testing, Agile Entwicklung, Testpyramide, Circle-CI, Qualitätssicherung, Software-Lebenszyklus, Crowdtesting, Code-Qualität, Regressionstests, Deployment.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit befasst sich mit der Testautomatisierung als wesentlichem Bestandteil moderner Softwareentwicklung, um manuelle Aufwände zu reduzieren und Qualität in agilen Projekten zu sichern.
Was sind die zentralen Themenfelder?
Die zentralen Felder umfassen verschiedene Automatisierungstechniken (Keyword/Data-Driven), CI/CD-Prozesse, Testpyramiden-Konzepte und die Abgrenzung zur manuellen Qualitätssicherung.
Was ist das primäre Ziel der Arbeit?
Das Ziel ist die Darstellung der Möglichkeiten und Grenzen der Testautomatisierung sowie deren Integration in den Software-Entwicklungsprozess.
Welche wissenschaftliche Methode wird verwendet?
Es handelt sich um eine Literatur- und Konzeptanalyse, die aktuelle Standards der Softwaretechnik und Testing-Methoden basierend auf existierender Fachliteratur zusammenführt.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in technische Ansätze, die Integration in CI-Umgebungen (am Beispiel von Circle-CI) und eine kritische Auseinandersetzung mit den Grenzen dieser Methoden.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die wichtigsten Begriffe sind Testautomatisierung, Continuous Integration, Robot-Framework, Agile Entwicklung und Testpyramide.
Warum ist die klassische Testpyramide in agilen Projekten oft ungeeignet?
In agilen Projekten führt ein hoher Anteil an manuellen UI-Tests zu einem zu hohen Wartungsaufwand, weshalb ein Wechsel hin zur agilen Pyramide mit Fokus auf Unit-Tests notwendig ist.
Welchen Mehrwert bietet Crowdtesting im Vergleich zu automatisierter Software?
Crowdtesting ermöglicht Tests durch reale Nutzer auf einer Vielzahl von Geräten, wodurch unvoreingenommene Perspektiven und Usability-Erkenntnisse gewonnen werden, die automatisierte Skripte nicht erfassen.
Wie unterstützt Circle-CI den Testprozess?
Circle-CI ermöglicht die Definition von Workflows, die bei jedem Upload den Code automatisch kompilieren, testen und bei Erfolg weiterführende Deployment-Schritte einleiten.
Welche Rolle spielen "Add-Ons" bei der Automatisierung?
Add-Ons wie Code Climate oder das Firebase Testing Lab erweitern die CI-Pipeline um Analysen zur Code-Qualität oder um automatisierte Tests auf realen Endgeräten.
- Quote paper
- Jan Harder (Author), 2020, Testautomatisierung. Automatisierung der Erstellung und Ausführung von Softwaretests, Munich, GRIN Verlag, https://www.grin.com/document/988377