Umfassende Software-Teststrategie: Von Unit-Tests bis Beta-Tests
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 5,35 KB
Software-Teststrategie und -Planung
Die Software wird getestet, um Fehler zu entdecken, die versehentlich bei der Konstruktion und Implementierung entstanden sind. Tests sind eine Reihe von Aktivitäten, die im Voraus geplant und systematisch durchgeführt werden müssen. Aus diesem Grund ist es notwendig, einen Prozess für das Software-Engineering als Vorlage für Softwaretests zu definieren.
Phasen der Teststrategie
- Testplanung
- Design von Testfällen
- Testlauf
- Sammlung und Auswertung
Eine Software-Teststrategie sollte Nachweise für Low-Level- und High-Level-Tests umfassen.
Definitionen im Softwaretest
- Prüfung (Testing): Eine Reihe von Aktivitäten, um sicherzustellen, dass die Software eine bestimmte Funktion korrekt implementiert.
- Validierung (Validation): Eine andere Reihe von Aktivitäten, um sicherzustellen, dass die integrierte Software den Anforderungen des Kunden entspricht.
Erst wenn die Software-Architektur abgeschlossen ist, kommt die unabhängige Test-Fraktion ins Spiel.
Rolle der unabhängigen Testgruppe (GIP)
Die Rolle der unabhängigen Testgruppe (GIP) ist es, Probleme aufzudecken, damit der Erbauer beweisen kann, was er aufgebaut hat.
Teststrategie für konventionelle Software-Architekturen
Die Teststrategie umfasst typischerweise folgende Fokuspunkte:
- Unit-Test (Test Drive): Konzentriert sich auf jede Einheit (Komponente) des Quellcodes.
- Integrationstest: Untersucht, wie die Komponente in das Design und die Software-Architektur integriert ist.
- Validierungstest: Die Anforderungen werden durch einen Vergleich mit der integrierten Software validiert.
- Systemtest: Die Software wird als Ganzes getestet.
Fokus des Unit-Tests
Der Unit-Test konzentriert sich auf die kleinste Einheit des Software-Designs: die Software-Komponente oder ein Modul. Dabei liegt der Fokus auf der internen Verarbeitungslogik und den Datenstrukturen innerhalb der Grenzen einer Komponente.
Details des Unit-Tests
- Schnittstelle (Interface): Sicherstellen, dass die Informationen korrekt nach außen und innen fließen.
- Lokale Datenverarbeitung (ED): Sicherstellen, dass die Datenintegrität während der Implementierung erhalten bleibt.
- Randbedingungen: Sicherstellen, dass die Software innerhalb der definierten Grenzen korrekt funktioniert.
- Unabhängige Pfade: Sicherstellen, dass alle Anweisungen mindestens einmal ausgeführt wurden.
- Fehlerbehandlungspfade: Sicherstellen, dass alle Wege der Fehlerbehandlung getestet werden.
Integritätstest
Das Ziel des Integritätstests ist es, die durch Unit-Tests geprüften Module zu nehmen und eine Programmstruktur zu erstellen, die den Vorgaben des Designs entspricht.
Integrationstests
Inkrementelle Integration
Es besteht oft die Tendenz, zu versuchen, alle Komponenten auf einmal zu integrieren. Das Programm wird als Ganzes geprüft, was zu Chaos führen kann. Viele Fehler treten auf, und deren Korrektur ist schwierig. Die inkrementelle Integration ist das Gegenteil: Es wird in kleinen Schritten aufgebaut und getestet, wodurch Fehler leichter isoliert und korrigiert werden können.
Integrationsansätze
- Integration in absteigender Reihenfolge: Module werden integriert, indem man sich an der Steuerungs-Hierarchie orientiert, beginnend mit dem Hauptsteuermodul (Hauptprogramm). Untergeordnete Module werden in die Struktur integriert.
- Integration in aufsteigender Reihenfolge: Der Aufbau und Test beginnt mit den Atom-Modulen.
Der Rauchtest (Smoke Test) ist ein Integrationsansatz, der häufig während der Entwicklung von Softwareprodukten verwendet wird. Er dient als Mechanismus zur Tempo-Kontrolle in Projekten, bei denen die Zeit kritisch ist.
Testphasen der Integration
Typische Testphasen umfassen:
- Benutzerinteraktion (Auswahl von Befehlen, Zeichnungen, Darstellung der Anwendung)
- Handhabung und Analyse von Daten (Erstellung von Symbolen, Zuweisung von Dimensionen)
- Verarbeitung und Erzeugung der Anwendung (Zwei- und dreidimensionale Darstellung, Bilder und Grafiken)
- Datenbankadministration (Zugriff, Aktualisierung, Integrität, Leistung)
Abnahmetests
Alpha-Test
Der Alpha-Test wird von einem Kunden am Entwicklungsstandort durchgeführt. Die Software wird natürlich mit dem Entwickler und Beobachtern verwendet, wobei Fehler und Probleme bei der Nutzung protokolliert werden. Der Alpha-Test wird in einer kontrollierten Umgebung durchgeführt.
Beta-Test
Der Beta-Test wird von den Endbenutzern der Software an den Arbeitsplätzen der Kunden durchgeführt. Im Gegensatz zum Alpha-Test ist der Entwickler in der Regel nicht anwesend. Der Beta-Test ist somit die Anwendung der Software in einer „Live“-Umgebung, die nicht vom Entwickler gesteuert werden kann.