se:softwaretest
**Dies ist eine alte Version des Dokuments!**
Sofware-Test
Beispiele für Softwarefehler
F-16 Kampfjet fliegt ab Äquator kopfüber weiter
Patriot-Abwehrsystem verfehl feindliche Rakete
Airbus A320 rast in Warschau über die Landebahn hinaus
Eröffnung des Denver International Airport muss verschoben werden
Mars Orbiter geht verloren
Jahr 2000-Problem
Sprengung der Ariane 5
Begriffe
Test ist ein organisierter Prozess
der mindestens aus Planung, Vorbereitung und Durchführung besteht,
zum systematischen Nachweis, dass ein System sich exakt so verhält, wie erwartet und
der sicherstellt, dass Abweichungen zwischen tatsächlichem und erforderlichem Systemverhalten so früh wie möglich identifiziert werden.
Ein Tester ist eine am Testprozess beteiligte Person. Er kann verschiedene Rollen annehmen: Testmanager, Testarchitekt, Testdesigner, Testsoftware-Entwickler, Testausführender
Testbasis: Ja nach Art des Tests etwa Kundenanforderungen, System- und Architekturspezifikationen, Quelltexte, UML-Diagramme etc. Aus der Testbasis werden Testfälle mit einzelnen Testschritten und erwarteten Ergebnissen abgeleitet.
Ein System realisiert im Zusammenspiel von Hardware und Software das Systemverhalten, wie es den Kundenanforderungen entspricht.
* Kunden sind Käufer eines Systems.
Anwender/Benutzer benutzen das System.
Grenzen von Tests
Komplette Tests sämtlicher Verzweigungen eines Programms sind nicht möglich (→ Kombinatorik)
Fehlerfreiheit kann nicht nachgewiesen werden.
Test ist ein Optimierungsproblem zwischen Zeit, Geld und Qualität → Maßstab: Kundenzufriedenheit
Test im Verlauf des Entwicklungsprozesses
Produktentwicklung nach V-Modell
Modul- / Komponententest
Schnittstellen müssen simuliert werden → Testtreiber
üblicherweise vom Entwickler selbst durchgeführt: Compiler, Debugger, Emulator/Simulator, statische Analyse, Automatisierungswerkzeuge
Integrationstest
Systemtest
Testbasis: Systementwurf / Anforderungen / Normen etc.
Ziel: Prüfen, ob das System den Anforderungen entspricht
Testumgebung sollte Produktivumgebung entsprechen (sonst Simulation)
Durchführung wieder durch spezialisiertes Testteam
Evtl. Test bei Pilotkunden: Betatest, Feldtest, Pilotbetrieb, controlled introduction
Qualitätsmerkmale nach ISO 9126
Funktionalität (Functionality)
Angemessenheit, Richtigkeit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit
Zuverlässigkeit (Reliability)
Benutzbarkeit (Usability)
Effizienz (Efficiency)
Zeitverhalten, Verbrauchsverhalten
Lasttest, Stresstest, Volumen-/Massentest, Performanztest
Wartungsfreundlichkeit (Maintainability)
Übertragbarkeit (Portability)
Abnahmetest
Ziel: Zusicherung an Kunden, dass Anforderungen erfüllt werden
Testbasis: zugesicherte Anforderungen des Kunden, Verträge, Produktdokumentation
Wird für jeden Kunden individuell vor Ort durchgeführt
Regressionstest
Regression: Funktionierende Funktionalität wird durch Änderung/Erweiterung beeinträchtigt
Änderungen/Erweiterungen: Fehlerbehebung in Entwicklung/Wartung, Hinzufügen von Feature(s) (in einem, mehreren Modulen)
Strategien
Auswahl repräsentativer Testfälle
Automatisierung
Regelmäßige Ausführung von Teiltests
Kompletter Test vor Auslieferung neuer Versionen
Austausch der Testfälle für die nächste Produktversion
ToDo
ToRead
Übungen
Übung 1.1: Überlegen Sie für das Beispiel der Ariane 5, welche der oben beschriebenen Fehler Sie als Testmanager hätten verhindern können und durch welche Maßnahmen. Geben Sie dabei auch an, welche dieser Maßnahmen ein besonders gutes Kosten-Nutzen-Verhältnis aufweisen. Beantworten Sie die Frage spontan mit Hilfe Ihres bisherigen Vorwissens. Kehren Sie im Laufe der nächsten Kapitel immer wieder zu dieser Übung zurück und überdenken Sie Ihre Antwort anhand dessen, was Sie gelernt haben.
Übung 1.2: Überlegen Sie, an welchen Stellen sich in der oben angegebenen Definition von Test die hervorgehobenen Elemente der älteren Definitionen wieder finden.
Übung 1.3: Suchen Sie nach öffentlich bekannten Beispielen, bei denen das Optimierungsproblem zwischen Zeit, Kosten und Qualität offensichtlich nicht erfolgreich gelöst wurde.
Übung 2.1: Erstellen Sie für das System aus dem Beispiel in Kapitel 2.1 (PC mit Betriebsystem und zwei Anwendungen) eine grobe Planung des Testablaufs: Welches sind die einzelnen Module (gegenseitige Abgrenzung), in welcher Reihenfolge werden die Module beim Integrationstest zusammengefügt, wie muss ein Systemtest und ein Abnahmetest aussehen?
Lernziele
Sie können prominente Beispiele benennen, die die Folgen von unzureichenden Tests belegen.
Anhand der Beispiele erkennen Sie, dass neben reinen Programmierfehlern vor allem Entwurfsfehler für eine Vielzahl von tragischen Softwareausfällen eine wesentliche Rolle spielen.
Sie erkennen, welchen Einfluss der Zeitpunkt der Entdeckung eines Fehlers auf seine Folgekosten hat.
Sie kennen die wichtigsten Begriffe zum Thema Test.
Sie können die Definition des Begriffs "Test" angeben und erläutern.
Sie verstehen anhand eines einfachen Beispiels, weshalb selbst bei kleinen Systemen ein vollständiger Test nicht möglich ist.
Sie können die grundlegenden Zielstellungen eines erfolgreichen Tests beschreiben.
Sie können beschreiben, wie eine Produktentwicklung abläuft, die einem Prozess nach dem V-Modell folgt.
Sie kennen die Aufgaben der unterschiedlichen Testphasen und können erklären, wodurch sich die einzelnen Phasen unterscheiden.
Sie können die unterschiedlichen Vorgehensweisen beim Integrationstest und ihre jeweiligen Vor- und Nachteile beschreiben.
Sie kennen die Qualitätsmerkmale nach der ISO-Norm 9126 und können ihre Bedeutung für den Systemtest darlegen.
Sie können die Notwendigkeit und Wichtigkeit eines Regressionstests begründen.
se/softwaretest.1207419943.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)