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
Testprozess
Testdokumentation
notwendig zur internen/externen Kommunikation, teils gesetzliche Aufbewahrungsfristen
Test Plan (Testplanung)
Test Design/Case/Procedure Specification (Testspezifikation)
Test Incident Report (Fehlerbericht)
Test Log, Test Summary Report (Ergebnisdokumentation)
Test Item Transmittal Report (Übergabeprotokoll)
Testplanung
Start zu Beginn des Projekts (Projekt ist genehmigt, Projektleiter benannt, Test-Projektleiter benannt, Mitarbeiter benannt)
Nach Umfang des Projekts Testmanager für jede Phase oder Gesamtprojekt
Master-Testplan
Testaktivitäten über alle Phasen hinweg
zeitliche und logistische Abhängigkeiten
Ziele und Schwerpunkte der einzelnen Phasen (Abgrenzung)
Ziel: Optimierung des zeitlichen Ablaufs und des personellen/materiellen Aufwands
Beispiel: teures Messgerät
Pläne der Testphasen werden aus Master-Testplan abgeleitet
Rahmenbedingungen klären: Termine, Personal etc. → Zeitplan
Testziele / -schwerpunkte
Ableitung aus ISO 9126: z.B. Vollständigkeit, Verfügbarkeit, Fehlertoleranz, Ergonomie, Wartbarkeit
Prioritäten
Notwendig aufgrund von Zeitdruck
Werden bei Projektstart definiert und müssen bei Teststart feststehen
Dynamik durch externe/interne Faktoren
Basis für Ressourcenzuteilung
Ziele
Bestmögliches Ergebnis auch bei Zeitmangel
Hauptfunktionen sind früh stabil
Schwewigende Fehler werden früh erkannt
Intensiver Test kritischer Bereiche
Wichtige Funktionen müssen nicht abgekündigt werden
Ermittlung von Prioritäten
Festgelegte Testschwerpunkte
Risikoanalyse
Kundenanforderungen
Komplexität der Funktionen
Zentrale Funktionen zuerst
Erfahrungswerte aus vorherigen Projekten
Subjektive Einschätzung
Sonstige Planung
Start/Ende der Testphasen
Testumgebung, ggf. Bestellung benötigten Materials (Hard-/Software, Messgeräte etc.)
Umgebung der Testautomatisierung, ggf. Bestellung der nötigen Werkzeuge
Planung der Testautomatisierung
Identifikation und Analyse von Projektrisiken
Frühe Testaktivitäten
Teilnahme an Insepktionen/Reviews
Embedded Systems: Testwerkzeuge erstellen
Teilnahme an Architektur-/Designsitzungen
Analyse und Testspezifikation
Festlegen der Testbasis → Testfälle ermitteln → Testspezifikation nach IEEE 829 (inkl. Angaben zur Automatisierung)
Sollwerte für Testfälle ermitteln
Vermeidung von Lücken/Redundanzen → Test Outline mit Review
Vorbereitung, Realisierung
Testausführung, Testauswertung, Ergebnisdokumentation
Teststart
Hilfsmittel und Material sind vorhanden
Infrastruktur läuft
Testspezifikation ist fertig
Software zur Automatisierung ist fertig
Akzeptanzkriterien erfüllt (Inspektion/bestimmte Testfälle/Abnahmetest durchgeführt)
Übergabe: Meeting oder Protokoll
Test kann beginnen
Testobjekt wird zurückgewiesen
Testobjekt wird akzeptiert, Test kann dennoch nicht beginnen
Testobjekt wird akzeptiert, Test kann evtl. nach Risikoanalyse beginnen
Test ist auf einzelne Funktionen des Testobjekts beschränkt
Evtl. Überstimmung durch Managemententscheidung
Interner Abnahmetest (Sanity Test)
Vollständigkeit
Installation in Testumgebung
Start-/ablauffähig?
Hauptfunktionen, wichtige Nebenfunktionen, Testfunktionen
Praktische Vorgehensweise
Vorgehen zunächst wie beim internen Abnahmetest
dann systematischer Test der einzelnen Module auf Basis der Testspezifikation
weitere Tests je nach den ersten Ergebnissen, niedrige Priorität
Intution
Protokollierung, Auswertung und Ergebnisdokumentation
automatische Protokolle (Logs)
Messergebnisse aufzeichnen
Protokollierung der Testsoftware
Ergebnisse der Testfälle (bestanden/nicht bestanden)
Testfortschritt aus Testfallergebnissen ermitteln
Fehlerbericht
Ist die Testspezifikation korrekt?
Läuft die Testinfrastruktur korrekt?
Arbeitet die Testsoftware korrekt?
Wurden die Testschritte korrekt durchgeführt?
Ziele der Protokollierung
Erfassung von Daten zur Fehleranalyse
Nachvollziehbarkeit aller Rahmenbedingungen
Wiederholbarkeit der Tests
Nachweis der durchgeführten Tests für Kunden etc.
Einhaltung von gesetzlichen Vorgaben
Änderungsprozess, Änderungsanforderung, Fehlerbericht
Gründe für Änderungen
Fehlerbeseitigung
Verbesserungswünsche
Funktionserweiterung
Funktionsergänzung
ToDo
Quellen für Softwarefehler-Beispiele suchen
Ariane 5-Beispiel genauer anschauen
Generischer Testprozess S. 33
Änderungsprozess S. 49
ToRead
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.
Sie können den typischen Ablauf eines Testprojekts beschreiben, das dem generischen Testprozess folgt.
Sie können ausführlich beschreiben, welche Aufgaben in den einzelnen Phasen des Testprozesses durchzuführen sind.
Sie kennen die unterschiedlichen Testdokumente, die im Standard IEEE Std 829-1998 beschrieben sind.
Sie können einen typischen Änderungsprozess beschreiben.
Ü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?
se/softwaretest.1207488836.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)