Software-Test für Embedded Systems

Ein Praxishandbuch für Entwickler, Tester und technische Projektleiter

Stephan Grünfelder

Diese Publikation zitieren

Stephan Grünfelder, Software-Test für Embedded Systems (2017), dpunkt.verlag, Heidelberg, ISBN: 9783960881483

4681
Accesses
71
Quotes

Beschreibung / Abstract

Dieses Buch beschreibt alle wichtigen praxistauglichen Methoden des Software-Tests für eingebettete Systeme und zeigt, wie sie sich in ein planungsgesteuertes bzw. agiles Projekt eingliedern lassen. Dabei werden die Teststufen in chronologischer Reihenfolge behandelt und die Erläuterungen mit zahlreichen Beispielen aus Projekten mit und ohne Sicherheitsrelevanz illustriert.

Behandelt werden u. a. folgende Themen:
• Statische Code-Analyse
• Unit-Tests
• Hardware/Software-Integrationstests
• Software/Software-Integrationstests
• Systemtests
• Data Race Testing
• Schedulability und Echtzeittests
• Normen und Haftungsrisiko

Persönliche Bewertungen von Testmethoden, Erfahrungsberichte und eine Diskussion von Testwerkzeugen am Ende jedes Kapitels geben dem Leser wichtige Orientierungshilfen bei der Umsetzung des Stoffs und beim Kauf von Werkzeugen.

Verständnisfragen mit Antworten sowie Übungsbeispiele mit Lösungen erleichtern die Verwendung des Buches im Hochschulbereich und geben auch dem Leser aus dem industriellen Umfeld die Möglichkeit zur Selbstkontrolle.

Die Buchkapitel sind weitgehend unabhängig voneinander aufgebaut. Sie erlauben das Lesen der Kapitel in einer beliebigen Reihenfolge und machen das Buch auch als Nachschlagewerk wertvoll.

Neu in der 2. Auflage:
• Aktualisierung auf die neuesten Tools und Normen – insbesondere ISO 29119
• Neues Kapitel zu Trace-Daten im Testumfeld
• Zusätzliche Erfahrungsberichte

Beschreibung

Stephan Grünfelder war Programmierer und Tester für die unbemannte Raumfahrt und Medizintechnik, später Projektleiter für Steuergeräte-Entwicklung im Automobilbereich und arbeitet nun als selbständiger Trainer für Software-Testing und als Senior Software Tester für Broadcast-Ausrüstung. Er hat bzw. hatte Lehraufträge an der Hochschule Reykjavik, der Fachhochschule Technikum Wien und der Technischen Universität Wien.

Inhaltsverzeichnis

  • BEGINN
  • Vorwort
  • Danksagung
  • Inhaltsverzeichnis
  • 1 Einleitung
  • 1.1 Motivation
  • 1.2 Abgrenzung des Buchs zu ISTQB-Lehrplänen
  • 1.3 Zur Gliederung dieses Buchs
  • 1.4 Die wichtigsten Begriffe kurz erklärt
  • 1.5 Ein Überblick über das Umfeld des Software-Testing
  • 2 Anforderungen und Test
  • 2.1 Die Bedeutung textueller Anforderungen
  • 2.2 Requirements Engineering im Projekt
  • 2.3 Arten und Quellen von Anforderungen
  • 2.4 Warum Anforderungen dokumentiert werden sollen
  • 2.5 Die Review von Anforderungen
  • 2.6 Der Umgang mit natürlicher Sprache
  • 2.7 Hinweise zur Dokumentenform
  • 2.8 Die Spezifikation an der Schnittstelle zum Testteam
  • 2.9 Werkzeuge zur Review von Anforderungen
  • 2.10 Diskussion
  • 2.11 Fragen und Übungsaufgaben
  • 3 Review des Designs
  • 3.1 Ziele der Review des Architekturdesigns
  • 3.2 Ziele der Review des Detaildesigns
  • 3.3 Eigenschaften von gutem Software-Design
  • 3.4 Hinweise zur Architektur-Design-Review
  • 3.5 Embedded Design
  • 3.6 Diskussion
  • 3.7 Fragen und Übungsaufgaben
  • 4 Automatische statische Code-Analyse
  • 4.1 Motivation zum Einsatz von Analysewerkzeugen
  • 4.2 Techniken von Analysewerkzeugen im unteren Preissegment
  • 4.3 Techniken von Analysewerkzeugen im oberen Preissegment
  • 4.4 Statische Security-Analyse (SSA)
  • 4.5 Code-Metriken
  • 4.6 Werkzeuge für die Automatische Code-Analyse
  • 4.7 Diskussion
  • 4.8 Fragen und Übungsaufgaben
  • 5 Code-Reviews
  • 5.1 Review-Arten
  • 5.2 Pair Programming
  • 5.3 Werkzeuge zur Code-Review
  • 5.4 Diskussion
  • 5.5 Fragen und Übungsaufgaben
  • 6 Unit-Tests
  • 6.1 Der Unit-Test im Entwicklungsprozess
  • 6.2 Zur Definition von Unit-Test und Modultest
  • 6.3 Black-Box-Testfälle beim White-Box-Test
  • 6.4 Stubs und Treiber
  • 6.5 Verschiedene Typen von Werkzeugen beim White-Box-Test
  • 6.6 Testabdeckung
  • 6.7 Basis Path Testing
  • 6.8 Host oder Target Testing?
  • 6.9 Den Code immer unverändert testen?
  • 6.10 Unit-Tests bei objektorientierten Sprachen
  • 6.11 Grenzen des Unit-Tests
  • 6.12 Werkzeuge für den Unit-Test
  • 6.13 Diskussion
  • 6.14 Fragen und Übungsaufgaben
  • 7 Integrationstests
  • 7.1 Software/Software-Integrationstest
  • 7.2 Ressourcentests
  • 7.3 Hardware/Software-Integrationstest
  • 7.4 Systemintegrationstest
  • 7.5 Werkzeuge für den Integrationstest
  • 7.6 Fragen und Übungsaufgaben
  • 8 Systemtests
  • 8.1 Funktionale Systemtests
  • 8.2 Test der Benutzerschnittstelle
  • 8.3 Performanztest und Lasttest
  • 8.4 Stresstest
  • 8.5 Volumentest
  • 8.6 Failover und Recovery Testing
  • 8.7 Ressourcentests
  • 8.8 Installationstests
  • 8.9 Konfigurationstests
  • 8.10 Security-Tests
  • 8.11 Dokumententests
  • 8.12 Testumgebung und Testdaten
  • 8.13 Formale Methoden
  • 8.14 Automation von Systemtests
  • 8.15 Dokumentation des Testdesigns und der Testergebnisse
  • 8.16 Grenzen des Systemtests
  • 8.17 Fragen und Übungsaufgaben
  • 9 Testen von RTOS und Middleware
  • 9.1 Definition und Motivation
  • 9.2 White-Box-Requirements-Test
  • 9.3 Test eines Interrupt-Managers
  • 9.4 Test eines Schedulers
  • 9.5 Fragen und Übungsaufgaben
  • 10 Race Conditions
  • 10.1 Definition von Data Races
  • 10.2 Dynamische Data-Race-Analyse
  • 10.3 Statische Data-Race-Analyse
  • 10.4 Werkzeuge für die Data-Race-Analyse
  • 10.5 Diskussion
  • 10.6 Fragen und Übungsaufgaben
  • 11 Deadlocks
  • 11.1 Über die Entstehung von Deadlocks
  • 11.2 Verschiedene Arten der Deadlock-Analyse
  • 11.3 Dynamische Deadlock-Analyse
  • 11.4 Statische Deadlock-Analyse
  • 11.5 Werkzeuge zur Deadlock-Detektion
  • 11.6 Diskussion
  • 11.7 Fragen und Übungsaufgaben
  • 12 Echtzeit-Verifikation
  • 12.1 Antwortzeiten bei funktionalen Tests
  • 12.2 WCET-Analyse
  • 12.3 Werkzeuge für die WCET-Analyse
  • 12.4 Diskussion
  • 12.5 Fragen und Übungsaufgaben
  • 13 Schedulability-Analyse
  • 13.1 Aufgaben der Schedulability-Analyse
  • 13.2 Definitionen
  • 13.3 Diskussion der Scheduling-Strategien
  • 13.4 Analyse bei Fixed-Priority-Single-CPU-Systemen
  • 13.5 Multi-CPU-Systeme
  • 13.6 Scheduling-Analyse für CAN
  • 13.7 Werkzeuge
  • 13.8 Diskussion
  • 13.9 Fragen und Übungsaufgaben
  • 14 Hardware/Software-Interaktionsanalyse
  • 14.1 Die FMEA als Grundlage der HSIA
  • 14.2 Die HSIA als Quelle für Software-Anforderungen
  • 14.3 Software-Kritikalitätsanalyse
  • 14.4 Software-FMEA
  • 14.5 Werkzeuge
  • 14.6 Diskussion
  • 14.7 Fragen und Übungsaufgaben
  • 15 Modellbasierter Test
  • 15.1 Begriffsdefinition
  • 15.2 MBT und Testautomation
  • 15.3 Modelle
  • 15.4 Testmodell vs. Implementierungsmodell
  • 15.5 Werkzeuge
  • 15.6 Diskussion
  • 15.7 Fragen und Übungsaufgaben
  • 16 Trace-Daten im Testumfeld
  • 16.1 Das Dilemma mit instrumentiertem Code
  • 16.2 Embedded-Trace-Schnittstellen
  • 16.3 Werkzeuge
  • 16.4 Diskussion
  • 17 Testmanagement
  • 17.1 Testplanung
  • 17.2 Teststeuerung
  • 17.3 Abweichungsmanagement
  • 17.4 Bewertung und Anpassung des Testprozesses
  • 17.5 Risikobasierter Test
  • 17.6 Werkzeuge
  • 17.7 Diskussion
  • 17.8 Fragen und Übungsaufgaben
  • 18 Qualitätsmanagement
  • 18.1 Definition
  • 18.2 Qualitätsmanagement-Standards
  • 18.3 Kosten und Haftungsrelevanz des QM
  • 18.4 Umsetzung des Qualitätsmanagements
  • 18.5 Die Rolle des Qualitätsmanagers
  • 18.6 Mit Metriken die Qualität steuern
  • 18.7 Die Wirtschaftlichkeit von QM
  • 18.8 Werkzeuge
  • 18.9 Diskussion
  • 18.10 Fragen und Übungsaufgaben
  • 19 Software-Test und Haftungsrisiko
  • 19.1 Ein Software-Fehler im Sinne des Gesetzes
  • 19.2 Vertragliche Gewährleistung und Haftung
  • 19.3 Vertragliche Beschränkung der Haftung
  • 19.4 Produzentenhaftung bei Software
  • 19.5 Produkthaftung
  • 19.6 Sorgfaltspflicht des Software-Herstellers
  • 19.7 Technische Normen mit Bezug zum Software-Test
  • 19.8 Tipps vom Rechtsanwalt und vom Techniker
  • 19.9 Fragen und Übungsaufgaben
  • Nachwort
  • Anhang
  • Anhang A – Lösungen zu den Übungsaufgaben
  • Anhang B – Dokumentation des Testdesigns
  • Anhang C – Software-Verifikationsplan
  • Anhang D –Software-Verifikationsreport
  • Quellenverzeichnis
  • Index

Ähnliche Titel

    Mehr von diesem Autor