Читать книгу Softwaretest in der Praxis - Stefan Schmerler - Страница 4
ОглавлениеInhaltverzeichnis
1.2.2 Warum also ist Testen so schwierig?
1.2.4 Erfolgsfaktoren für den Test
1.2.5 Die sieben Grundsätze des Softwaretests
1.3 Analytische Qualitätssicherung
1.3.7 Back-to-Back-Test und Testorakel
1.4 Psychologische Aspekte des Testens
2.1 Wichtige Eigenschaften von Embedded Software
2.2.4 Stochastische Zuverlässigkeitsanalyse für Software
2.2.5 Stochastische Zuverlässigkeitsmodelle für Software
2.2.6 Zuverlässigkeitsmodell nach Musa
3.1 Wasserfallmodell nach Boehm
3.3 Iterative und inkrementelle Entwicklungsmodelle
3.4 Teststufen in der Softwareabsicherung
3.4.3.4 Collaboration-Strategie
3.4.9 Regressionstest und nachgelagerte Teststufen
3.5 Testprozess und Testaktivitäten
3.5.6 Test- und Fehlermanagement
4.1 Überblick Analytische Qualitätssicherung
4.2.1.2 Review-Phase Einführung
4.2.1.3 Review-Phase Vorbereitung
4.2.1.5 Review-Phase Nachbereitung
4.2.1.6 Review-Phase Wiedervorlage
4.3 Die goldenen Review-Regeln
4.4.1 Prüfung auf Konventionen und Standards
4.4.2 Auffinden von Datenflussanomalien
4.4.3 Auffinden von Kontrollflussanomalien
4.4.4 Analyse von Laufzeitfehlern
4.4.5 Metrik- und Fehlerprüfungen
4.4.8 Abstrakte Interpretation
4.4.9 Anwendungsszenarien in der Praxis
4.4.10 Qualitätsmetriken
4.4.10.1 Zyklomatische Komplexität
4.4.10.2 Maximum Nesting Level
4.4.10.3 Estimated Static Path Count
4.4.10.4 Halstead-Metrik
4.4.10.5 Das Maß Live Variables
4.4.10.6 Weitere Codemetriken
4.4.10.7 Beispiele für objektorientierte Metriken
4.5 Symbolische Ausführung
4.6 Model Checking
4.7 Zusammenfassung
5.1 Simulation
5.2 Funktionstest
5.2.1 Äquivalenzklassen-Test
5.2.2 Entscheidungstabellen-Test
5.2.3 Pairwise-Methode
5.2.4 Zustandsbasierter Test
5.2.4.1 Beschreibungsmittel
5.2.4.2 Testfallableitung
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
5.2.5 Transaktionsflussbasierter Test
5.3 Strukturtest
5.3.1 Anweisungsüberdeckung
5.3.2 Entscheidungsüberdeckung und Zweigüberdeckung
5.3.3 Einfache Bedingungsüberdeckung
5.3.4 Mehrfachbedingungsüberdeckung
5.3.5 Modified Condition/Decision Coverage (MC/DC)
5.3.6 Segment-Pair-Überdeckung
5.3.7 DefUse-Überdeckung
5.3.8 All-defs/All-uses-Überdeckung
5.3.8.1 All-p-uses-Kriterium und All-c-uses-Kriterium
5.3.8.2 All-c-uses/Some-p-uses-Kriterium
5.3.8.3 All-uses-Kriterium
5.3.8.4 All-defs-Kriterium
5.3.9 Pfadüberdeckung
5.3.10 Bewertung
5.4 Back-to-Back-Test
5.5 Mutationentest
5.6 Regressionstest
5.7 Statistischer Test
5.8 Error Guessing
5.9 Smoke-Test
5.10 Nichtfunktionale Tests
5.11 Exploratives Testen
5.12 Das geeignete Testverfahren bestimmen
5.13 Zusammenfassung
6.1 Arbeitsmodelle und Organisation des Tests
6.2 Funktionen und Rollen in der Testorganisation
6.3 Teststrategie
6.3.1 Testkonzept
6.3.2 Konkrete Teststrategien
6.3.3 Projekt- und Produktrisiko
6.3.4 Kostenbetrachtung
6.4 Operatives Testmanagement
6.4.1 Testplanung
6.4.2 Berichtswesen beim Test
6.5 Fehlermanagement
6.6 Werkzeugunterstützung
6.7 Zusammenfassung
7 Der Test von Echtzeitsystemen
7.1 Problemstellung
7.2 Wie werden Echtzeitsysteme getestet?
7.2.1 In-the-Loop-Technologien MiL, SiL, PiL, HiL
7.2.2 Eigenschaften von Echtzeit-Testsystemen
7.2.2.1 Abtastfrequenz
7.2.2.2 Jitter
7.2.2.3 Race Conditions
7.2.2.4 Hohe Buslast
7.3 Planung von Echtzeit-Testsystemen
7.4 Echtzeit-Testprogramme
7.5 Zusammenfassung
8.1 Modellklassifizierung
8.1.1 Funktionsmodell (Systemmodell)
8.1.2 Testmodell
8.1.3 Umgebungsmodell
8.2 Ausprägungen modellbasierter Testverfahren
8.2.1 Dominanz des Testmodells im Testprozess
8.2.2 Dominanz des Funktionsmodells im Testprozess
8.2.3 Ableitung des Testmodells aus einem Funktionsmodell
8.2.4 Unabhängigkeit von Funktionsmodell und Testmodell
8.3 Der Nutzen modellbasierter Testverfahren
8.4 Einsatz von Metriken beim modellbasierten Test
8.5 Ableitung von Testmodellen
8.6 Ableitung von Testfällen aus dem Systemmodell
8.7 Verbreitete Modellierungstechniken
8.7.1 Zustandsautomaten
8.7.2 Temporallogiken
8.7.3 Markov-Ketten
8.8 Testfallgenerierungsstrategien
8.8.1 Anforderungsbasierte Testfallgenerierung
8.8.2 Kontrollflussbasierte Testfallgenerierung
8.8.3 Datenflussbasierte Testfallgenerierung
8.8.4 Zustandsbasierte Testfallgenerierung
8.8.5 Testfallgenerierung nach Datenüberdeckung
8.8.6 Operationale Profile und weitere Strategien
8.9 Praxistipps für die Testfallgenerierung
8.10 Beispiel: Time Partition Testing
8.10.1 Besonderheiten mechatronischer Testobjekte
8.10.2 Beispiel: Außenlichtsteuerung
8.10.3 Testskripts und die kontinuierliche Welt
8.10.4 Testausführung in einer Echtzeitumgebung
8.10.5 Modellierung von Testfällen
8.10.6 Time Partitions
8.10.7 Schnittstellen zur HiL-Technologie
8.11 Zusammenfassung
9.1 Steuergeräteverbünde in der Automobilelektronik
9.1.1 Software-in-the-Loop
9.1.2 Rapid Prototyping
9.1.3 Onboard-Test
9.1.4 Functional Mock Up (FMU)
9.2 Grundlagen der HiL-Technologie
9.2.1 Grundprinzip
9.2.2 Motivation und Nutzen
9.3 Aufbau eines HiL-Simulators
9.3.1 Prozessoreinheiten
9.3.2 Signalkonditionierung
9.3.3 Lastnachbildung
9.3.4 Elektrische Fehlersimulation
9.3.5 Pin-Beschaltung
9.4 Einsatzgebiete
9.5 HiL-Komponentenprüfstände
9.6 HiL-Integrationsprüfstände
9.7 Bedienschnittstelle eines HiL-Simulators
9.7.1 Typische Einsatzszenarien
9.7.2 Beispiel eines HiL-Testprogramms
9.8 Design for Testability
9.9 Baureihenübergreifendes Testen
9.10 Bewertung
9.11 Zusammenfassung
10.1 Evolutionäre Algorithmen
10.2 Der evolutionäre Zyklus
10.2.1 Vorbereitende Festlegungen
10.2.2 Fitnessbewertung
10.2.3 Selektion
10.2.4 Rekombination
10.2.5 Mutation
10.2.6 Einfügung von Nachkommen
10.3 Unterpopulationen
10.4 Evolutionärer Test des Zeitverhaltens
10.4.1 Beispiel: Bubble Sort
10.4.2 Beispiel: Zeitverhaltenstest einer Motorsteuerung
10.4.3 Beispiel: Evaluierung eines 16-Bit-Mikrocontrollers
10.4.4 Werkzeugunterstützung
10.5 Evolutionärer Strukturtest
10.5.1 Abdeckungsorientierte Ansätze
10.5.2 Abstandsbasierte Ansätze
10.6 Evolutionärer Funktionstest
10.6.1 Beispiel: Test eines Abstandsregeltempomaten
10.6.2 Beispiel: Test Automatisches Einparken
10.6.3 Beispiel: Test Bremsassistent
10.7 Zusammenfassung
11 Test von Fahrerassistenzsystemen
11.1.1 Motivation
11.1.2 Rechtlicher Rahmen
11.1.3 Umgebungserfassung
11.1.4 Parkassistenten
11.1.5 Abstand und Geschwindigkeit
11.1.6 Kollisionsvermeidende Systeme
11.2 HiL-Test von Fahrerassistenzsystemen
11.2.1 HiL-Testsystem eines Spurhalteassistenten
11.2.2 Erstellung der Testszenarien
11.2.3 Testdurchführung
11.3 FAS-Test mit Fahrsimulatoren
11.3.1 Grundprinzip
11.3.2 Einsatzgebiete und Ausrichtungen
11.3.3 Der Daimler-Fahrsimulator
11.3.4 Erzeugung von Bewegungsempfinden
11.4 Ablauf einer Fahrsimulation
11.5 Vehicle-in-the-Loop
11.5.1 Grundprinzip
11.5.2 Anforderungen und Anwendung
11.5.3 Bewertung
11.6 Virtuelle Erprobungsfahrt
11.6.1 Verkehrssimulation
11.6.2 Fahrermodell
11.6.3 Regelwerk
11.7 Absicherung des autonomes Fahrens
11.7.1 Hochauflösende Karten
11.7.2 Problematik der Freigabetests
11.8 Zusammenfassung
12 Virtuelle Integration und Test
12.1 Motivation
12.2 Virtuelle Steuergeräte in der PC-Simulation
12.3 Erfahrungen aus der Praxis
12.4 Virtuelle Steuergeräte in der HiL-Simulation
12.5 Bedeutung der Standardsoftware
12.6 Bewertung
12.7 Virtualisierungsmatrix
12.8 Zusammenfassung
13 Leitfaden Testfallermittlung
13.1 Systematische Testspezifikation in sieben Schritten
13.2 Äquivalenzklassenanalyse
13.2.1 Steckbrief
13.2.2 Beschreibung
13.2.3 Tipps
13.3 Grenzwertanalyse
13.3.1 Steckbrief
13.3.2 Beschreibung
13.3.3 Tipps
13.4 Kombinatorik und Abhängigkeiten
13.4.1 Steckbrief
13.4.2 Beschreibung
13.4.3 Tipps
13.5 Zustandsbasierter Test
13.5.1 Steckbrief
13.5.2 Beschreibung
13.5.3 Tipps
13.6 Schnittstellentest
13.6.1 Steckbrief
13.6.2 Beschreibung
13.6.3 Tipps
13.7 Kontrollflussorientierter Test
13.7.1 Steckbrief
13.7.2 Beschreibung
13.7.3 Tipps
13.8 Anforderungsbasierter Test
13.8.1 Steckbrief
13.8.2 Beschreibung
13.8.3 Tipps