Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Testplanung und -strategien

Mit Simulink® Test™ können Sie Modelle und Code funktional testen. Bevor Sie einen Test erstellen, sollten Sie Folgendes berücksichtigen:

Identifizieren der Testziele

Bevor Sie Ihren Test erstellen, sollten Sie sich über Ihre Ziele im Klaren sein. Möglicherweise haben Sie eines oder mehrere der folgenden Ziele:

Simulationstests

Wenn Ihr Test lediglich eine fehlerfreie Simulation oder Regressionstests erfordert, können Sie einen Simulationstest durchführen. Simulationstests sind nützlich, wenn sich Ihr Modell noch in der Entwicklung befindet oder wenn Sie über ein bestehendes Testmodell verfügen, das Eingaben und Bewertungen enthält und relevante Daten protokolliert. Ein Beispiel dazu finden Sie unter Test a Simulation for Run-Time Errors.

Verifikation der Anforderungen

Wenn Sie Requirements Toolbox™ installiert haben, können Sie beurteilen, ob sich ein Modell gemäß den Anforderungen verhält, indem Sie einen oder mehrere Testfälle mit Anforderungen verknüpfen, die in Requirements Toolbox erstellt wurden. Sie können wie folgt überprüfen, ob das Modell die Anforderungen erfüllt:

  • Erstellung von verify-Anweisungen oder benutzerdefinierten Kriterienskripten im Modell oder Testrahmen.

  • Einbeziehung von Model Verification Blocks in das Modell oder den Testrahmen.

  • Erfassen der Simulationsausgabe im Testfall und Vergleichen der Simulationsausgabe mit den Basisdaten.

Ein Beispiel für die Verwendung von verify-Anweisungen finden Sie unter Test Downshift Points of a Transmission Controller.

Vergleich von Daten

Sie können Simulationsergebnisse mit Basisdaten oder einer anderen Simulation vergleichen. Sie können auch Ergebnisse zwischen verschiedenen MATLAB®-Versionen vergleichen.

Bei einem Basistest legen Sie zunächst die Basisdaten fest, also die erwarteten Ausgaben. Sie können Basisdaten manuell definieren, Basisdaten aus einer Excel®- oder MAT-Datei importieren oder Basisdaten aus einer Simulation erfassen. Weitere Informationen finden Sie unter Baseline Testing. Um die Testergebnisse mehrerer Modelle zu vergleichen, können Sie die Ergebnisse jedes Modelltests mit denselben Basisdaten vergleichen.

Bei einem Äquivalenztest werden zwei Simulationen verglichen, um festzustellen, ob sie gleichwertig sind. Sie können beispielsweise die Ergebnisse zweier Solver vergleichen oder die Ergebnisse einer Simulation im Normalmodus mit dem generierten Code im Software-in-the-Loop-Modus (SIL), im Processor-in-the-Loop-Modus (PIL) oder im Hardware-in-the-Loop-Modus (HIL) in Echtzeit vergleichen. Sie können die Auswirkungen verschiedener Parameterwerte oder Kalibrierungsdatensätze untersuchen, indem Sie Äquivalenztests durchführen. Ein Beispiel für einen Äquivalenztest finden Sie unter Back-to-Back Equivalence Testing. In einem einzelnen Äquivalenztestfall können nicht mehr als zwei Modelle verglichen werden.

Bei einem Multi-Release-Test führen Sie Tests in mehr als einer installierten MATLAB-Version durch. Verwenden Sie Multiple-Release-Tests, um zu überprüfen, ob Tests erfolgreich sind und in verschiedenen Versionen die gleichen Ergebnisse liefern.

SIL- und PIL-Tests

Sie können die Ausgabe des generierten Codes überprüfen, indem Sie aufeinanderfolgende Simulationen im normalen Modus und im SIL- oder PIL-Modus ausführen. Das Ausführen aufeinanderfolgender Tests im Normalmodus und im SIL- oder PIL-Modus ist eine Form des Äquivalenztests. Der gleiche Back-to-Back-Test kann mehrere Testszenarien ausführen, indem er verschiedene Testvektoren durchläuft, die in einer MAT- oder Excel-Datei definiert sind. Sie können Toleranzen auf Ihre Ergebnisse anwenden, um technisch akzeptable Abweichungen zwischen dem Modell und dem generierten Code hinsichtlich Wert und Timing zuzulassen. Toleranzen können auch für Code gelten, der in Echtzeit auf Hardware ausgeführt wird. Sie können den SIL- oder PIL-Modus nicht in Subsystemmodellen verwenden.

Echtzeit-Test

Mit Simulink Real-Time™ können Sie die Auswirkungen physischer Regelstrecken, Signale und eingebetteter Hardware berücksichtigen, indem Sie Tests im HIL-Modus (Hardware-in-the-Loop) auf einem Echtzeit-Zielcomputer ausführen. Durch die Durchführung eines Basistests in Echtzeit können Sie die Ergebnisse mit bekannten, korrekten Daten vergleichen. Sie können auch einen Back-to-Back-Test zwischen einem Modell, SIL oder PIL und einer Echtzeitsimulation durchführen.

Abdeckung

Mit Simulink Coverage™ können Sie Abdeckungsdaten erfassen, um den Umfang der Tests Ihres Modells oder Codes zu quantifizieren. Wenn Sie die Erfassung der Abdeckung für Ihre Testdatei einrichten, umfassen die Testergebnisse die Abdeckung für das zu testende System und optional für referenzierte Modelle. Sie können die zurückzugebenden Abdeckungsmetriken angeben. Die Abdeckung wird für Modellreferenzblöcke, atomare Subsystemblöcke und Top-Level-Modelle unterstützt, wenn diese für Software-in-the-Loop (SIL) oder Processor-in-the-Loop (PIL) konfiguriert sind. Die Abdeckung wird für SIL- oder PIL-S-Function-Blöcke nicht unterstützt.

Wenn Ihre Ergebnisse eine unvollständige Abdeckung anzeigen, können Sie die Abdeckung wie folgt erhöhen:

  • Manuelles Hinzufügen von Testfällen zur Testdatei.

  • Generieren von Testfällen zur Erhöhung der Abdeckung mit Simulink Design Verifier™.

In beiden Fällen können Sie die neuen Testfälle mit Anforderungen verknüpfen, was für bestimmte Zertifizierungen erforderlich ist.

Testen eines gesamten Modells oder bestimmter Komponenten

Sie können ein gesamtes Modell oder eine Modellkomponente testen. Eine Möglichkeit zum Testen besteht darin, zunächst eine Komponente einem Unit-Test zu unterziehen und anschließend die Anzahl der getesteten Komponenten zu erhöhen, um Integrations- und Systemtests durchzuführen. Mit diesem Testverfahren können Sie Probleme bei Testfällen und beim Modelldesign leichter identifizieren und beheben. Wenn Sie eine aggregierte Abdeckung erhalten möchten, testen Sie Ihr gesamtes Modell.

Verwenden eines Testrahmens

Ein Testrahmen enthält eine Kopie der zu testenden Komponente oder, zum Testen eines gesamten Modells, einen Verweis auf das Modell. Testrahmen enthalten auch die für den Test verwendeten Eingaben und Ausgaben. Durch die Verwendung eines Testrahmens wird das zu testende Modell oder die zu testende Komponente vom Hauptmodell isoliert, wodurch das Hauptmodell übersichtlich bleibt.

Sie können den Rahmen intern in Ihrer Modelldatei oder in einer vom Modell getrennten externen Datei speichern. Durch das interne Speichern des Rahmens wird die gemeinsame Nutzung des Modells und der Tests vereinfacht, da weniger Artefakte vorhanden sind und Sie Testprobleme leichter beheben können. Durch das externe Speichern des Rahmens können Sie nur den Rahmen wiederverwenden und freigeben und Ihr Design klar von Ihren Testartefakten trennen. Der Testrahmen funktioniert unabhängig davon, ob er sich innerhalb oder außerhalb des Modells befindet. Weitere Informationen zu Testrahmen finden Sie unter Test Harness and Model Relationship und Erstellen eines Testrahmens.

Die Abbildung zeigt ein Beispiel für einen Testrahmen.

Test harness showing the inputs connected to a routing subsystem. The subsystem connects to the shift logic block being tested, and the block connects to another routing subsystem, which then connects to the output.

Die zu prüfende Komponente ist der Block shift_logic, der bei der Erstellung des Rahmens aus dem Hauptmodell kopiert wird. Die Kopie des Blocks shift_logic ist mit dem Hauptmodell verknüpft. Die Eingaben sind Inport-Blöcke und die Ausgabe ist ein Outport-Block. Die vertikalen Subsysteme enthalten Blöcke zur Signalspezifikation und das Routing, das die Komponentenschnittstelle mit den Eingaben und Ausgaben verbindet.

Festlegen der Eingaben und Ausgaben

Bedenken Sie, welche Eingabesignale und Signaltoleranzen Sie zum Testen Ihres Modells verwenden möchten und wo Sie diese erhalten können. Sie können Ihrem Testrahmen einen Signal Editor-Block hinzufügen, um die Eingabesignale zu definieren. Alternativ können Sie Eingaben aus einer Microsoft® Excel- oder MAT-Datei oder einem Testsequenzblock definieren und verwenden. Wenn Sie Simulink Design Verifier installiert haben, können Sie Test-Eingaben automatisch generieren.

Überlegen Sie für die Ausgabe Ihres Tests, ob Sie die Testdetails und Testergebnisse zur Archivierung oder Weitergabe in einem Bericht speichern möchten. Sie können Ausgaben auch als Eingaben für Test Assessment-Blöcke verwenden, um die Testergebnisse zu bewerten und zu überprüfen. Verwenden Sie für Basistests die Ausgaben, um die tatsächlichen Ergebnisse mit den erwarteten Ergebnissen zu vergleichen.

Optimierung der Testausführungszeit

Möglichkeiten zur Optimierung der Testzeit umfassen die Verwendung von Iterationen, parallele Tests und die Ausführung einer Teilmenge von Testfällen.

Entscheiden Sie bei der Erstellung Ihres Tests, ob Sie mehrere Tests oder mehrere Durchläufe desselben Tests durchführen möchten. Eine Iteration ist eine Variation eines Testfalls. Verwenden Sie Iterationen für verschiedene Sätze von Eingabedaten, Parametersätzen, Konfigurationssätzen, Testszenarien, Basisdaten und Simulationsmodi in Iterationen. Ein Vorteil der Verwendung von Iterationen besteht darin, dass Sie Ihre Tests mit schnellem Neustart ausführen können. Dadurch muss das Modell nicht für jede Iteration neu kompiliert werden, was die Simulationszeit verkürzt.

Wenn Sie beispielsweise über mehrere Sätze von Eingabedaten verfügen, können Sie für jede externe Eingabedatei eine Testfalliteration einrichten. Eine weitere Möglichkeit, Parameter zu überschreiben, besteht in der Verwendung von skriptgesteuerten Parameter-Durchläufen, mit denen Sie viele Werte iterieren können. Verwenden Sie separate Testfälle, wenn Sie eine unabhängige Konfigurationskontrolle benötigen oder wenn sich jeder Test auf eine andere Anforderung bezieht. Weitere Informationen zu Iterationen finden Sie unter Test Iterations.

Wenn Sie über Parallel Computing Toolbox™ verfügen, können Sie Tests parallel auf Ihrem lokalen Rechner oder Cluster ausführen. Wenn Sie über MATLAB Parallel Server™ verfügen, können Sie Tests parallel auf einem Remote-Cluster ausführen. Paralleles Testen ist sinnvoll, wenn Sie eine große Anzahl von Testfällen haben oder wenn die Ausführung der Testfälle viel Zeit in Anspruch nimmt. Siehe Run Tests Using Parallel Execution.

Eine weitere Möglichkeit, die Testzeit zu optimieren, besteht darin, eine Teilmenge der Testfälle auszuführen, indem die auszuführenden Tests mit Tags versehen werden.

Weitere Informationen zur Verbesserung und Optimierung der Modellsimulation finden Sie im Abschnitt „Leistung optimieren“ unter „Simulation“ in der Dokumentation zu Simulink.

Verwenden der programmatischen oder GUI-Schnittstelle

Zum Erstellen und Ausführen von Tests stellt Simulink Test den Test Manager zur Verfügung (ein interaktives Tool) sowie API-Befehle und -Funktionen, die Sie in Testskripten und in der Befehlszeile verwenden können. Mit dem Test Manager können Sie zahlreiche Tests verwalten und Ergebnisse systematisch erfassen und verwalten. Wenn Sie neue Testbewertungen definieren müssen, verwenden Sie den Test Manager, da diese Funktion in der API nicht verfügbar ist. Wenn Sie in einer Umgebung mit kontinuierlicher Integration arbeiten, verwenden Sie die API. Andernfalls können Sie die von Ihnen bevorzugte Option verwenden.

Siehe auch

Themen