Reliability Engineering WS25/26 - Modultest
| Dozent: | Prof. Dr.-Ing. Schneider |
| Modul | Mechatronik, Systementwicklung (Wahlpflichtprofil „Systems Design Engineering“), Wintersemester |
| Modulbezeichnung: | MTR-B-2-7.09 |
| Modulverantwortung: | Mirek Göbel |
| Lehrveranstaltung: | Reliability Engineering |
| Zeit: | Donnerstag, 08:15 - 09:45 Uhr, uKW |
| Ort: | Labor L3.3-E01-180 (Autonome Systeme) |
| SVN-URL: | https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Reliability_Engineering/WS25/
|
Einleitung
Modultests bilden die unterste Ebene des Testprozesses und dienen dazu, einzelne Softwareeinheiten frühzeitig und isoliert auf ihre korrekte Funktion zu überprüfen. Ziel ist es, Fehler bereits in einem sehr frühen Entwicklungsstadium zu erkennen, um spätere Integrationsprobleme zu vermeiden und die Gesamtqualität des Systems nachhaltig zu erhöhen. Dabei wird jedes Modul unabhängig von anderen Komponenten getestet, wobei sowohl funktionale Anforderungen als auch typische Fehlerszenarien betrachtet werden. Durch klar definierte Testfälle, reproduzierbare Testumgebungen und objektive Bewertungskriterien stellen Modultests sicher, dass die implementierten Funktionen robust, zuverlässig und spezifikationskonform sind.
MATLAB® Modultest
Aufgabe 3 - Modultest
- Studieren Sie das Video Erste Schritte mit dem MATLAB Unit Test Framework.
- Weitere Informationen finden Sie im Artikel Ways to Write Unit Tests.
- Besuchen Sie den Online-Kurs Unit Testing
- Lassen Sie sich vom Copilot helfen einen Test zu generieren.
MATLAB Test features
- Generate Test with Copilot
| ID des Testfalls | Testfallname | Ersteller | Datum | ID der Anforderung | ID aus der Komponenntenspezifikation | Ausgangszustand | Aktion(en) | Erwartetes Ergebnis | Ergebnis | Bewertung | Test durchgeführt von | Test durchgeführt am | Bemerkung |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | Stationären Endwert und damit den Verstärkungsfaktor prüfen | Prof. Schneider | 22.10.25 | 01 | 05 | PT1-Integratoren = 0, Eingang = 0 | Eingangssprung von 0 auf 1 bei t=0s | Stat. Endwert = 1 | xa(t=50s) = 1.4 | n.i.O. | Mustermann | 22.10.25 | Kp überprüfen |
| 02 | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel |
| 03 | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel | Beispiel |
Simulink Modultest
1. Simulink Test (offizielle MATLAB®/Simulink-Erweiterung)
Simulink Test ist das bestes und umfangreichste Werkzeug für systematische Modultests.
Funktionen:
- Test Manager für verwaltete Testsuiten
- Unit-Tests für einzelne Subsysteme oder Modelle
- Signal- und Parameter-Stubbing
- Baseline-Tests (Soll-Ist-Vergleich)
- Simulation-Based Tests
- Equivalence Testing (z.&thinspB. Modell vs. generierter Code)
- Coverage-Messung
Vorteile:
- Voll integriert
- GUI
- Automation (MATLAB scripts)
Link zum MATLAB® Artikel:
PDF-Dokumentation für Simulink Test
- Simulink Test Getting Started Guide
- Simulink Test User’s Guide
- Simulink Test Reference
- Simulink Test Release Notes
2. Simulink Subsystem-In-The-Loop (SIL/Model-in-the-Loop)
Model-in-the-Loop (MIL)
Du testest das Subsystem direkt im Modell. Gut für funktionale Tests ohne Codegeneration.
Software-in-the-Loop (SIL)
Test gegen generierten C-Code zur Prüfung von:
- Algorithmusgleichheit
- Rechenarteffekten
- Überläufen
- Fixed-Point-Fehlern
Processor-in-the-Loop (PIL)
Test direkt auf deinem Zielprozessor/Mikrocontroller.
Vorteile: Testet den Modell-/Code-Pfad realistisch. Nachteile: Etwas Setup-Aufwand.
3. Manuelle Modultests im Simulink-Modell
Möglichkeiten:
- Test-Harness bauen (virtuelle Umgebung, die dein Subsystem isoliert)
- Input-Signals aus MATLAB erstellen (z. B. timeseries, Signal Builder)
- Assertions und Verify-Blöcke nutzen
- Scope-Aufzeichnungen automatisiert vergleichen (MATLAB Skript)
Tools in Simulink dafür:
- Simulink Test Harness (auch ohne Lizenz nutzbar!)
- Verification Subsystem (Assertions)
- MATLAB Test Framework (xUnit-ähnlich)
4. MATLAB-basierte Tests (xUnit-Framework)
Sie können mit MATLAB-Klassen (matlab.unittest.TestCase) automatisierte Tests programmieren.
Beispiel:
- Modell per Script laden
- Parameter setzen
- Simulation starten
- Outputs prüfen
Vorteil: Voll automatisierbar
CI/CD einbindbar (GitLab/Jenkins/GitHub Actions)
5. Requirements-basiertes Testen
- Anforderungen mit Testfällen verknüpfen
- Coverage nach Anforderung auswerten
- Testbewertungen automatisch generieren
- Standard in sicherheitskritischen Bereichen (ISO 26262, DO-178C).
6. Code-basierte Unit Tests (für generierten C-Code)
Nach Codegenerierung über Embedded Coder kannst du klassische Unit-Test-Frameworks verwenden:
- Ceedling (C Unit Tests)
- GoogleTest
- Tessy (Industrie-Tool)
- VectorCAST
Dann über SIL/PIL wieder ans Modell anbinden.
Nützliche Artikel
→ zurück zum Hauptartikel: Reliability_Engineering_WS25/26