Planification des tests et stratégies
Vous pouvez utiliser Simulink®Test™ pour tester le fonctionnement des modèles et du code. Avant de créer un test, tenez compte des éléments suivants :
Identifier les objectifs du test
Avant de créer votre test, vous devez bien cerner vos objectifs. Votre test peut avoir un ou plusieurs objectifs :
Tests de simulation
Dans les cas où votre test ne doit simuler qu’un modèle sans erreurs ou pour effectuer des tests de régression, vous pouvez exécuter un test de simulation. Les tests de simulation sont utiles si votre modèle est encore en cours de développement ou si vous disposez d’un modèle de test existant qui contient des données d’entrée et des évaluations et enregistre les données pertinentes. Pour obtenir un exemple, consultez Test a Simulation for Run-Time Errors.
Vérification des exigences
Si vous avez installé Requirements Toolbox™, vous pouvez évaluer si un modèle se comporte conformément aux exigences en liant un ou plusieurs cas de test aux exigences créées dans la Requirements Toolbox. Vous pouvez vérifier si le modèle satisfait aux exigences en procédant de l’une des manières suivantes :
Création d’instructions verify ou de scripts de critères personnalisés dans le modèle ou le harnais de test.
Intégration de Model Verification Blocks au modèle ou au harnais de test.
Capture des résultats de la simulation dans le cas de test et comparaison des résultats de la simulation avec les données de base de référence.
Pour obtenir un exemple d’utilisation d’instructions verify, consultez Test Downshift Points of a Transmission Controller.
Comparaison de données
Vous pouvez comparer les résultats de la simulation à des données de base de référence ou à une autre simulation. Vous pouvez également comparer les résultats de différentes versions de MATLAB®.
Dans un test de base de référence, vous commencez par établir les données de base de référence qui correspondent aux résultats attendus. Vous pouvez définir les données de base de référence manuellement, importer des données de base de référence à partir d’un fichier Excel® ou MAT, ou capturer des données de base de référence à partir d’une simulation. Pour plus d’informations, consultez Baseline Testing. Pour comparer les résultats des tests de plusieurs modèles, vous pouvez comparer les résultats de chaque test de modèle aux mêmes données de base de référence.
Dans un test d’équivalence, vous comparez deux simulations afin de savoir si elles sont équivalentes. Par exemple, vous pouvez comparer les résultats de deux solveurs ou comparer les résultats d’une simulation en mode normal à un code généré en mode SIL (software-in-the-loop), PIL (processor-in-the loop) ou HIL (real time hardware-in-the-loop). Vous pouvez étudier l’impact des différentes valeurs des paramètres ou des jeux de données de calibrage en effectuant des tests d’équivalence. Pour obtenir un exemple de tests d’équivalence, consultez Back-to-Back Equivalence Testing. Vous ne pouvez pas comparer plus de deux modèles dans le cadre d’un même cas de test d’équivalence.
Dans le cadre d’un test de versions multiples, vous exécutez des tests dans plusieurs versions installées de MATLAB. Utilisez des tests de versions multiples afin de vérifier que les tests réussissent et produisent les mêmes résultats dans différentes versions.
Tests SIL et PIL
Vous pouvez vérifier le résultat du code généré en effectuant des simulations comparatives en mode normal, et en mode SIL ou PIL. L’exécution de tests comparatifs en mode normal, et en mode SIL ou PIL constitue une forme de tests d’équivalence. Le même test comparatif peut exécuter plusieurs scénarios de test en itérant sur différents vecteurs de test définis dans un fichier MAT ou Excel. Vous pouvez appliquer des tolérances à vos résultats afin de tenir compte des différences de valeur et des différences temporelles techniquement acceptables entre le modèle et le code généré. Les tolérances peuvent également s’appliquer au code qui s’exécute en temps réel sur le hardware. Vous ne pouvez pas utiliser le mode SIL ou PIL pour les modèles de sous-systèmes.
Tests en temps réel
Avec Simulink Real-Time™, vous pouvez inclure les effets des systèmes physiques, des signaux et du hardware embarqué en exécutant les tests en mode HIL (hardware-in-the-loop) sur un ordinateur cible en temps réel. En exécutant un test de base de référence en temps réel, vous pouvez comparer les résultats à des données connues et fiables. Vous pouvez également exécuter un test comparatif entre un modèle, SIL ou PIL, et une simulation en temps réel.
Couverture
Simulink Coverage™ vous permet de collecter des données de couverture pour vous aider à quantifier la portée des tests de votre modèle ou de votre code. Lorsque vous configurez la collecte de la couverture pour votre fichier de test, les résultats du test comprennent la couverture du système en cours de test et, éventuellement, des modèles référencés. Vous pouvez spécifier la métrique de couverture à renvoyer. La couverture est supportée pour les blocs Model Reference, les blocs Atomic Subsystem et les modèles de plus haut niveau s’ils sont configurés pour le mode SIL (Software-in-the-Loop) ou PIL (Processor-in-the-Loop). La couverture n’est pas supportée pour les blocs SIL ou PIL S-Function.
Si vos résultats font état d’une couverture incomplète, vous pouvez augmenter la couverture en procédant de l’une des manières suivantes :
Ajouter manuellement des cas de test au fichier de test.
Générer des cas de test pour augmenter la couverture avec Simulink Design Verifier™.
Dans les deux cas, vous pouvez lier les nouveaux cas de test à des exigences, ce qui est nécessaire pour certaines certifications.
Tester un modèle entier ou des composants spécifiques
Vous pouvez tester un modèle entier ou un composant de modèle seulement. L’une des manières de procéder consiste à commencer par effectuer un test unitaire d’un composant, puis à augmenter le nombre de composants testés pour effectuer des tests d’intégration et des tests au niveau système. Avec ce schéma de test, vous pouvez plus facilement identifier et débugger les problèmes de design des cas de test et des modèles. Si vous souhaitez obtenir une couverture agrégée, testez votre modèle entier.
Utiliser un harnais de test
Un harnais de test contient une copie du composant en cours de test ou, lorsqu’il s’agit de tester un modèle entier, une référence au modèle. Les harnais contiennent également les entrées et sorties utilisées pour les tests. Le recours à un harnais de test permet d’isoler le modèle ou le composant testé du modèle principal, ce qui permet à ce dernier de rester propre et non encombré.
Vous pouvez enregistrer le harnais en interne avec votre fichier de modèle ou dans un fichier externe distinct. L‘enregistrement du harnais en interne simplifie le partage du modèle et des tests. En effet, les artefacts sont moins nombreux et vous pouvez débugger plus facilement les problèmes liés aux tests. L‘enregistrement du harnais en externe vous permet de réutiliser et de partager uniquement le harnais, et de distinguer clairement votre design de vos artefacts de test. Le harnais de test fonctionne de la même manière, qu’il soit interne ou externe au modèle. Pour plus d’informations sur les harnais de test, consultez Test Harness and Model Relationship et Créer un harnais de test.
La figure vous présente un exemple de harnais de test.

Le composant à tester est le bloc shift_logic qui est copié depuis le modèle principal lors de la création du harnais. La copie du bloc shift_logic est liée au modèle principal. Les entrées correspondent aux blocs Inport tandis que la sortie est un bloc Outport. Les sous-systèmes verticaux contiennent des blocs de spécification de signaux et un routage qui connecte l’interface du composant aux entrées et aux sorties.
Déterminer les entrées et les sorties
Tenez compte des signaux d’entrée et des tolérances des signaux à utiliser pour tester votre modèle et de l’endroit où vous pouvez les obtenir. Vous pouvez ajouter un bloc Signal Editor à votre harnais de test pour définir les signaux d’entrée. Vous pouvez également définir et utiliser des entrées provenant d’un fichier Microsoft® Excel ou MAT, ou encore d’un bloc Test Sequence. Si vous avez installé Simulink Design Verifier, vous pouvez générer des entrées de test automatiquement.
Pour la sortie de votre test, déterminez si vous souhaitez que les détails et les résultats du test soient enregistrés dans un rapport à des fins d’archivage ou de distribution. Vous pouvez également utiliser les sorties en tant qu’entrées dans les blocs Test Assessment pour évaluer et vérifier les résultats des tests. Pour les tests de base de référence, utilisez les résultats pour comparer les résultats réels aux résultats attendus.
Optimiser le temps d’exécution du test
Les itérations, les tests parallèles et l’exécution d’un sous-ensemble de cas de test sont autant de moyens d’optimiser la durée des tests.
Lorsque vous concevez votre test, décidez si vous souhaitez des tests multiples ou des itérations du même test. Une itération est une variation d’un cas de test. Utilisez des itérations pour différents jeux de données d’entrée, ensembles de paramètres, ensembles de configuration, scénarios de test, données de base de référence et modes de simulation dans les itérations. L’un des avantages du recours aux itérations est que vous pouvez exécuter vos tests en utilisant le redémarrage rapide, ce qui évite de devoir recompiler le modèle pour chaque itération et réduit donc le temps de simulation.
Par exemple, si vous disposez de plusieurs jeux de données d’entrée, vous pouvez configurer une itération de cas de test pour chaque fichier d’entrée externe. Une autre manière de remplacer les paramètres consiste à utiliser des balayages de paramètres scriptés, qui vous permettent d’itérer sur de nombreuses valeurs. Utilisez des cas de test séparés si vous avez besoin d’un contrôle de configuration indépendant ou si chaque test concerne une exigence différente. Pour plus d’informations sur les itérations, consultez Test Iterations.
Si vous disposez de Parallel Computing Toolbox™, vous pouvez exécuter des tests en parallèle sur votre machine locale ou votre cluster. Si vous disposez de MATLABParallel Server™, vous pouvez exécuter des tests en parallèle sur un cluster distant. Les tests en parallèle sont utiles lorsque vous disposez d’un grand nombre de cas de test ou si certains de vos cas de test prennent beaucoup de temps pour s’exécuter. Consultez Run Tests Using Parallel Execution.
Une autre manière d’optimiser la durée des tests consiste à exécuter un sous-ensemble de cas de test en attribuant des tags aux tests à exécuter.
Pour plus d’informations sur l’amélioration et l’optimisation de la simulation du modèle, consultez la section « Optimiser les performances » sous « Simulation » dans la documentation Simulink.
Utiliser l’interface de programmation ou l’interface graphique
Pour créer et exécuter des tests, Simulink Test propose un outil interactif appelé Test Manager, ainsi que des commandes et fonctions API que vous pouvez utiliser dans les scripts de test et sur la ligne de commande. Le Test Manager vous permet de gérer de nombreux tests, et de saisir et gérer les résultats de manière systématique. Si vous devez définir de nouvelles évaluations de tests, utilisez le Test Manager. En effet, cette fonctionnalité n’est pas disponible dans l’API. Si vous travaillez dans un environnement d’intégration continue, utilisez l’API. Sinon, vous pouvez opter pour l’option que vous préférez.