Embedded-Software-Test: Best Practices für den Unit-/Modul-/Komponenten-Test - Präsenz-Training
Lernen Sie den Entwicklungs- und Testprozess im Zusammenhang mit all seinen Abhängigkeiten, Ergänzungen und Wechselbeziehungen kennen, um durch die Nutzung von Synergien effizient und effektiv zu testen.
In zahlreichen praktischen Übungen mit Software und Hardware wird das Gelernte umgesetzt.
Software-Entwickler, Hardware-Entwickler, Testingenieure
Grundkenntnisse einer höheren Programmiersprache (z.B. C/C++) sind von Vorteil.
Der Entwicklungs- und Testprozess im W-Modell (erweitertes V-Modell)
- Entwicklungsstufen: Analyse, Design, Implementierung
- Teststufen: Komponententest, Integrationstest, Systemtest, Abnahmetest
- Testarten: funktionaler, nichtfunktionaler, strukturorientierter Test
- Fehlernachtest, Regressionstest, Wartungstest
- Testrelevante Standards
- Entwicklung von testbarer Software
- Begriffsklärung Unit, Modul, Komponente
- Unterschied zwischen Debuggen und Testen
Statische Tests
- Review-Prozess: Dokumentenreview, Codereview, Inspektion, Walkthrough
- Werkzeuggestützte statische Code-Analyse
Dynamische Tests
- Blackbox-Verfahren: Äquivalenzklassenbildung, Grenzwertanalyse, Entscheidungstabellentest, zustandsbasierter Test, anwendungsfallbasierter Test
- Whitebox-Verfahren: Anweisungstest/-überdeckung, Entscheidungstest/-überdeckung, Bedingungstest/-überdeckung
- Erfahrungsbasierte Verfahren: Error Guessing, exploratives Testen
- Systematische Vorgehensweise bei der Entwicklung von Testfällen
- Kriterien zur Auswahl von Testverfahren
- Bewertung der Testverfahren
Codemetriken
- Lines of Code, zyklomatische Zahl nach McCabe, Halstead-Metrik
- Anwendung der Metriken im Testprozess
Design for Test
- S.O.L.I.D. Prinzipien
- Single Responsibility, Open Closed
- Liskov Substitution
- Interface Segregation, Dependency Inversion
Testen von objektorientierter Software
- Testen von Klassenhierarchien
- Testen von Methoden einer Klasse
- Testen von Klassenbeziehungen
- Testen einer strikten und nicht-strikten Vererbung
- Testen von polymorphen Klassenhierarchien
Test Driven Development, TDD
- Vorteile von TDD
- Embedded TDD Strategien
- TDD Beispiel
Integration von Komponenten zu Systemen im Überblick
- Integrationstest, Systemtest, Abnahmetest
Integration von Hardware und Software
- Testdurchführung auf der Hardware
Weitere Aktivitäten im Testprozess im Überblick
- Testmanagement, Planung, Steuerung
- Risikomanagement, Fehler- und Abweichungsmanagement
- Konfigurationsmanagement und Versionskontrolle
- Softwarequalitätsmerkmale nach ISO 9126
- Testdokumente nach IEEE 829
- Testwerkzeuge Typen, Auswahl, Einführung
Praktische Übungen
- Übungen zu Testanalyse, Testentwurf, Testrealisierung, Testdurchführung, Testbericht
- Durchführung eines Code-Reviews
- Durchführung von Blackbox- und Whitebox-Tests mit Tessy, mit und ohne Hardware
- Ermittlung von Testdaten nach der Classification Tree Methode mit CTE
- Bestimmen von Codemetriken mit den Tools cccc und CMT++
- Google Test und Google Mock im Einsatz
- Für die Tests auf der Hardware werden die Arm/ Keil µVision und ein Cortex™-M Evaluierungsboard eingesetzt.