Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
se:softwaretest [2008-04-09 18:47] stefan |
se:softwaretest [2014-04-05 11:42] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Sofware-Test ====== | ====== Sofware-Test ====== | ||
- | |||
===== Klausurvorbereitung ===== | ===== Klausurvorbereitung ===== | ||
+ | |||
==== Begriffe Test ==== | ==== Begriffe Test ==== | ||
+ | * Definition Test, Testbasis, System, Tester, Kunde, Benutzer | ||
+ | * Warum kann die Fehlerfreiheit eines Programms nicht nachgewiesen werden? | ||
+ | * Test als Optimierungsproblem | ||
+ | |||
+ | |||
==== Test im Verlauf des Entwicklungsprozesses ==== | ==== Test im Verlauf des Entwicklungsprozesses ==== | ||
- | * Qualitätsmerkmale ISO 9126 | + | * Phasen des V-Modells |
+ | * Modultest | ||
+ | * Integrationstest | ||
+ | * Strategien (5) | ||
+ | * Systemtest | ||
+ | * Abnahmetest | ||
+ | * Regressionstest | ||
+ | * Änderungsszenarien (5) | ||
+ | * Strategien (5) | ||
+ | * Arten von Tests (5) | ||
+ | * Qualitätsmerkmale ISO 9126 (6) | ||
+ | * Funktionalität (5) | ||
+ | * Zuverlässigkeit (3) | ||
+ | * Benutzbarkeit (3) | ||
+ | * Effizienz (2) | ||
+ | * Wartungsfreundlichkeit (3) | ||
+ | * Übertragbarkeit (4) | ||
==== Verfahren zur Ermittlung von Testfällen ==== | ==== Verfahren zur Ermittlung von Testfällen ==== | ||
+ | * Ziele (3) | ||
+ | * Definition White-/Black-Box-Test, formal/nichtformal, Beispiele für Kategorien | ||
+ | * Definition Testabdeckung, Berechnungsbeispiele, Messung | ||
+ | * Grundlegende Vorgehensweise (6 Schritte) | ||
+ | * Verfahren | ||
+ | * funktionale Analyse (4 Eigenschaften) | ||
+ | * funktionale Wechselwirkungsanalyse | ||
+ | * Anwendungsanalyse/Geschäftsprozessanalyse | ||
+ | * Äquivalenzklassen (4 Schritte, 3 Methoden zum Reduzieren der Testfälle) | ||
+ | * Grenzwertanalyse | ||
+ | * Real-Life-Test | ||
+ | * intuitiver Test | ||
+ | * Smoke-Test | ||
+ | * Anweisungsüberdeckung | ||
+ | * Zweigüberdeckung | ||
+ | * Bedingungsüberdeckung | ||
+ | * Definition atomare Teilbedingung | ||
+ | * einfache Bedingungsüberdeckung | ||
+ | * Mehrfachbedingungsüberdeckung | ||
+ | * minimale Mehrfachbedinungsüberdeckung | ||
+ | * Pfadanalyse, Definition Pfad | ||
+ | * Basispfadanalyse, Definition Basispfad | ||
+ | * Zustandsanalyse, Vorgehen (3 Schritte) | ||
+ | * Ursache-Wirkungs-Analyse und Entscheidungstabellen | ||
+ | * Vorgehensweise (6 Schritte) | ||
+ | * Umwandlung in Entscheidungstabelle (4 Schritte) | ||
+ | * Zufallswerte | ||
+ | * Roman-Arches | ||
+ | |||
==== Testautomatisierung ==== | ==== Testautomatisierung ==== | ||
+ | * Motivation (8 Gründe) | ||
+ | * Nachteile (5) | ||
+ | * Voraussetzungen (4) | ||
+ | * Automatisierung von Kommandozeile/GUI/Messgeräten | ||
+ | |||
+ | |||
==== Testprozess ==== | ==== Testprozess ==== | ||
- | * Generischer Testprozess | + | * Generischer Testprozess (7 Schritte) |
- | * Ziele und Schwerpunkte | + | * Testdokumente (8), Zuordnung zu Testphasen |
+ | * Testplanung | ||
+ | * Startbedingungen (4) | ||
+ | * Master-Testplan (5 Inhalte, Ziel) | ||
+ | * Beispiele für Testziele/-schwerpunkte | ||
+ | * Prioritäten (3 Eigenschaften, 5 Ziele, 7 Kriterien) | ||
+ | * Sonstige Planungsthemen (7) | ||
+ | * Frühe Testaktivitäten (3) | ||
+ | * Testspezifikation (3 Schritte) | ||
+ | * Vorbereitung (2 Punkte) | ||
+ | * Durchführung | ||
+ | * Start (8 Kriterien) | ||
+ | * Ergebnisse der Akzeptanzprüfung (8) | ||
+ | * Interner Abnahmetest (6 Schritte) | ||
+ | * Praktische Vorgehensweise | ||
+ | * Grundsätze intuitiver Tests (3) | ||
+ | * Protokollierung | ||
+ | * Möglichkeiten (5) | ||
+ | * Fehlerprotokoll (4 Prüfungen) | ||
+ | * Ziele (5) | ||
+ | * Änderungsprozess | ||
+ | * Gründe für Änderungen (4) | ||
+ | * Fehlerbericht (3 Regeln) | ||
+ | * Informationen (13) | ||
+ | * Testende (4 Kriterien) | ||
+ | * Übergabe (3 Inhalte) | ||
+ | * Abschlussarbeiten (4) | ||
==== Beispiele für Softwarefehler ==== | ==== Beispiele für Softwarefehler ==== | ||
Zeile 36: | Zeile 120: | ||
* Komplette Tests sämtlicher Verzweigungen eines Programms sind nicht möglich (-> Kombinatorik) | * Komplette Tests sämtlicher Verzweigungen eines Programms sind nicht möglich (-> Kombinatorik) | ||
* Fehlerfreiheit kann nicht nachgewiesen werden. | * Fehlerfreiheit kann nicht nachgewiesen werden. | ||
- | * Test ist ein Optimierungsproblem zwischen Zeit, Geld und Qualität -> Maßstab: Kundenzufriedenheit | + | * Test ist ein Optimierungsproblem zwischen Zeit, Geld und Qualität -> **Maßstab: Kundenzufriedenheit** |
===== Test im Verlauf des Entwicklungsprozesses ===== | ===== Test im Verlauf des Entwicklungsprozesses ===== | ||
* Produktentwicklung nach V-Modell | * Produktentwicklung nach V-Modell | ||
* konstruktive Phasen | * konstruktive Phasen | ||
- | * Kundenanforderungen | + | * Kundenanforderungen: aus verschiedenen Quellen (Kunden, Verträge, Wissenschaft) |
- | * Systementwurf | + | * Systementwurf: detaillierte Anforderungsbeschreibung, Schnittstellen, Parameter |
- | * Systemarchitektur | + | * Systemarchitektur: Zerlegung in Systemkomponenten |
- | * Modulspezifikation | + | * Modulspezifikation: Zerlegung in Module (kleinste Einheiten) |
- | * Implementierung | + | * Implementierung: auf Basis der Modulspezifikation |
* analytische Phasen / Testphasen / -stufen | * analytische Phasen / Testphasen / -stufen | ||
- | * Modultest | + | * Modultest: Test der einzelnen Module gegen deren Spezifikation |
- | * Integrationstest | + | * Integrationstest: Test der Architektur und der Schnittstellen |
- | * Systemtest | + | * Systemtest: Test gegen Systemspezifikation/Anforderungen, externe Schnittstellen, evtl. Verschmelzung mit Integrationstest |
- | * Abnahmetest | + | * Abnahmetest: Nachweis, dass das System die Kundenanforderungen erfüllt |
- | * Modul- / Komponententest | + | * **Modul-/Komponententest** |
* Testbasis: Modulspezifikation | * Testbasis: Modulspezifikation | ||
* strenge Trennung der Module beim Test -> alle Module werden für sich allein getestet | * strenge Trennung der Module beim Test -> alle Module werden für sich allein getestet | ||
* Schnittstellen müssen simuliert werden -> Testtreiber | * Schnittstellen müssen simuliert werden -> Testtreiber | ||
* üblicherweise vom Entwickler selbst durchgeführt: Compiler, Debugger, Emulator/Simulator, statische Analyse, Automatisierungswerkzeuge | * üblicherweise vom Entwickler selbst durchgeführt: Compiler, Debugger, Emulator/Simulator, statische Analyse, Automatisierungswerkzeuge | ||
- | * Integrationstest | + | * **Integrationstest** |
* Testbasis: Systemarchitektur | * Testbasis: Systemarchitektur | ||
* Durchführung durch spezialisierte Testgruppe <> Entwickler | * Durchführung durch spezialisierte Testgruppe <> Entwickler | ||
Zeile 66: | Zeile 150: | ||
* Backbone (Erstellen eines Programmskeletts, in das die Komponenten nach Fertigstellung integriert werden) | * Backbone (Erstellen eines Programmskeletts, in das die Komponenten nach Fertigstellung integriert werden) | ||
* Big Bang (alle Komponenten werden gleichzeitig integriert) | * Big Bang (alle Komponenten werden gleichzeitig integriert) | ||
- | * Systemtest | + | * **Systemtest** |
* Testbasis: Systementwurf / Anforderungen / Normen etc. | * Testbasis: Systementwurf / Anforderungen / Normen etc. | ||
* Ziel: Prüfen, ob das System den Anforderungen entspricht | * Ziel: Prüfen, ob das System den Anforderungen entspricht | ||
Zeile 72: | Zeile 156: | ||
* Durchführung wieder durch spezialisiertes Testteam | * Durchführung wieder durch spezialisiertes Testteam | ||
* Evtl. Test bei Pilotkunden: Betatest, Feldtest, Pilotbetrieb, controlled introduction | * Evtl. Test bei Pilotkunden: Betatest, Feldtest, Pilotbetrieb, controlled introduction | ||
- | * Qualitätsmerkmale nach ISO 9126 | + | * **Qualitätsmerkmale** nach ISO 9126/DIN 66272 |
* Funktionalität (Functionality) | * Funktionalität (Functionality) | ||
* Angemessenheit, Richtigkeit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit | * Angemessenheit, Richtigkeit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit | ||
Zeile 99: | Zeile 183: | ||
* Kompletter Test vor Auslieferung neuer Versionen | * Kompletter Test vor Auslieferung neuer Versionen | ||
* Austausch der Testfälle für die nächste Produktversion | * Austausch der Testfälle für die nächste Produktversion | ||
+ | |||
===== Testprozess ===== | ===== Testprozess ===== | ||
+ | * {{:se:generischertestprozess.jpg|}} | ||
* Testdokumentation | * Testdokumentation | ||
* notwendig zur internen/externen Kommunikation, teils gesetzliche Aufbewahrungsfristen | * notwendig zur internen/externen Kommunikation, teils gesetzliche Aufbewahrungsfristen | ||
- | * Test Plan (Testplanung) | + | * {{:se:testdokumente.jpg|}} |
- | * Test Design/Case/Procedure Specification (Testspezifikation) | + | |
- | * Test Incident Report (Fehlerbericht) | + | |
- | * Test Log, Test Summary Report (Ergebnisdokumentation) | + | |
- | * Test Item Transmittal Report (Übergabeprotokoll) | + | |
* Testplanung | * Testplanung | ||
* Start zu Beginn des Projekts (Projekt ist genehmigt, Projektleiter benannt, Test-Projektleiter benannt, Mitarbeiter benannt) | * 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 | * Nach Umfang des Projekts Testmanager für jede Phase oder Gesamtprojekt | ||
- | * Master-Testplan | + | * **Master-Testplan** |
* Testaktivitäten über alle Phasen hinweg | * Testaktivitäten über alle Phasen hinweg | ||
* zeitliche und logistische Abhängigkeiten | * zeitliche und logistische Abhängigkeiten | ||
* Ziele und Schwerpunkte der einzelnen Phasen (Abgrenzung) | * 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 | * Pläne der Testphasen werden aus Master-Testplan abgeleitet | ||
* Rahmenbedingungen klären: Termine, Personal etc. -> Zeitplan | * Rahmenbedingungen klären: Termine, Personal etc. -> Zeitplan | ||
- | * Testziele / -schwerpunkte | + | * Ziel: Optimierung des zeitlichen Ablaufs und des personellen/materiellen Aufwands |
+ | * Beispiel: teures Messgerät | ||
+ | * Testziele/-schwerpunkte | ||
* Ableitung aus ISO 9126: z.B. Vollständigkeit, Verfügbarkeit, Fehlertoleranz, Ergonomie, Wartbarkeit | * Ableitung aus ISO 9126: z.B. Vollständigkeit, Verfügbarkeit, Fehlertoleranz, Ergonomie, Wartbarkeit | ||
* Prioritäten | * Prioritäten | ||
Zeile 180: | Zeile 262: | ||
* dann systematischer Test der einzelnen Module auf Basis der Testspezifikation | * dann systematischer Test der einzelnen Module auf Basis der Testspezifikation | ||
* weitere Tests je nach den ersten Ergebnissen, niedrige Priorität | * weitere Tests je nach den ersten Ergebnissen, niedrige Priorität | ||
- | * Intution | + | * Intuition |
* Fehler sind Herdentiere | * Fehler sind Herdentiere | ||
* Vertrauen Sie Ihrer Intuition | * Vertrauen Sie Ihrer Intuition | ||
Zeile 240: | Zeile 322: | ||
===== Verfahren zur Ermittlung von Testfällen ===== | ===== Verfahren zur Ermittlung von Testfällen ===== | ||
- | * Ziele | + | * **Ziele** |
* wiederholbare, leicht wartbare Testfälle finden | * wiederholbare, leicht wartbare Testfälle finden | ||
* Begrenzung der Menge der Testfälle | * Begrenzung der Menge der Testfälle | ||
* hohe Testabdeckung erreichen | * hohe Testabdeckung erreichen | ||
- | * White-Box-Tests | + | * {{:se:testverfahren.jpg|}} |
+ | * **White-Box-Tests** | ||
* strukturorientiert | * strukturorientiert | ||
* basieren auf Quelltext/Systembeschreibung | * basieren auf Quelltext/Systembeschreibung | ||
Zeile 250: | Zeile 333: | ||
* Verwendung interner Schnittstellen | * Verwendung interner Schnittstellen | ||
* wichtig zu Beginn der Tests (Module) | * wichtig zu Beginn der Tests (Module) | ||
- | * Black-Box-Tests | + | * **Black-Box-Tests** |
* Interne Kenntnisse nicht erforderlich/gewünscht | * Interne Kenntnisse nicht erforderlich/gewünscht | ||
* nur Benutzer-/Systemschnittstellen werden verwendet | * nur Benutzer-/Systemschnittstellen werden verwendet | ||
* basieren auf Anforderungen/Beschreibungen/Spezifikationen | * basieren auf Anforderungen/Beschreibungen/Spezifikationen | ||
* wichtiger gegen Ende der Tests | * wichtiger gegen Ende der Tests | ||
- | * Gray-Box-Tests | + | * **Gray-Box-Tests** |
* Mischform | * Mischform | ||
* Beispiel: Kenntnis über Interna fließt in den Simulation externer Tests ein, Ausfall einer Komponente wird simuliert | * Beispiel: Kenntnis über Interna fließt in den Simulation externer Tests ein, Ausfall einer Komponente wird simuliert | ||
- | * formal | + | * **formal** |
* strikte Regeln zur Ermittlung von Testfällen | * strikte Regeln zur Ermittlung von Testfällen | ||
* kann automatisiert werden | * kann automatisiert werden | ||
* hohe Qualität der Testbasis erforderlich | * hohe Qualität der Testbasis erforderlich | ||
- | * nichtformal | + | * **nichtformal** |
* gestalterischer Spielraum | * gestalterischer Spielraum | ||
* keine Aussage über Testabdeckung möglich | * keine Aussage über Testabdeckung möglich | ||
* Tester braucht Erfahrung | * Tester braucht Erfahrung | ||
- | * Testabdeckung | + | * **Testabdeckung** |
* gibt an, welcher Teil der Testbasis durch Testfälle abgedeckt wird | * gibt an, welcher Teil der Testbasis durch Testfälle abgedeckt wird | ||
* Angabe der Testbasis | * Angabe der Testbasis | ||
Zeile 347: | Zeile 430: | ||
* Messung ebenfalls durch Werkzeuge, Testfälle können auch automatisch generiert werden | * Messung ebenfalls durch Werkzeuge, Testfälle können auch automatisch generiert werden | ||
* Minimaler Test für ein Modul, enthält automatisch Anweisungsüberdeckung, testet jedoch nicht unterschiedliche Bedingungen oder mehrfache Schleifendurchläufe | * Minimaler Test für ein Modul, enthält automatisch Anweisungsüberdeckung, testet jedoch nicht unterschiedliche Bedingungen oder mehrfache Schleifendurchläufe | ||
- | * Bedingungsüberdeckung | + | * Bedingungsüberdeckung |
- | * **atomare Teilbedingung**: Bedingung ohne logische Operatoren (nur vergleichende Symbole) | + | * **atomare Teilbedingung**: Bedingung ohne logische Operatoren (nur vergleichende Symbole) |
- | * einfache Bedingungsüberdeckung | + | * einfache Bedingungsüberdeckung |
- | * Branch Condition Coverage | + | * Branch Condition Coverage |
- | * jede atomare Teilbedingung muss einmal wahr/falsch sein | + | * jede atomare Teilbedingung muss einmal wahr/falsch sein |
- | * schwächer als Zweigüberdeckung (Gesamtbedingung muss nicht wahr/falsch sein) | + | * schwächer als Zweigüberdeckung (Gesamtbedingung muss nicht wahr/falsch sein) |
- | * Mehrfachbedingungsüberdeckung | + | * Mehrfachbedingungsüberdeckung |
- | * Branch Condition Combination Coverage | + | * Branch Condition Combination Coverage |
- | * alle möglichen Kombinationen der Teilbedingungen werden berücksichtigt | + | * alle möglichen Kombinationen der Teilbedingungen werden berücksichtigt |
- | * schließt Anweisungs- und Zweigüberdeckung ein | + | * schließt Anweisungs- und Zweigüberdeckung ein |
- | * führt schnell zu vielen Testfällen | + | * führt schnell zu vielen Testfällen |
- | * minimale Mehrfachbedingungsüberdeckung | + | * minimale Mehrfachbedingungsüberdeckung |
- | * Modified Branch Condition Decision Coverage | + | * Modified Branch Condition Decision Coverage |
- | * jede Kombination von Wahrheitswerten, bei denen die Änderung einer Teilbedingung zur Änderung der Gesamtbedingung führt | + | * jede Kombination von Wahrheitswerten, bei denen die Änderung einer Teilbedingung zur Änderung der Gesamtbedingung führt |
- | * bevorzugte Methode | + | * bevorzugte Methode |
==== Universelle Verfahren ==== | ==== Universelle Verfahren ==== | ||
Zeile 443: | Zeile 526: | ||
* Testprogrammierung | * Testprogrammierung | ||
* Problem: evtl. sind spezielle Bibliotheken nötig | * Problem: evtl. sind spezielle Bibliotheken nötig | ||
- | * Automatisierung von Messgeräten und Testhilfsmitteln | + | * Automatisierung von Messgeräten und Testhilfsmitteln |
===== ToDo ===== | ===== ToDo ===== | ||
* Quellen für Softwarefehler-Beispiele suchen | * Quellen für Softwarefehler-Beispiele suchen | ||
- | * Ariane 5-Beispiel genauer anschauen | + | * <del>Ariane 5-Beispiel genauer anschauen</del> |
- | * Generischer Testprozess S. 33 | + | * <del>Generischer Testprozess S. 33</del> |
- | * Änderungsprozess S. 49 | + | * <del>Änderungsprozess S. 49</del> |
- | * Tabelle Testfallermittlungsverfahren S. 56 | + | * <del>Tabelle Testfallermittlungsverfahren S. 56</del> |
* Beispiel für Zustandsanalyse | * Beispiel für Zustandsanalyse | ||
+ | * Beispielaufgaben zur Testfallermittlung | ||
| | ||
===== ToRead ===== | ===== ToRead ===== | ||
Zeile 457: | Zeile 541: | ||
* Kosten von Softwarefehlern: Kapitel 6, 6.3 | * Kosten von Softwarefehlern: Kapitel 6, 6.3 | ||
* Qualitätsmerkmale: Kapitel 4.3.1 | * Qualitätsmerkmale: Kapitel 4.3.1 | ||
- | * Einführung der Testdokumentation: IEEE829 Anhang B | + | * <del>Einführung der Testdokumentation: IEEE829 Anhang B</del> |