Software wird immer komplexer, Terminvorgaben und Qualitätsansprüche steigen. Allerdings herrscht durch den Kostendruck Ressourcenknappheit. Dies wiederum wirkt sich auf die Qualität der Software aus, weil Unternehmen zumeist im Qualitätsmanagement sparen.
Die Grundparameter eines Projekts umfassen Leistung, Zeit und Einsatzmittel. Balzert leitet aus diesen Parametern die drei wesentlichen Anforderungen an jegliche industrielle Entwicklung ab: Funktionstreue, Termintreue und Kostentreue. In der Software-Entwicklung kommt zu diesen drei Parametern oft eine vierte Größe, die Qualität des Software-Produktes, hinzu. Diese vier Zielsetzungen werden als Teufelsquadrat (Abbildung 1) bezeichnet: „Sie konkurrieren um eine begrenzte Kapazität und Produktivität eines Betriebes, die durch das innere Viereck dargestellt werden“ und verhalten sich wie vier Parameter in einer quadratischen Gleichung mit jeweils zwei unabhängigen und zwei abhängigen Variablen.
Inhaltsverzeichnis
1 Einleitung
2 Definitionen
3 Was ist Testen
3.1 Definition Qualität
3.2 Definition Testen
3.3 Warum testen
3.4 Das V-Modell
3.5 Relative Kosten der Fehlerbehebung
4 Automatisiertes Testen
4.1 Definition: Automatisiertes Testen
4.2 Wann ist Testautomatisierung sinnvoll
4.3 Anwendungsgebiete von Testautomatisierung
4.4 Warum automatisiertes Testen
4.5 Praxis
5 Automatisierte oder manuelle Tests
5.1 Standards für das Design automatisierter Tests
5.1.1 Wann sollte das Design erfolgen?
5.1.2 Was sollte entworfen werden?
5.1.3 Wie erstellt man ein Design?
5.1.4 Modularität der Testfälle
5.1.5 Unabhängigkeit von Testfällen
5.1.6 Skriptsprache
5.1.7 Datenbanken von Testwerkzeugen
5.1.8 Vorlagen für Testfälle
5.1.9 Namenskonventionen
5.2 Standards für das Design manueller Tests
5.2.1 Namenskonventionen
5.2.2 Detailliertheit des Testfalls
5.2.3 Erwartetes Ergebnis
5.3 Wann rentiert sich Testautomatisierung?
5.4 Beispiel: Unterschied manueller und automatisierter Test
5.4.1 Feststellen des Aufwands für Testautomatisierung
5.4.2 Schätzung der reinen Ausführungszeit
5.4.3 Erstellen einer Schätzung für folgende Voraussetzungen
5.4.4 Berechnen des möglichen Zeitgewinns
5.4.5 Schätzen der Kosten und des Nutzens eines Tools
5.4.6 Erstellen eines vollständigen Kosten-Nutzen-Vergleichs
6 Kosten-Nutzen-Analyse
6.1 Erfassung der Kosten des Qualitätsmanagements
6.1.1 Grundproblematik der Kostenerfassung
6.1.1.1 Isolierte Qualitätsaktivitäten:
6.1.1.2 Integrierte Qualitätsaktivitäten:
6.2 Erfassung des Nutzens des Qualitätsmanagements
6.2.1 Grundproblematik der Nutzenerfassung
6.2.2 Erfassung des internen Nutzens
6.2.3 Erfassung des externen Nutzens
6.3 Einflüsse bei der Berücksichtigung des Nutzens
6.4 Bewertung in der Kosten-Nutzen- Matrix für Geschäftsfälle
6.5 Projektsteuerung mit Hilfe des Kosten-Nutzen-Koeffizienten
6.6 Veränderungen der Kosten-Nutzen-Matrix im Projektverlauf
6.7 ROI Berechnung:
6.7.1 Klassische ROI Analyse
6.7.2 Arten um den Nutzen von Funktionstests zu berechnen
6.7.3 ROI für einen einzelnen Testfall berechnen
6.7.4 Gesamtzahl von Probeläufen kalkulieren
6.7.5 Kombination von ROI für einen einzelnen Testfall und Anzahl der Testläufe
6.7.6 Berechnen von ROI für mehrere Testskripts
6.8 Praxis
6.9 Conclusio
7 Entscheidung zur Automatisierung
7.1 Allgemeine Erwartungen an automatisierte Tests
7.2 Mögliche Erwartungen, die das Testwerkzeug nicht erfüllt
7.2.1 Automatische Erstellung des Testplans
7.2.2 Automatische Erstellung der Testfälle
7.2.3 Es gibt ein ultimatives Testwerkzeug
7.2.4 Unmittelbare Verringerung des Testaufwands
7.2.5 Unmittelbare Verkürzung des Zeitplans
7.2.6 Benutzerfreundlichkeit des Testwerkzeugs
7.2.7 Automatisierung ist universell einsetzbar
7.2.8 Erreichung einer 100 %igen Testcoverage
7.2.9 Testautomatisierung findet mehr Fehler als manuelle Tests
7.3 Probleme beim Automatisieren
7.3.1 Unrealistische Erwartungen
7.3.2 Schlechte manuelle Tests
7.3.3 Wiederverwendbarkeit und Adaptierbarkeit der Tests
7.3.4 Technische Probleme
7.3.5 Organisatorische Probleme
7.4 Vorteile automatisierter Tests
7.4.1 Erstellung eines zuverlässigen Systems
7.4.2 Verbesserung der Testqualität
7.4.3 Reduzierung des Testaufwands und des Zeitplans
7.4.4 Vermeidung von Qualitätseinbrüchen bei einer neuen Lieferung
7.5 Unterstützung durch die Geschäftsführung
7.6 Zeitrahmen
7.7 Risiken in der Entscheidungsphase
7.8 Praxis
7.9 Conclusio
8 Auswahl des Testwerkzeugs
8.1 Anforderungen
8.1.1 Umgebung
8.1.2 Welche Probleme im Testprozess sollen gelöst werden?
8.1.3 Herausfinden von möglichen Lösungen
8.1.3.1 Manuelle Testprobleme
8.1.3.2 Keine Zeit für Regressionstests
8.1.3.3 Fehleranfälligkeit beim Erstellen von Testdaten und Testfällen
8.1.3.4 Mangelhafte Testdokumentation
8.1.4 Richtige Zeit für die Einführung
8.1.5 Wie viel Hilfe bringt das Testwerkzeug?
8.2 Beschränkungen
8.2.1 Hardware und Software
8.2.2 Einschränkungen des Anbieters
8.2.3 Kosteneinschränkung
8.2.4 Politische Einschränkung
8.2.5 Qualitätseinschränkung
8.3 Selbst entwickeln oder kaufen?
8.4 Bewertungskriterien
8.5 Marktübersicht
8.5.1 Mercury Interactive:
8.5.2 Rational:
8.5.3 Compuware:
8.5.4 Segue Software:
8.6 Welche Werkzeuge gibt es?
8.6.1 Testmanagement:
8.6.2 Capture-Replay:
8.6.3 Fehlermanagement:
8.6.4 Load-Tests:
8.6.5 Testfallgeneratoren:
8.6.6 Testdatengeneratoren:
8.6.7 Wartungskosten:
8.6.8 Vermietung von Software:
8.6.9 Überblick Anbieter:
8.7 Entscheidungsprozess
8.7.1 Vorauswahl
8.7.2 Produktpräsentationen
8.7.3 Auswahl
8.8 Pilotprojekt
8.9 Schulung
8.10 Zeitrahmen
8.11 Risiken in der Auswahlphase
8.12 Praxis
8.13 Conclusio
9 Einführung des automatisierten Testens
9.1 Analyse des Testprozesses
9.1.1 Analyse des bestehenden Prozesses
9.1.2 Testziele definieren
9.1.3 Teststrategien implementieren
9.1.3.1 Strategien zur Fehlervermeidung
9.1.3.2 Strategien zur Fehlererkennung
9.2 Überlegungen zum Testwerkzeug
9.2.1 Überprüfung der Systemanforderungen
9.2.2 Überprüfung des Projektzeitplans
9.2.3 Vorführung des Werkzeugs für das Projektteam, Umgang mit den Erfahrungen
9.2.4 Überblick über die zu testende Anwendung
9.2.5 Rollen und Verantwortlichkeiten
9.2.6 Schulungsanforderungen
9.3 Projektteam
9.3.1 Struktur des Testteams
9.3.1.1 Durchgangs-Testteam
9.3.1.2 Zentrales Testteam
9.3.1.3 UVV-Testteam (Unabhängiges Verifizieren und Validieren)
9.3.1.4 SMT-Testteam (System Methodology and Test)
9.3.2 Umfang des Testaufwands
9.3.2.1 Testreife Ebene 1 (Performed):
9.3.2.2 Testreife Ebene 2 (Managed):
9.3.2.3 Testreife Ebene 3 (Defined):
9.3.2.4 Testreife Ebene 4 (Quantitatively Managed):
9.3.2.5 Testreife Ebene 5 (Optimizing):
9.3.3 Bestimmung der Testteamgröße
9.3.4 Faktoren mit Einfluss auf den Testaufwand
9.3.5 Wichtigste Eigenschaften von Testingenieuren
9.3.6 Rollen und Verantwortlichkeiten im Testteam
9.4 Intern oder extern ?
9.5 Zeitrahmen
9.6 Risiken in der Einführungsphase
9.7 Praxis
9.8 Conclusio
10 Planung, Design und Entwicklung von Tests
10.1 Testplanung
10.1.1 Testplanungsaktivitäten
10.1.2 Anwendungsbereich der Tests
10.1.3 Testanforderungsmanagement
10.1.4 Beurteilen der Risiken von Testanforderungen
10.1.5 Prioritäten festlegen
10.1.6 Ereignisse, Aktivitäten und Dokumentation des Testprozesses
10.1.6.1 Ereignisse:
10.1.6.2 Aktivitäten:
10.1.6.3 Dokumentation:
10.1.7 Testumgebung
10.1.7.1 Vorbereitung der Testumgebung
10.1.7.2 Integration und Einrichtung der Testumgebung
10.1.8 Dokumentation des Testplans
10.1.9 Kriterien für die Akzeptanz der Testergebnisse
10.2 Testanalyse und –design
10.2.1 Analyse der Testanforderungen
10.2.2 Testdesign
10.2.2.1 White-Box-Techniken:
10.2.2.2 Black-Box-Techniken:
10.2.3 Testfälle entwerfen
10.2.3.1 Definition von Testfällen:
10.3 Entwicklung von Tests
10.3.1 Entwicklungsarchitektur für Tests
10.3.2 Richtlinien für das Entwickeln von Testfällen
10.3.3 Automatisierungsinfrastruktur
10.3.4 Testdaten
10.4 Zeitrahmen
10.5 Risiken in der Planungs-, Design- und Entwicklungsphase
10.6 Praxis
10.7 Conclusio
11 Ausführen und Verwalten von automatisierten Tests
11.1 Durchführung und Bewertung der Testphasen
11.2 Fehlerverfolgung
11.3 Verfolgung des Testfortschritts, Testabdeckung und Qualität des Testablaufs
11.4 Zeitrahmen
11.5 Risiken in der Ausführungs- und Verwaltungsphase
11.6 Praxis
11.7 Conclusio
12 Bewertung und Verbesserung des Testprozesses
12.1 Korrektur- und Verbesserungsmaßnahmen
12.2 Bewertung der Tests
12.3 Zeitrahmen
12.4 Risiken in der Bewertungsphase
12.5 Praxis
12.6 Conclusio
13 Leitfaden
13.1 Vorbedingungen
13.1.1 Tätigkeiten:
13.2 Entscheidungsphase
13.2.1 Tätigkeiten:
13.2.2 Zeitrahmen: (Kapitel 7.6)
13.2.3 Risiken: (Kapitel 7.7)
13.2.4 Möglichkeiten:
13.3 Auswahlphase
13.3.1 Tätigkeiten:
13.3.2 Zeitrahmen: (Kapitel 8.10)
13.3.3 Risiken: (Kapitel 8.11)
13.3.4 Wichtig:
13.3.5 Auswahl des Testwerkzeugs:
13.4 Einführungsphase
13.4.1 Tätigkeiten:
13.4.2 Zeitrahmen: (Kapitel 9.5)
13.4.3 Risiken: (Kapitel 9.6)
13.4.4 Wichtig:
13.4.5 Möglichkeiten:
13.5 Planungs-, Design- und Entwicklungsphase
13.5.1 Tätigkeiten:
13.5.2 Zeitrahmen: (Kapitel 10.4)
13.5.3 Risiken: (Kapitel 10.5)
13.5.4 Wichtig:
13.6 Durchführungsphase
13.6.1 Tätigkeiten:
13.6.2 Zeitrahmen: (Kapitel 11.4)
13.6.3 Risiken: (Kapitel 11.5)
13.6.4 Wichtig:
13.7 Bewertungsphase
13.7.1 Tätigkeiten:
13.7.2 Zeitrahmen: (Kapitel 12.3)
13.7.3 Risiken: (Kapitel 12.4)
13.7.4 Wichtig:
13.7.5 Möglichkeiten:
13.8 Projektplan
14 Conclusio
Zielsetzung & Themen
Das Hauptziel dieser Arbeit ist es, die Prozesse und Erfolgsfaktoren für die Einführung und den operativen Betrieb von Testautomatisierungs-Verfahren in IT-Unternehmen unter Berücksichtigung organisatorischer und betriebswirtschaftlicher Aspekte zu untersuchen. Die Arbeit soll hierbei als strukturierter Leitfaden fungieren, der Unternehmen bei der Entscheidungsfindung, der Auswahl von Testwerkzeugen, der eigentlichen Einführung sowie der anschließenden Analyse der Testergebnisse unterstützt.
- Grundlagen der Software-Testmethodik und Qualitätsmanagement
- Vergleich zwischen manuellem Testen und Testautomatisierung
- Kosten-Nutzen-Analyse und ROI-Berechnung für Testsoftware
- Strukturierte Vorgehensmodelle bei der Werkzeugauswahl
- Phasenbasierte Implementierung und Projektsteuerung im Testumfeld
Auszug aus dem Buch
Relative Kosten der Fehlerbehebung
Das Diagramm (Abbildung 5) zeigt die Wichtigkeit der Spezifikationsphase. Anhand empirischer Daten aus zahlreichen Projekten wurde ermittelt, dass die Kosten für die Beseitigung eines Fehlers exponentiell mit dem Abstand von der Spezifikationsphase steigen. Ein in der Spezifikationsphase entdeckter und behobener Fehler kostete 1,7, ein ähnlicher erst in der Integrationsphase gefundener, Fehler kostete bereits 28, bei einem Auffinden während des Betriebs fallen sogar 170 an. Dies entspricht dem 100-fachen der Kosten, die bei frühzeitigem Auffinden und Beheben des Fehlers aufgetreten wären. Hier besteht ein, zumeist nicht genutztes Einsparungspotential.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die zunehmende Komplexität der Softwareentwicklung und setzt das Ziel, die Einführung von Testautomatisierung aus organisatorischer und wirtschaftlicher Sicht zu beleuchten.
2 Definitionen: Bietet ein Glossar zu zentralen Fachbegriffen rund um das Thema Softwaretest, Qualitätssicherung und Testautomatisierung.
3 Was ist Testen: Definiert die Grundlagen von Softwaretests, erläutert das V-Modell als Testprozess-Framework und betont die Bedeutung früher Fehlererkennung zur Kostensenkung.
4 Automatisiertes Testen: Erläutert Definitionen und Einsatzgebiete der Testautomatisierung und begründet, warum diese für rationellere Abläufe im Qualitätsmanagement wichtig ist.
5 Automatisierte oder manuelle Tests: Vergleicht beide Testansätze, stellt Standards für das Testdesign auf und zeigt mittels Berechnungsbeispielen auf, ab wann sich Automatisierung wirtschaftlich rentiert.
6 Kosten-Nutzen-Analyse: Liefert die betriebswirtschaftliche Theorie zur Erfassung von Kosten und Nutzen des Qualitätsmanagements sowie Methoden zur ROI-Berechnung von Testskripts.
7 Entscheidung zur Automatisierung: Behandelt die Erwartungen an automatisierte Tests, zeigt Diskrepanzen zwischen Wunsch und Realität auf und beleuchtet die Rolle der Geschäftsführung.
8 Auswahl des Testwerkzeugs: Bietet einen strukturierten Prozess zur Anforderungsanalyse, Marktübersicht wichtiger Hersteller und Kriterien für die Auswahl geeigneter Werkzeuge.
9 Einführung des automatisierten Testens: Beschreibt den Prozess der Einführung, von der Analyse des Testprozesses bis hin zur Strukturierung von Projektteams für die Testentwicklung.
10 Planung, Design und Entwicklung von Tests: Detailliert die Planungsschritte, das Testanforderungsmanagement, die Erstellung von Testumgebungen sowie die Architektur der Testentwicklung.
11 Ausführen und Verwalten von automatisierten Tests: Behandelt die operative Durchführung, die Fehlerverfolgung mittels Fehlermanagement-Systemen und das Monitoring des Testfortschritts.
12 Bewertung und Verbesserung des Testprozesses: Fokussiert auf die Nachbereitung und stetige Prozessoptimierung durch Analyse gewonnener Erkenntnisse und Testmetriken.
13 Leitfaden: Zusammenfassung der vorangegangenen Kapitel in tabellarischer Form mit Tätigkeiten, Zeitrahmen, Risiken und Verantwortlichkeiten für jede Phase der Testautomatisierung.
14 Conclusio: Abschließende Betrachtung, die betont, dass Testautomatisierung ein kostenintensives Projekt ist, das eine präzise Planung und Unterstützung auf Managementebene erfordert.
Schlüsselwörter
Testautomatisierung, Software-Test, Qualitätsmanagement, ROI-Berechnung, Testprozess, Fehlervermeidung, Fehlererkennung, Testwerkzeuge, Testplanung, Testdesign, Softwareentwicklung, Wirtschaftlichkeit, Testabdeckung, Qualitätssicherung, Testteam.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit untersucht die organisatorischen und betriebswirtschaftlichen Herausforderungen bei der Einführung von Testautomatisierung in IT-Unternehmen.
Welche zentralen Themenfelder werden abgedeckt?
Die Schwerpunkte liegen auf dem Testprozess-Verständnis, der Wirtschaftlichkeitsanalyse (ROI) und den praktischen Schritten von der Werkzeugauswahl bis zur Implementierung.
Was ist das primäre Ziel der Forschungsfrage?
Ziel ist es, einen strukturierten Leitfaden für Unternehmen zu erstellen, um eine effiziente Einführung und den Betrieb von Testsoftware zu gewährleisten.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit basiert auf einer Literaturanalyse sowie Experteninterviews mit Herstellern, Anwendern und Beratungsunternehmen im Testumfeld.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in theoretische Grundlagen, Vergleichsanalysen, betriebswirtschaftliche Kosten-Nutzen-Bewertungen sowie eine detaillierte, phasenorientierte Vorgehensanleitung (Leitfaden).
Welche Schlüsselwörter charakterisieren die Arbeit?
Testautomatisierung, ROI-Berechnung, Software-Test, Qualitätsmanagement und Prozessoptimierung.
Warum scheitern manche Versuche der Testautomatisierung laut dem Autor?
Oft liegen die Gründe in unrealistischen Erwartungen, fehlender Strategie, schlechter Vorbereitung oder mangelnder Unterstützung durch die Geschäftsführung.
Wie lässt sich der Erfolg der Testautomatisierung nachweisen?
Der Erfolg wird maßgeblich über betriebswirtschaftliche Kennzahlen wie den Return on Investment (ROI) und einen Kosten-Nutzen-Koeffizienten quantifiziert.
- Quote paper
- Michael Menzel (Author), 2004, Einführung von Testsoftware im IT-Bereich. Eine organisatorisch betriebswirtschaftliche Betrachtung, Munich, GRIN Verlag, https://www.grin.com/document/44568