Читать книгу Softwaretest in der Praxis - Stefan Schmerler - Страница 4

Оглавление

Inhaltverzeichnis

1 Grundlagen des Testens

1.1 Fehlerbegriff

1.2 Testen von Software

1.2.1 Testbegriff

1.2.2 Warum also ist Testen so schwierig?

1.2.3 Frontloading

1.2.4 Erfolgsfaktoren für den Test

1.2.5 Die sieben Grundsätze des Softwaretests

1.2.6 Testaufwände

1.3 Analytische Qualitätssicherung

1.3.1 Reviews

1.3.2 Statische Analysen

1.3.3 Symbolische Ausführung

1.3.4 Model Checking

1.3.5 Simulation

1.3.6 Testmethoden

1.3.6.1 Funktionaler Test

1.3.6.2 Strukturtest

1.3.6.3 Statistischer Test

1.3.6.4 Mutationentest

1.3.6.5 Evolutionärer Test

1.3.7 Back-to-Back-Test und Testorakel

1.4 Psychologische Aspekte des Testens

1.5 Zusammenfassung

2 Zuverlässigkeitsanalysen

2.1 Wichtige Eigenschaften von Embedded Software

2.2 Zuverlässigkeitsmodelle

2.2.1 Software-FMECA

2.2.2 Fehlerbaumanalyse

2.2.3 Markov-Modellierung

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

2.3 Zusammenfassung

3 Testprozess und Testphasen

3.1 Wasserfallmodell nach Boehm

3.2 Das klassische V-Modell

3.3 Iterative und inkrementelle Entwicklungsmodelle

3.4 Teststufen in der Softwareabsicherung

3.4.1 Unit-Test

3.4.2 Komponententest

3.4.3 Integrationstest

3.4.3.1 Big-Bang-Strategie

3.4.3.2 Bottom-up-Strategie

3.4.3.3 Top-down-Strategie

3.4.3.4 Collaboration-Strategie

3.4.3.5 Ad-hoc-Integration

3.4.3.6 Backbone-Integration

3.4.4 Systemtest

3.4.5 Produkttest

3.4.6 Abnahmetest

3.4.7 Produktionstest

3.4.8 Feldtest

3.4.9 Regressionstest und nachgelagerte Teststufen

3.5 Testprozess und Testaktivitäten

3.5.1 Testplanung

3.5.2 Testspezifikation

3.5.3 Testimplementierung

3.5.4 Testausführung

3.5.5 Testevaluierung

3.5.6 Test- und Fehlermanagement

3.6 Zusammenfassung

4 Statischer Test

4.1 Überblick Analytische Qualitätssicherung

4.2 Reviews

4.2.1 Review-Phasen

4.2.1.1 Review-Phase Planung

4.2.1.2 Review-Phase Einführung

4.2.1.3 Review-Phase Vorbereitung

4.2.1.4 Review-Sitzung

4.2.1.5 Review-Phase Nachbereitung

4.2.1.6 Review-Phase Wiedervorlage

4.2.2 Informelle Reviews

4.2.3 Technische Reviews

4.2.4 Inspektion

4.2.5 Walkthrough

4.2.6 Zahlen, Daten, Fakten …

4.3 Die goldenen Review-Regeln

4.4 Statische Analyse

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.6 Timing-Analysen

4.4.7 Architekturanalyse

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 Dynamischer Test

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 Test- und Fehlermanagement

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 Modellbasierter Test

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 Hardware-in-the-Loop-Test

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 Evolutionärer Test

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 Fahrerassistenzsysteme

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

Abkürzungsverzeichnis

Glossar

Literaturverzeichnis

Softwaretest in der Praxis

Подняться наверх