Reliability Engineering WS25/26 - Modultest: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „{|class="wikitable" |- | '''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-1…“
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:
| '''SVN-URL:''' || [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Reliability_Engineering/WS25/ <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Reliability_Engineering/WS25/</code>]
| '''SVN-URL:''' || [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Reliability_Engineering/WS25/ <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Reliability_Engineering/WS25/</code>]
|}
|}
= 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.


= Aufgabe 3 - Modultest =
= MATLAB<sup>®</sup> Modultest =
== Aufgabe 3 - Modultest ==
# Studieren Sie das Video [https://youtu.be/oRrnhgFkFTg?si=xRjYo0bbWFMqVbka Erste Schritte mit dem MATLAB Unit Test Framework].
# Studieren Sie das Video [https://youtu.be/oRrnhgFkFTg?si=xRjYo0bbWFMqVbka Erste Schritte mit dem MATLAB Unit Test Framework].
# Weitere Informationen finden Sie im Artikel [https://de.mathworks.com/help/matlab/matlab_prog/ways-to-write-unit-tests.html Ways to Write Unit Tests].
# Weitere Informationen finden Sie im Artikel [https://de.mathworks.com/help/matlab/matlab_prog/ways-to-write-unit-tests.html Ways to Write Unit Tests].
Zeile 38: Zeile 41:
|}
|}


= Simulink Modultest =
== 1. Simulink Test (offizielle MATLAB<sup>®</sup>/Simulink-Erweiterung)==
[[Reliability_Engineering_WS25/26_-_Simulink Test|<code>Simulink Test</code>]] 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<sup>®</sup> Artikel: 
[https://de.mathworks.com/help/sltest/index.html Simulink Test]
=== PDF-Dokumentation für Simulink Test ===
*[https://de.mathworks.com/help/pdf_doc/sltest/sltest_gs.pdf Simulink Test Getting Started Guide]
* [https://de.mathworks.com/help/pdf_doc/sltest/sltest_ug.pdf Simulink Test User’s Guide]
* [https://de.mathworks.com/help/pdf_doc/sltest/sltest_ref.pdf Simulink Test Reference]
* [https://de.mathworks.com/help/pdf_doc/sltest/rn.pdf 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.&thinsp;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 =
* [https://de.mathworks.com/help/sltest/gs/create-a-test-harness.html MATLAB<sup>®</sup>: Erstellen eines Testrahmens]
----
----
→ zurück zum Hauptartikel: [[Reliability_Engineering_WS25/26|Reliability_Engineering_WS25/26]]<br>
→ zurück zum Hauptartikel: [[Reliability_Engineering_WS25/26|Reliability_Engineering_WS25/26]]<br>

Aktuelle Version vom 3. Dezember 2025, 13:04 Uhr

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)

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: Simulink Test

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