Der Systemtest 

 1. September 2011

Von den Anforderungen zum Qualitätsnachweis

Im Rahmen des Systemtests haben Tester dafür zu sorgen, dass Fehler in einer Software gefunden werden, ehe diese an die Anwender oder Kunden ausgeliefert wird. Sie testen dabei nicht nur die Software, sondern auch die implementierten Geschäftsprozesse und das System als Ganzes. Der Systemtest ist ein sehr komplexes Vorhaben, das eigene Methoden und Werkzeuge voraussetzt.
Mit diesem Buch erhalten Sie eine praktische Anleitung zur Planung, Organisation und Durchführung des Systemtests, egal ob Sie die Systeme gekauft, von Open-Source-Bibliotheken übernommen, aus Legacy-Systemen migriert oder neu entwickelt haben. Die Autoren zeigen, wie man ein Testprojekt effizient aufsetzt, welche Methoden und Ansätze praktikabel sind und wie sich der Testablauf integrieren und automatisieren lässt. Außerdem erhalten Sie einen Überblick über nützliche Werkzeuge für den Systemtest.

Die 3. Auflage trägt mit zwei neuen Kapiteln den aktuellen Entwicklungen im Systemtest Rechnung: Der modellbasierten Testspezifikation und der Testautomatisierung.

Autoren: Harry M. Sneed, Manfred Baumgartner, Richard Seidl

Verlag: Carl Hanser Verlag

ISBN: 978-3-446-42692-4

Edition: 3. Auflage

Inhaltsverzeichnis

1 Einführung in den Systemtest

1.1 Das Wesen eines Systemtests
1.2 Von Entwicklern und Anwendern zu Testern
1.3 Warum wir testen müssen
1.4 Ziele des Systemtests
1.5 Der Systemtestprozess
1.6 Systemtestnormen
1.7 Systemtestwerkzeuge
1.8 Systemtester
1.9 Zur Systemtestbarkeit
1.9.1 Testbarkeit der Anwendungsfälle
1.9.2 Testbarkeit der Benutzeroberflächen
1.9.3 Testbarkeit der Systemschnittstellen
1.9.4 Testbarkeit der Datenbanken
1.9.5 Testen ohne Benutzeroberfläche

2 Testanforderungsanalyse

2.1 Ansätze zur Formulierung der Anforderungen
2.1.1 Formale Spezifikation
2.1.2 Semiformale Spezifikation
2.1.3 Strukturierte Spezifikation
2.1.4 Informale Spezifikation
2.2 Ansätze zur Normierung der Anforderungen
2.3 Die Praxis der Anforderungsdokumentation
2.4 Das V-Modell-XT Lastenheft
2.5 Die Analyse natursprachlicher Anforderungen
2.6 Anforderungsbasierte Testfallermittlung
2.7 Ein Beispiel der Testfallermittlung
2.8 Zur Automatisierung der Testfallermittlung
2.9 Erfahrung mit der automatisierten Anforderungsanalyse

3 Modellbasierte Testspezifikation

3.1 Woher kommt das Modell?
3.1.1 Übernahme des Entwicklermodells
3.1.2 Erstellung eines eigenen Testmodells
3.1.3 Gewinnung eines Modells aus der Anforderungsdokumentation
3.1.4 Gewinnung eines Modells aus dem Code
3.2 Ableitung der Testfälle aus einem UML‑Modell
3.2.1 Testfälle aus den UseCase-Diagrammen
3.2.2 Testfälle aus den Sequenzdiagrammen
3.2.3 Testfälle aus den Aktivitätsdiagrammen
3.2.4 Testfälle aus den Zustandsdiagrammen
3.2.5 Vereinigung der Testfälle
3.3 Vom Testmodell zur Testausführung
3.4 Alternative zum modellbasierten Test
3.4.1 Testen gegen die Vorstellungen des Testers
3.4.2 Testen gegen das Benutzerhandbuch
3.4.3 Testen gegen die Anforderungsdokumentation
3.4.4 Testen gegen das bestehende System
3.5 Beurteilung des modellbasierten Testens
3.5.1 Modellbasiertes Testen im Vergleich mit Testen gegen die Testervorstellungen
3.5.2 Modellbasiertes Testen im Vergleich zum Testen gegen das Benutzerhandbuch
3.5.3 Modellbasiertes Testen im Vergleich zum Testen gegen ein bestehendes System
3.5.4 Testen gegen ein Modell im Vergleich zum Testen gegen die Anforderungsspezifikation
3.5.5 Der optimale Testansatz ist situationsbedingt

4 Systemtestplanung

4.1 Zweck der Testplanung
4.2 Voraussetzungen zur Testplanung
4.3 Schätzung der Testaufwände
4.3.1 Test-Points
4.3.2 Testproduktivität
4.3.3 Komplexität und Qualität
4.3.4 Die COCOMO-II Gleichung
4.4 Schätzung der Testdauer
4.5 Testprojektorganisation
4.5.1 Organisation der Testressourcen
4.5.2 Organisation des Testpersonals
4.6 Testrisikoanalyse
4.7 Festlegung der Testendekriterien
4.8 Gestaltung des Testplans nach ANSI/IEEE-829
4.8.1 Testkonzept-ID
4.8.2 Einführung
4.8.3 Zu testende Objekte
4.8.4 Zu testende Funktionen
4.8.5 Nicht zu testende Funktionen
4.8.6 Testvorgehensweise
4.8.7 Testendekriterien
4.8.8 Testabbruchkriterien
4.8.9 Testergebnisse
4.8.10 Testaufgaben
4.8.11 Testumgebung
4.8.12 Testverantwortlichkeiten
4.8.13 Testpersonalbedarf
4.8.14 Testzeitplan
4.8.15 Testrisiken und Risikomanagement
4.8.16 Genehmigungen
4.9 Die Prüfspezifikation nach V-Modell-XT
4.9.1 Einleitung
4.9.2 Prüfziele
4.9.3 Prüfobjekte
4.9.4 Prüffälle
4.9.5 Prüfstrategie
4.9.6 Prüfkriterien
4.9.7 Prüfergebnisse
4.9.8 Prüfaufgaben
4.9.9 Prüfumgebung
4.9.10 Prüffallzuordnung
4.9.11 Prüfaufwand
4.9.12 Risikovorkehrungen

5 Spezifikation der Testfälle

5.1 Aufbau der Testfälle
5.1.1 Das Testfallkennzeichen
5.1.2 Der Testfallzweck
5.1.3 Die Testfallquelle
5.1.4 Die Testanforderung
5.1.5 Der Testvorgang
5.1.6 Die Testobjekte
5.1.7 Die Testfallvorzustände
5.1.8 Die Testfallnachzustände
5.1.9 Die Vorgängertestfälle
5.1.10 Die Nachfolgetestfälle
5.1.11 Die Testumgebung
5.1.12 Die Testfallargumente
5.1.13 Die Testfallergebnisse
5.1.14 Der Testfallstatus
5.2 Darstellung der Testfälle
5.2.1 Testfälle im Textformat
5.2.2 Testfälle im Tabellenformat
5.2.3 Testfälle im XML-Format
5.2.4 Testfälle in einer formalen Sprache – TTCN
5.3 Erstellung der Testfälle
5.3.1 Generierung der Grunddaten aus dem Anforderungstext
5.3.2 Ergänzungen der Testfälle
5.4 Speicherung der Testfälle
5.4.1 Testfälle als Texte
5.4.2 Testfälle als Tabellen
5.4.3 Testfälle als XML-Format
5.5 Qualitätssicherung der Testfälle
5.5.1 Testfallquantität
5.5.2 Messung der Testfallkomplexität
5.5.3 Messung der Testfallqualität
5.6 Überführung der Testfälle in einen Testentwurf
5.7 Wartung und Weiterentwicklung der Testfälle

6 Bereitstellung der Testdaten

6.1 Testdatenquellen
6.1.1 Die Anforderungsdokumentation als Quelle von Testdaten
6.1.2 Das Entwurfsmodell als Quelle von Testdaten
6.1.3 Der Source-Code als Quelle von Testdaten
6.1.4 Die alten Testdaten als Quelle von Testdaten
6.1.5 Die Produktionsdaten als Quelle von Testdaten
6.1.6 Die fachlogischen Testfälle als Quelle von Testdaten
6.2 Testdatenobjekte
6.3 Testdatenerstellungsansätze
6.3.1 Der blinde Ansatz zur Testdatenerstellung
6.3.2 Der gezielte Ansatz zur Testdatenerstellung
6.3.3 Der kombinierte Ansatz
6.3.4 Der Mutationsansatz
6.4 Testdatentypen
6.4.1 Datenbanken
6.4.2 Systemschnittstellen
6.4.3 Benutzeroberflächen
6.5 Testdatengenerierung
6.5.1 Datengenerierung aus den Testfällen
6.5.2 Datengenerierung aus Testprozeduren
6.5.3 Datengenerierung aus dem Source-Code
6.5.4 Datengenerierung aus vorhandenen Daten
6.6 Werkzeuge für die Testdatengenerierung
6.6.1 Datenbankgeneratoren
6.6.2 Schnittstellengeneratoren
6.6.3 Oberflächengeneratoren

7 Systemtestausführung

7.1 Systemtypen
7.1.1 Alleinstehende Systeme
7.1.2 Integrierte Systeme
7.1.3 Verteilte Systeme
7.1.4 Web-basierte Systeme
7.1.5 Service-orientierte Systeme
7.1.6 Vollautomatische Systeme
7.1.7 Eingebettete Echtzeitsysteme
7.2 Test alleinstehender Systeme
7.3 Test integrierter Systeme
7.3.1 Funktionstest
7.3.2 Belastungstest
7.3.3 Benutzbarkeitstest
7.4 Test verteilter Systeme
7.4.1 Interaktionstest
7.4.2 Testverfolgung im Netz
7.4.3 Sicherheitstest
7.5 Test Web-basierter Systeme
7.5.1 Test der Web-Architektur
7.5.2 Test der Web-Anwendung
7.6 Test Service-orientierter Systeme
7.6.1 Vorbereitung des Servicetests
7.6.2 Ausführung des Web Service-Tests
7.6.3 Simulierter Test der Geschäftsprozesse
7.6.4 Integration der Services mit den Geschäftsprozessen
7.7 Test vollautomatisierter Systeme
7.7.1 Werkzeuge für den automatisierten Test
7.7.2 Tester für den automatisierten Test
7.8 Test eingebetteter Systeme
7.9 Kein System ist wie das andere

8 Auswertung des Systemtests

8.1 Zweck der Testauswertung
8.2 Auswertung der Testergebnisse
8.2.1 Sichtbare und unsichtbare Ergebnisse
8.2.2 Möglichkeiten der Ergebniskontrolle
8.2.3 Begründung der Ergebniskontrolle
8.2.4 Automatisierte Ergebniskontrolle
8.3 Messung der Testüberdeckung
8.3.1 Testüberdeckungsmaße
8.3.2 Function-Point-Überdeckung
8.3.3 Anforderungsüberdeckung
8.3.4 Überdeckung bisheriger Funktionalität
8.3.5 Fehlerüberdeckung
8.4 Fehleranalyse
8.4.1 Fehlerlokalisierung
8.4.2 Fehlermeldung
8.5 Systemtestmetrik
8.5.1 Testüberdeckungsmaße
8.5.2 Fehleranalysemaße
8.5.3 Messung der Testeffektivität
8.6 Systemtestmessung in der Praxis

9 Testpflege und ‑fortschreibung

9.1 Analyse der Änderungsanträge (CRs)
9.2 Fortschreibung und Optimierung des Testplans
9.2.1 Fortschreibung der Testziele
9.2.2 Fortschreibung der Testobjekte
9.2.3 Fortschreibung der zu testenden Funktionen
9.2.4 Fortschreibung der Teststrategie und Testendekriterien
9.2.5 Fortschreibung der Testergebnisse
9.2.6 Fortschreibung der Testaufgaben
9.2.7 Fortschreibung des Personalplanes
9.2.8 Fortschreibung der Testrisiken
9.2.9 Rekalkulation der Testkosten
9.3 Impaktanalyse der Software
9.3.1 Statische Impaktanalyse
9.3.2 Dynamische Impaktanalyse
9.4 Fortschreibung der Testfälle
9.4.1 Spezifikation neuer Testfälle
9.4.2 Anpassung bestehender Testfälle
9.5 Anreicherung der Testdaten
9.5.1 Direkte Anreicherung der Daten
9.5.2 Indirekte Anreicherung der Daten
9.6 Ausführen des Regressionstests
9.6.1 Eigenarten eines Regressionstests
9.6.2 Der Test im Dialogmodus
9.6.3 Der Test im Batch-Modus
9.6.4 Testautomatisierung beim Regressionstest
9.7 Auswertung des Regressionstests
9.7.1 Kontrolle der Regressionstestüberdeckung
9.7.2 Kontrolle der Regressionstestergebnisse
9.7.3 Protokollierung der Regressionstestergebnisse
9.8 Automatisierung des Regressionstests
9.9 Der Regressionstest in Migrationsprojekten
9.9.1 Voller Regressionstest
9.9.2 Selektiver Regressionstest

10 Systemtestautomation

10.1 Ein Modell für die Testautomatisierung
10.1.1 Testeingaben
10.1.2 Testausgaben
10.1.3 Testobjektbeziehungen
10.2 Testereignisse
10.2.1 Planende Testereignisse
10.2.2 Vorbereitende Testereignisse
10.2.3 Ausführende Testereignisse
10.2.4 Abschließende Testereignisse
10.2.5 Zusammenfassung der Testereignisse
10.3 Zur Automation der Testereignisse
10.3.1 Automatische Ableitung der logischen Testfälle aus der Anforderungsdokumentation
10.3.2 Automatisierte Erzeugung eines Testplans
10.3.3 Automatische Erstellung eines Testentwurfs
10.3.4 Automatische Generierung der Testdaten
10.3.5 Automatisierte Erzeugung physikalischer Testfälle
10.3.6 Automatische Generierung der Testprozeduren
10.3.7 Automatische Instrumentierung des Codes
10.3.8 Die automatische Testausführung
10.3.9 Die automatische Ergebnisprüfung
10.3.10 Automatische Kontrolle der Testüberdeckung
10.3.11 Automatisch generierte Testmetrik
10.4 Voraussetzungen der Testautomation
10.4.1 Formalisierung der Anforderungsspezifikation
10.4.2 Standardisierung der Testdokumente
10.4.3 Definition der Datenwertebereiche
10.4.4 Qualifizierung der Tester
10.5 Systemtestautomation als eigenständiges Projekt
10.5.1 Erste Automatisierungsstufe
10.5.2 Zweite Automatisierungsstufe
10.5.3 Dritte Automatisierungsstufe
10.5.4 Vierte Automatisierungsstufe
10.5.5 Fünfte Automatisierungsstufe
10.6 Alternative zum automatisierten Test
10.6.1 Erste Alternative = weniger Testen
10.6.2 Zweite Alternative = massiver Personaleinsatz
10.7 Vergangenheit und Zukunft der Testautomation

11 Werkzeuge für den Systemtest

11.1 Werkzeugkategorien – Einsatzgebiete
11.2 Funktionalität und Auswahlkriterien
11.3 Werkzeuge aus Projekten: Der Testarbeitsplatz

12 Testmanagement

12.1 Notwendigkeit des Systemtestmanagements
12.2 Hauptaufgaben des Systemtestmanagements
12.2.1 Testplanung und Umsetzung des Testkonzeptes
12.2.2 Laufendes Controlling aller Testaktivitäten
12.2.2.1 Inhaltscontrolling
12.2.2.2 Controlling der Planungsgrößen
12.2.2.3 Controlling der Testendekriterien
12.2.3 Sicherstellung der Qualität der Testergebnisse
12.2.3.1 Qualität des Testdesigns und der Testfälle
12.2.3.2 Qualität der Protokollierung der Testdurchführung
12.2.3.3 Qualität des Fehlermanagements
12.3 Testprozessmanagement
12.3.1 Testprozessgestaltung
12.3.2 Testprozessreife
12.4 Testteamführung

13 Anhang

13.1 Anhang A: Testplan nach ANSI/IEEE-829
13.2 Anhang B1: Schema für die Testfallspezifikation
13.3 Anhang B2: Beispiel einer Testfallspezifikation für den Test der Auftragsbearbeitung
13.4 Anhang C1: Testdatengenerierungsskript
13.5 Anhang C2: Testergebnisvalidierungsskript