In der Arbeit wird die Einführung automatisierter Tests grafischer Benutzeroberflächen (GUI-Tests) für Webanwendungen in einem industriellen Entwicklungsprozess untersucht. Ausgangspunkt ist eine unzureichende, überwiegend manuelle Testabdeckung, die den steigenden Anforderungen komplexer Webanwendungen nicht mehr gerecht wird. Es wird gezeigt, dass die GUI als zentrale Benutzerschnittstelle ein geeignetes Ziel für automatisierte Tests darstellt, insbesondere bei Nutzung moderner Architekturprinzipien wie MVC.
Zunächst werden Grundlagen der Anwendungsqualität, Softwaretests und Testautomatisierung erläutert. Qualität wird als wirtschaftliches Optimum verstanden, nicht als maximale Fehlerfreiheit. Verschiedene Testarten – darunter funktionale Tests, Regressionstests, Systemtests und Smoke-Tests – werden klassifiziert und hinsichtlich ihres Nutzens und ihrer Automatisierbarkeit bewertet. GUI-Tests werden als dynamische Black-Box-Tests beschrieben, deren Hauptzweck in der Überprüfung korrekter Interaktionen zwischen Oberfläche und Geschäftslogik liegt.
Auf Basis bestehender Vorgehensmodelle wird ein Evaluationsmodell entwickelt, das Anforderungen, Prozessintegration und Wirtschaftlichkeit verbindet. Durch eine Analyse des bestehenden Entwicklungsprozesses werden Optimierungspotenziale identifiziert, insbesondere im Bereich Standardisierung und Abnahme. Vier Integrationspunkte für GUI-Tests werden herausgearbeitet; der Einsatz im Systemtest wird als besonders geeignet bewertet.
Ein zentrales Element der Arbeit ist ein quantitatives Wirtschaftlichkeitsmodell, das mittels Monte-Carlo-Simulation Kosten, Nutzen und Risiken bewertet. Die Ergebnisse zeigen, dass die Wirtschaftlichkeit stark von Prozessparametern abhängt und ein signifikantes Risiko besteht, dass sich die Einführung nicht rechnet.
Abschließend werden mehrere Test-Tools analysiert und praktisch erprobt. Unter Berücksichtigung von Funktionalität, Bedienbarkeit und Kosten wird ein quelloffenes Tool als geeignete Option identifiziert, wobei gleichzeitig darauf hingewiesen wird, dass alternative Prozessverbesserungen möglicherweise größeren Nutzen bieten.
Inhaltsverzeichnis
1 Einleitung
2 Anwendungsqualität
2.1 Einordnung des Begriffs
2.2 Softwaretests
2.2.1 Fehlerreduktion
2.2.2 Organisatorische Aspekte
2.3 Klassifikation von Softwaretests
2.3.1 Regressionstest
2.3.2 Black-Box-Test
2.4 Testautomatisierung
2.4.1 Gründe für Testautomatisierung
2.4.2 Teilautomatisierter Test
2.4.3 Automatisierungstools
2.4.4 Automatisierbarkeit nach Testarten
3 Vorgehensmodelle zur Software-Evaluation
3.1 Softwareauswahlprozess bei [Unkenntlich]
3.2 Phasenmodell der Auswahl von Standardsoftware
3.3 Phasenmodell der methodischen Softwareauswahl
3.4 Auswahl und Evaluation nach quantitativen Aspekten
3.5 Auswahl eines Softwaretest-Tools
3.6 Methodische Zusammenführung
4 Aktivitäten zur Sicherung der Qualität in der Anwendungsentwicklung
4.1 Charakteristika
4.2 Ist-Analyse
4.2.1 Gestaltungsparameter der Prozessanalyse
4.2.2 Gestaltungsparameter der Prozessmodellierung
4.2.3 Ergebnis
4.3 Effizienz des Ist-Prozesses
4.3.1 Reifegradmodell für die Integration in die Entwicklung (CMMI-DEV)
4.3.2 Reifegrad des Ist-Prozesses
4.3.3 Verbesserungspotenzial des Ist-Prozesses
4.4 Bewertung der Aufwände
4.5 Integration von GUI-Tests in den bestehenden Prozess
4.5.1 Abnahmetestgetriebene Entwicklung
4.5.2 Systemtest
4.5.3 Smoke-Test
4.5.4 Abnahmetest
5 Wirtschaftlichkeit von Tests der grafischen Benutzeroberfläche
5.1 Kostenstruktur der Anwendungsentwicklung
5.2 Einführung
5.2.1 Verwendete Variablen und Symbole
5.2.2 Grundlegende Definitionen und Gleichungen
5.3 Entwicklungskosten
5.3.1 Entfallene Aufwände
5.3.2 Zusätzliche Aufwände
5.3.3 Veränderte Aufwände
5.4 Wartungskosten
5.5 Kundenseitige Gesamtbetriebskosten
5.6 Vereinfachungen
5.6.1 Entwicklerzahl
5.6.2 Anwendungszahl
5.6.3 Bad-Fix-Quote
5.6.4 Effektivität der einzelnen Testarten
5.6.5 Gesamtfehlerzahl
5.6.6 Wartungskosten
5.6.7 Fehlerbehebungskosten
5.6.8 Anzahl DOM-Elemente
5.6.9 Kostensatz Anwendungsentwickler
5.6.10 Statistisch bestimmte Größen
5.7 Wirtschaftsmodell
5.7.1 Vorgehensweise
5.7.2 Erzeugung normalverteilter Pseudo-Zufallszahlen
5.7.3 Monte-Carlo-Simulation
5.7.4 Ergebnis
5.8 Metriken zur Überprüfung auf Qualitätsverbesserung
6 Anforderungsdefinition
6.1 Grundlagen
6.2 Methodik
6.3 Anforderungsermittlung
6.3.1 Stakeholderanalyse und -klassifikation
6.3.2 Ermittlungstechniken
6.4 Anforderungsformulierung
6.4.1 Auswahl der Notationstechniken
6.4.2 Semantische Normierung
6.4.3 Bereinigung sprachlicher Transformationseffekte
6.5 Ergebnis
7 Softwareauswahl
7.1 Marktanalyse
7.2 Vorauswahl
7.3 Teststellung
7.3.1 Vorgehen
7.3.2 Durchführung
7.4 Wirtschaftlichkeit
7.5 Bewertung
7.6 Entscheidung
8 Fazit
Zielsetzung & Themen
Die vorliegende Arbeit untersucht die Einführung von automatisierten Tests für grafische Benutzeroberflächen (GUI-Tests) von Webanwendungen, um die Qualitätssicherung in Softwareentwicklungsprozessen zu verbessern. Das primäre Ziel ist die Entwicklung eines quantitativen Evaluationsmodells, das die Wirtschaftlichkeit solcher Testmaßnahmen analysiert und als Entscheidungshilfe für Unternehmen dient.
- Analyse des aktuellen Standes der Technik im Software-Testen
- Entwicklung eines methodischen Rahmens zur Tool-Evaluation
- Modellierung von Kostenstrukturen und Wirtschaftlichkeitsfaktoren
- Evaluation geeigneter Testwerkzeuge anhand definierter Anforderungen
Auszug aus dem Buch
Definition 2.3.7: Tests der grafischen Benutzeroberfläche (GUI-Tests)
Black-Box-Test (siehe Definition 2.3.2), der die grafische Benutzeroberfläche (GUI) einer Anwendung für Testaktivitäten benutzt.
Mit einem GUI-Test können unterschiedliche Testziele verfolgt werden. Er kann als funktionaler Test eingesetzt werden, um Fehler aufzudecken. Meist ist es vorteilhafter, die Funktionalität durch Komponententests abdecken zu lassen. Er kann aber auch zur Überprüfung der Ergonomie und Korrektheit von nicht-anwendungsspezifischen Standardfunktionalitäten der grafischen Benutzeroberfläche eingesetzt werden. Im Normalfall werden hierfür jedoch keine dedizierten Tests benötigt, da die Ergonomie und die Korrektheit bereits durch den Webdesigner beziehungsweise Compiler gewährleistet sind. Daher ist die wesentlichste Aufgabe von Tests der grafischen Benutzeroberfläche (GUI-Tests), zu überprüfen, ob die Bedienelemente auch mit den richtigen inhaltlichen Aktionen verbunden sind.
Der Einsatz von GUI-Tests wird erst unter Verwendung des Model-View-Controller-Musters in der Architektur der Anwendung wirklich sinnvoll. Denn dann ist eine saubere Trennung von Geschäftslogik, Datenhaltung und Oberfläche gegeben.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die Problematik unzureichender Qualitätssicherung bei wachsender Softwarekomplexität und definiert die Zielsetzung der Arbeit.
2 Anwendungsqualität: Legt die theoretischen Grundlagen fest, definiert den Qualitätsbegriff und klassifiziert verschiedene Softwaretest-Ansätze.
3 Vorgehensmodelle zur Software-Evaluation: Erarbeitet einen strukturierten Prozess zur Auswahl und Bewertung von Standardsoftware und Test-Tools.
4 Aktivitäten zur Sicherung der Qualität in der Anwendungsentwicklung: Analysiert den Ist-Zustand der Prozesslandschaft und zeigt Verbesserungsmöglichkeiten durch Integration neuer Testaktivitäten auf.
5 Wirtschaftlichkeit von Tests der grafischen Benutzeroberfläche: Führt ein mathematisches Modell zur quantitativen Bestimmung der Wirtschaftlichkeit unter Einbeziehung verschiedener Kosteneinflussfaktoren ein.
6 Anforderungsdefinition: Beschreibt die systematische Ermittlung und Formulierung von Anforderungen unter Berücksichtigung von Stakeholderbedürfnissen.
7 Softwareauswahl: Wendet das entwickelte Evaluationsmodell auf den konkreten Fall an, inklusive Marktanalyse und abschließender Tool-Entscheidung.
8 Fazit: Fasst die Ergebnisse zusammen und gibt eine Handlungsempfehlung sowie einen Ausblick auf zukünftige Entwicklungen.
Schlüsselwörter
Softwarequalität, GUI-Tests, Testautomatisierung, Wirtschaftlichkeitsanalyse, Anwendungsentwicklung, Prozessmodellierung, Software-Evaluation, Black-Box-Test, Regressionstest, Kosten-Nutzen-Analyse, Anforderungsmanagement, CMMI, Qualitätssicherung, Testwerkzeuge, Webanwendungen
Häufig gestellte Fragen
Worum geht es in dieser Bachelorarbeit grundsätzlich?
Die Arbeit befasst sich mit der Automatisierung von Tests für grafische Benutzeroberflächen bei Webanwendungen, um die Softwarequalität effizienter zu sichern.
Was sind die zentralen Themenfelder?
Die Schwerpunkte liegen auf Softwaretestmethoden, Prozessanalysen in der Entwicklung, Wirtschaftlichkeitsrechnungen für neue Testaktivitäten und dem Requirements Engineering.
Welches primäre Ziel verfolgt der Autor?
Ziel ist es, ein quantitatives Modell zu erstellen, mit dem Unternehmen bewerten können, ob sich die Einführung eines GUI-Test-Tools aus betriebswirtschaftlicher Sicht lohnt.
Welche wissenschaftliche Methode wird verwendet?
Es wird eine Kombination aus Literaturanalyse, Prozessmodellierung (BPMN), mathematischer Modellbildung (Kosten-Nutzen-Funktionen) und einer empirischen Tool-Evaluation (Monte-Carlo-Simulation) genutzt.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die theoretische Klassifikation von Tests, die Ist-Analyse von Entwicklungsprozessen, die mathematische Herleitung eines Wirtschaftsmodells sowie die praktische Tool-Auswahl anhand eines Lastenhefts.
Welche Schlüsselbegriffe charakterisieren die Arbeit?
Die Arbeit ist geprägt durch Begriffe wie Anwendungsqualität, Testautomatisierung, Wirtschaftlichkeitsmodell und Anforderungsdefinition.
Warum spielt das Model-View-Controller-Muster laut Autor eine wichtige Rolle für GUI-Tests?
Das Pattern erlaubt eine saubere Trennung von Logik, Daten und Oberfläche, was die Testbarkeit und Robustheit der grafischen Benutzeroberfläche maßgeblich erhöht.
Welche Rolle spielt die Monte-Carlo-Simulation für die Wirtschaftlichkeitsrechnung?
Da viele Variablen (wie Fehlerzahlen oder Aufwände) mit Unsicherheiten behaftet sind, dient die Simulation dazu, die Eintrittswahrscheinlichkeiten für die Wirtschaftlichkeit der Test-Investition realistisch abzuschätzen.
Was ist das zentrale Fazit bezüglich der Tool-Empfehlung für den untersuchten Fall?
Für den konkreten Anwendungsfall wird die Verwendung von Selenium empfohlen, da es bei vergleichsweise geringem Risiko das höchste Einsparpotenzial bietet.
- Quote paper
- Florian Reuss (Author), 2016, Automatisiertes Testen grafischer Benutzeroberflächen von Webanwendungen, Munich, GRIN Verlag, https://www.grin.com/document/1708424