Reliability Engineering WS25/26 - Modultest

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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

  1. Studieren Sie das Video Erste Schritte mit dem MATLAB Unit Test Framework.
  2. Weitere Informationen finden Sie im Artikel Ways to Write Unit Tests.
  3. Besuchen Sie den Online-Kurs Unit Testing
  4. Lassen Sie sich vom Copilot helfen einen Test zu generieren.

MATLAB Test features

  • Generate Test with Copilot
Tabelle 1: Liste von Testfällen inkl. genauer Testfallbeschreibung
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)

[[Reliability_Engineering_WS25/26_-_Simulink Test|Simulink Test (Engl. test harness) 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

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