Software-Test für Embedded Systems

Ein Praxishandbuch für Entwickler, Tester und technische Projektleiter
 
 
dpunkt (Verlag)
  • 2. Auflage
  • |
  • erschienen am 24. Mai 2017
  • |
  • 410 Seiten
 
E-Book | PDF mit Wasserzeichen-DRM | Systemvoraussetzungen
978-3-96088-148-3 (ISBN)
 
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
aktualisierte Auflage
  • Deutsch
  • Heidelberg
  • |
  • Deutschland
  • 9,10 MB
978-3-96088-148-3 (9783960881483)
3960881487 (3960881487)
weitere Ausgaben werden ermittelt
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.
  • Intro
  • 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.4.1 Definition von Fachbegriffen
  • 1.4.2 Zu Definitionen und TesterInnen
  • 1.5 Ein Überblick über das Umfeld des Software-Testing
  • 1.5.1 Ursachen von Software-Fehlern
  • 1.5.2 Warum Programmfehler nicht entdeckt werden
  • 1.5.3 Angebrachter Testaufwand
  • 1.5.4 Der Tester und der Testprozess
  • 1.5.5 Modellieren der Software-Umgebung
  • 1.5.6 Erstellen von Testfällen
  • 1.5.7 Ausführen und Evaluieren der Tests
  • 1.5.8 Messen des Testfortschritts
  • 1.5.9 Testdesign und Testdokumentation im Software-Entwicklungsprozess
  • 1.5.10 Verschiedene Teststufen und deren Zusammenspiel
  • 1.5.11 Andere Verifikationsmethoden als Ergänzung zum Test
  • 1.5.12 Agile Prozessmodelle
  • 1.5.13 Der Software-Test in agilen Vorgehensmodellen
  • 1.5.14 Wer testet die Tester?
  • 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.5.1 Testbarkeit von Anforderungen
  • 2.5.2 Modifizierbarkeit und Erweiterbarkeit
  • 2.5.3 Relevanz von Anforderungen
  • 2.6 Der Umgang mit natürlicher Sprache
  • 2.6.1 Einfache Sprache gegen Missverständnisse
  • 2.6.2 Gelenkte Sprache
  • 2.7 Hinweise zur Dokumentenform
  • 2.8 Die Spezifikation an der Schnittstelle zum Testteam
  • 2.8.1 Konfiguration von Testdesigns
  • 2.8.2 Vollständigkeit von Spezifikationen
  • 2.9 Werkzeuge zur Review von Anforderungen
  • 2.10 Diskussion
  • 2.10.1 Verifikation beim Requirements Engineering mit Augenmaß
  • 2.10.2 Bewertung der Rolle des Requirements Engineering für den Testprozess
  • 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.5.1 Sicherheit, Verfügbarkeit & Co
  • 3.5.2 Wartbarkeit des Geräts
  • 3.5.3 Ressourcenverbrauch
  • 3.5.4 Design von Echtzeitsystemen
  • 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.2.1 Sprachspezifische Fallstricke
  • 4.2.2 Kontrollflussanalyse
  • 4.2.3 Datenflussanalyse, Initialisation Tracking
  • 4.2.4 Datenflussanalyse, Value Tracking
  • 4.2.5 Semantische Analyse
  • 4.2.6 Starke Typenprüfung
  • 4.3 Techniken von Analysewerkzeugen im oberen Preissegment
  • 4.3.1 Größerer Komfort für den Benutzer
  • 4.3.2 Concurrency Checks
  • 4.3.3 Stack-Analyse und erweiterte Kontrollflussanalyse
  • 4.3.4 Erschöpfende Analyse des Zustandsbaums
  • 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.1.1 Code-Inspektionen
  • 5.1.2 Walkthrough
  • 5.1.3 Peer-Review
  • 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.3.1 Äquivalenzklassenbildung
  • 6.3.2 Grenzwertanalyse
  • 6.3.3 Andere Methoden
  • 6.4 Stubs und Treiber
  • 6.5 Verschiedene Typen von Werkzeugen beim White-Box-Test
  • 6.5.1 Unit-Test-Frameworks
  • 6.5.2 Werkzeuge zur Testerstellung
  • 6.5.3 Werkzeuge zur Messung der Testabdeckung
  • 6.6 Testabdeckung
  • 6.6.1 Statement Coverage
  • 6.6.2 Branch Coverage und Decision Coverage
  • 6.6.3 Decision/Condition Coverage
  • 6.6.4 Modified Condition/Decision Coverage
  • 6.6.5 Andere Testabdeckungen
  • 6.6.6 Testabdeckung bei modellbasierter Entwicklung
  • 6.6.7 Messung der 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.12.1 Unit-Test-Frameworks
  • 6.12.2 Werkzeuge zur Testerstellung
  • 6.12.3 Coverage-Analyse
  • 6.13 Diskussion
  • 6.13.1 Testabdeckung
  • 6.13.2 Organisation von Unit-Tests
  • 6.14 Fragen und Übungsaufgaben
  • 7 Integrationstests
  • 7.1 Software/Software-Integrationstest
  • 7.1.1 Bottom-up-Unit-Tests als Integrationstest
  • 7.1.2 Strukturierter Integrationstest
  • 7.1.3 Testabdeckung der Aufrufe von Unterprogrammen
  • 7.1.4 Vergleich der Teststrategien
  • 7.1.5 Grenzen des Software/Software-Integrationstests
  • 7.1.6 Diskussion des Software/Software-Integrationstests
  • 7.2 Ressourcentests
  • 7.2.1 Statischer Ressourcentest
  • 7.2.2 Dynamischer Ressourcentest
  • 7.3 Hardware/Software-Integrationstest
  • 7.3.1 Bottom-up-Verfahren
  • 7.3.2 Regressionsverfahren
  • 7.3.3 Black-Box-Verfahren
  • 7.3.4 Test und Analysen bei Sicherheitsrelevanz
  • 7.3.5 Diskussion des Hardware/Software-Integrationstests
  • 7.4 Systemintegrationstest
  • 7.5 Werkzeuge für den Integrationstest
  • 7.6 Fragen und Übungsaufgaben
  • 8 Systemtests
  • 8.1 Funktionale Systemtests
  • 8.1.1 Zuordnung funktionaler Systemtests zu Anforderungen
  • 8.1.2 Äquivalenzklassen und Grenzwerte im Black-Box-Test
  • 8.1.3 Zustandsbasierter Test
  • 8.1.4 Ursache-Wirkungs-Analyse
  • 8.1.5 CECIL-Methode
  • 8.1.6 Entscheidungstabellentechnik
  • 8.1.7 Paarweises Testen und Klassifikationsbaum-Methode
  • 8.1.8 Back To Back Testing
  • 8.1.9 Erfahrungsbasierter Test
  • 8.1.10 Diskussion des Black-Box-Tests
  • 8.1.11 Auswahl eines Black-Box-Testverfahrens für eine Aufgabe
  • 8.1.12 Werkzeuge für Funktionstests
  • 8.2 Test der Benutzerschnittstelle
  • 8.2.1 Grafische Benutzerschnittstelle
  • 8.2.2 Werkzeuge für GUI-Tests
  • 8.2.3 Eingebettete Benutzerschnittstellen
  • 8.2.4 Werkzeuge für den Test von eingebetteten Benutzerschnittstellen
  • 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.13.1 Symbolischer Test
  • 8.13.2 Deduktive Verifikation von funktionalen Anforderungen
  • 8.13.3 Model Checking
  • 8.14 Automation von Systemtests
  • 8.14.1 Vor- und Nachteile der Testautomation
  • 8.14.2 Tipps zur 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.2.1 Eraser
  • 10.2.2 Lamports Happens-Before-Relation
  • 10.3 Statische Data-Race-Analyse
  • 10.3.1 Ansätze zur statischen Data-Race-Analyse
  • 10.3.2 Vergleich zur dynamischen 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.2.1 Problemstellung
  • 12.2.2 Laufzeitanalyse
  • 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.3.1 Statisches Scheduling
  • 13.3.2 Dynamisches Scheduling
  • 13.4 Analyse bei Fixed-Priority-Single-CPU-Systemen
  • 13.4.1 Optimale Prioritätsvergabe
  • 13.4.2 Rate Monotonic Analysis
  • 13.4.3 Exakte Antwortzeitenanalyse
  • 13.4.4 Gegenseitiger Ausschluss
  • 13.4.5 Aperiodische Aufgaben
  • 13.4.6 Kontextwechsel
  • 13.4.7 Cache und Out Of Order Execution
  • 13.4.8 Input-Jitter
  • 13.4.9 Interrupts
  • 13.5 Multi-CPU-Systeme
  • 13.5.1 Multicore- und Multiprozessor-Systeme
  • 13.5.2 Verteilte 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.3.1 Statecharts
  • 15.3.2 SDL
  • 15.3.3 Message Sequence Charts
  • 15.3.4 UML Version 2
  • 15.3.5 SysML
  • 15.3.6 Funktionsmodellierung
  • 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.4.1 Formale Reifegradmodelle für den Software-Test
  • 17.4.2 Prozessbewertung in agilen Projekten
  • 17.4.3 Mit Augenmaß ins Kostenoptimum
  • 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.7.1 DIN IEC 56/575/CD
  • 19.7.2 IEEE Std 1012
  • 19.7.3 IEEE Std 829
  • 19.7.4 IEEE Std 1008-1987
  • 19.7.5 ISO/IEC 29119
  • 19.7.6 IEC/EN 61508
  • 19.7.7 ISO 26262
  • 19.7.8 Normenreihe 250XX
  • 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

Dateiformat: PDF
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie zum Lesen die kostenlose Software Adobe Reader, Adobe Digital Editions oder einen anderen PDF-Viewer Ihrer Wahl (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie die kostenlose App Adobe Digital Editions oder eine andere Lese-App für E-Books (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nur bedingt: Kindle)

Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

35,99 €
inkl. 19% MwSt.
Download / Einzel-Lizenz
PDF mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
E-Book bestellen

Unsere Web-Seiten verwenden Cookies. Mit der Nutzung dieser Web-Seiten erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok