À mesure que la couverture des tests et la complexité des applications augmentent, les ingénieurs passent souvent plus de temps à maintenir l’infrastructure de gestion des tests qu’à développer des mesures, ce qui conduit à des systèmes moins maintenables et à faible réutilisation. Le séquencement est un élément central de la gestion des tests, permettant des tests et des mesures automatisés.
Ce white paper explore l'utilisation du séquençage au niveau de l'application, sans code et dans un framework de gestion des tests dédié tel que NI TestStand, et comment déterminer la meilleure approche pour vous. Ce white paper abordera également comment l'IA peut être utilisée pour accélérer le développement et comment la Suite NI LabVIEW+ se compare aux solutions open source.
Les ingénieurs passent souvent trop de temps à développer des séquenceurs au lieu de développer du code de test, ce qui ralentit le déploiement et l’exécution des tests. À mesure que les exigences augmentent, le séquencement et le code de support se transforment en une deuxième base de code. Le travail typique passe des nouvelles mesures à la maintenance de l’infrastructure. Les opérations telles que l’exécution des étapes, la configuration, le déploiement du système de test, la gestion des erreurs, l’enregistrement et la génération de rapports doivent toutes être développées et maintenues pour assurer la productivité continue des tests. L’abandon de l’exécution des tests pour la gestion des tests réduit la productivité, ralentit la duplication vers de nouvelles stations et augmente les risques. Tout petit changement dans l’orchestration des tests peut briser un code de mesure par ailleurs stable.
Un autre défi souvent négligé est le manque de temps ou d’efforts consacrés à l’infrastructure de gestion des tests, ce qui conduit à un développement répétitif dans les étapes ultérieures. Prenons, par exemple, une équipe de validation qui peut n’avoir que de simples besoins d’automatisation. Lors de la transition de la validation à la production, les tests exécutés se chevaucheront probablement. Si l’infrastructure de test est mal alignée, cela peut entraîner un réaménagement inutile du code de test et de l’automatisation existants qui auraient pu être reportés à l’étape suivante du développement du produit.
Un séquenceur est la couche de commande qui définit le flux de test, tel que l’ordre des étapes, la branchement, les limites/décisions, la gestion des erreurs, la génération de rapports et l’utilisation des ressources (instruments, connexions DUT, répertoires de fichiers, etc.). Dans la conception et la validation, les équipes commencent généralement par des mesures interactives pour obtenir rapidement une « première trace », puis ajoutent l’automatisation dès que le flux de travail se répète. Ces étapes définissent une progression commune :
Le séquencement de base peut être géré dans des applications interactives pour des flux d’automatisation linéaire simples. Des logiciels comme InstrumentStudio et NI FlexLogger, qui offrent des outils d'automatisation des tests sans code, seraient des exemples de ce type d'application interactive.
Par exemple, imaginez que vous deviez valider un matériel sous test (DUT). Dans InstrumentStudio, vous pouvez automatiser un ensemble d’étapes répétées dans une séquence telle que la configuration de votre instrument pour générer un signal connu, la mesure de la réponse du DUT et la capture des résultats. Cette séquence répétable vous permet de réexécuter rapidement le même processus sur le même ou plusieurs périphériques, garantissant ainsi une cohérence et un gain de temps par rapport au fonctionnement manuel, sans avoir besoin de code supplémentaire. Il est important de noter, cependant, que ce type de séquence est généralement linéaire et n'exécute que les mêmes étapes dans le même ordre pour chaque périphérique. Pour un contrôle de flux de séquence étendu, des modèles de processus spécialisés ou une interface utilisateur et des rapports personnalisés, vous auriez besoin d’un outil de séquencement plus avancé. Les séquences intégrées dans InstrumentStudio sont enregistrées en tant que fichier de séquence qui peut également être ouvert dans TestStand pour une fonctionnalité de gestion de test étendue.
Voir le tableau 1 pour une liste plus détaillée de ce qui peut et ne peut pas être accompli avec le séquenceur InstrumentStudio.
Remarque : Le séquenceur InstrumentStudio requiert une licence InstrumentStudio Professional, qui est également incluse dans la LabVIEW+ Suite .
Pour en savoir plus sur le séquenceur InstrumentStudio, consultez la page Documentation InstrumentStudio sequencer tool.
Figure 1. Séquenceur InstrumentStudio
L'automatisation de l'enregistrement de la réponse en sortie d'un module de capteur avec FlexLogger est un autre exemple de séquencement d'automatisation sans code. FlexLogger propose un plug-in de séquencement pour automatiser l'enregistrement des données d'un DUT, y compris l'initialisation d'un périphérique d'acquisition de données, l'application de signaux de stimulus au DUT et l'enregistrement des données pendant une durée définie dans une séquence linéaire. Ce plug-in permet l’exécution de séquences linéaires basées sur des étapes, la branchement de base au niveau de l’étape (skip, repeat, stop ou jump to step) et la logique conditionnelle interrogée (start, stop, preconditions et actions post-étape), permettant l’automatisation des procédures de test sans avoir besoin de développer du code.
Le tableau 2 donne une liste plus détaillée de ce qui peut et ne peut pas être réalisé à l ' aide du plug-in de séquencement FlexLogger.
Remarque : Le plug-in de séquencement pour FlexLogger requiert une licence FlexLogger Professional, qui est également incluse dans la LabVIEW+ Suite .
Pour en savoir plus sur Sequencer Plug-In, allez sur https://github.com/ni/niflexlogger-plugins/tree/main/PDK%20plugins/Output%20Sequencer
Figure 2. Plug-in de séquencement FlexLogger
Le séquençage complexe ajoute de la variabilité (paramètres basés sur les données), des tentatives/ignorer la logique, le parallélisme (multi-UUT, multi-site), l’arbitrage des ressources et la traçabilité. Les capacités de séquencement complexes sont cruciales dans la validation et la production car elles imposent une exécution reproductible sur toutes les stations, variants, améliorent le débit à l’aide de modèles de processus avancés, définissent un comportement déterministe et produisent un suivi/rapport cohérent pour la mise au point et l’audit des résultats.
Un test fonctionnel en production utilisant TestStand, par exemple, peut exécuter les mêmes étapes de mesure de base pour plusieurs variantes de produits et plusieurs unités sous test (UUT), tout en adaptant les paramètres et le flux en fonction d’un fichier de configuration ou d’un numéro de référence balayé. La séquence peut initialiser des ressources partagées, telles que des châssis PXI, des alimentations ou des dispositifs, puis exécuter des threads de test par UUT en parallèle tout en verrouillant les instruments qui ne peuvent pas être partagés. Si une mesure échoue, la séquence peut appliquer une branche conditionnelle, comme exécuter une sous-séquence de diagnostic ou passer à un arrêt sûr, et elle peut capturer les résultats standardisés dans un rapport traçable avec numéro de série, limites, ID de l'opérateur et métadonnées d'étalonnage. Ce processus garantit que chaque station produit des données cohérentes pour la mise au point et l’audit des résultats de séquence.
Figure 3. TestStand Sequencer Editor
La LabVIEW+ Suite couvre le séquencement à plusieurs niveaux, selon où vous en êtes dans le flux de travail de développement.
Cette section présente trois stratégies distinctes pour organiser des séquences de test automatisées en fonction des exigences spécifiques de votre projet. Choisir la bonne approche dépend de l’équilibre entre vos besoins en matière de vitesse de configuration, d’évolutivité et de maintenance à long terme.
Utilisez des outils d’automatisation des tests sans code comme FlexLogger ou InstrumentStudio lorsque le flux est simple et que vous souhaitez une mise en place rapide sans construire de framework. Ces produits conviennent parfaitement à la validation et à la caractérisation sur banc : des séries répétables où les besoins en matière de rapports et de traçabilité sont minimes.
Le séquençage d’automatisation sans code simplifie l’automatisation qui est souvent réalisée à l’aide d’un langage de script tel que Python, qui peut désormais être réalisé au niveau de l’application, réduisant ainsi la quantité de code à écrire et à valider.
Passez à TestStand lorsque vous devez coordonner plusieurs stations, effectuer des changements fréquents, nécessiter une interface opérateur, avoir besoin de rapports standardisés, prendre en charge l'exécution multi-UUT ou parallèle, ou que vous devez répondre aux exigences de conformité et de traçabilité. Dans ces cas, gardez le code de mesure modulaire et déplacez les problèmes de contrôle de flux, de gestion des résultats et de déploiement dans le séquenceur, afin que l’orchestration ne s’étende pas dans chaque module de test.
Le principal cas d’utilisation d’un framework de gestion des tests est sans aucun doute dans les environnements de test en production où un volume élevé, un débit élevé et une traçabilité des tests sont nécessaires. Cependant, les applications de gestion de test peuvent également trouver une place dans les étapes de validation du test. Prenons, par exemple, lorsqu’un volume élevé de tests de validation et/ou de caractérisation doit être exécuté, les limites d’un séquenceur simple apparaîtront rapidement, en particulier dans les langages tels que Python qui manquent d’optimisation de la vitesse. De plus, il peut y avoir un décalage entre les cycles de validation et de production, où le code peut devoir être réécrit pour être plus optimisé pour les tests en production. L’utilisation de TestStand à la fois en validation et en production garantit que les équipes de validation sont bien équipées pour les situations nécessitant des tests en grand volume et une transition plus fluide vers le stade de production du développement.
Développez un séquenceur personnalisé uniquement lorsque vos exigences sont stables et que vous pouvez vous engager dans une appropriation à long terme (maintenance, documentation, intégration et déploiement/mises à jour automatisés). En dehors du séquençage de base, le coût de possession est souvent important par rapport à l’utilisation d’outils de séquençage éprouvés et maintenus.
Les logiciels NI réduisent les risques lorsque vous avez besoin d’un support matériel intégré, d’un moteur d’exécution maintenu, d’outils de déploiement et de rapports/traçabilité intégrés. Les logiciels open source peuvent fonctionner si votre équipe s’approprie le framework à long terme et que vos exigences (combinaison matérielle, génération de rapports, déploiement) sont simples, linéaires et stables. Cependant, en dehors du séquencement de base, la possession d'un framework personnalisé induit un coût important de possession dans le développement et la maintenance, et ceux-ci peuvent déjà être gérés au sein de logiciels NI tels qu'InstrumentStudio et FlexLogger.
De plus, TestStand dans le cadre de la LabVIEW+ Suite offre des performances de test inégalées, par rapport à l’optimisation d’exécution plus lente de Python, et moins de complexité de développement de séquenceur par rapport au développement en C ou .NET. TestStand offre un framework complet de gestion des tests que nous avons optimisé et maintenu pendant des décennies, pour éviter aux ingénieurs d’avoir à redévelopper la même solution que celle déjà disponible sur étagère.
L’IA accélère le développement du séquençage des tests. De nombreux développeurs utilisent l’IA pour générer du code de mesure, analyser des données de test et même créer des séquences plus simples dans leurs langages préférés. NI NigelTM AI est intégré directement dans la LabVIEW+ Suite, vous pouvez donc tirer parti de Nigel AI pour tout cela et plus encore. Nigel AI avec LabVIEW+ Suite offre plusieurs avantages par rapport aux autres solutions d'IA.
Nigel est formé spécifiquement pour les applications de test et de mesure et peut fournir des informations sur la façon d'utiliser LabVIEW, InstrumentStudio, FlexLogger et TestStand pour vous aider à apprendre et à démarrer plus rapidement. Nigel fournit des conseils sur les fonctions et les paramètres à utiliser et sera bientôt en mesure de générer une séquence TestStand complète à partir d’une invite, tout comme vous pourriez le faire en Python ou en C, dans un framework de gestion de test entièrement développé pour plus de robustesse.
Le séquençage des tests est un élément central de la gestion des tests car il définit la manière dont les mesures sont exécutées, y compris l’ordre des étapes, la branche, les limites/décisions, la gestion des erreurs et l’enregistrement/rapport des résultats. À mesure que la couverture des tests et la complexité des applications augmentent, l’infrastructure de séquencement et de support peut rapidement se transformer en une deuxième base de code qui ralentit le déploiement et augmente les risques.
En utilisant LabVIEW+ Suite, vous pouvez faire évoluer l’automatisation sans introduire l’orchestration, la génération de rapports, le déploiement et la traçabilité dans chaque module de mesure en utilisant l’approche de séquencement la plus simple qui répond aux besoins actuels avec InstrumentStudio ou FlexLogger, tout en prévoyant une voie claire vers un framework de gestion des tests dédié avec TestStand alors que les exigences s’étendent de la validation à la production. De plus, Nigel AI offre une assistance IA complète et une orchestration future du développement de séquences en fournissant des informations matérielles et logicielles complètes, ainsi qu’une génération de séquences bientôt implémentée pour amener votre automatisation au niveau supérieur.
| Surface | Capacité de séquenceur InstrumentStudio | Limitation du séquenceur InstrumentStudio |
|---|---|---|
| Construction d'une séquence | Ajouter des tableaux de bord comme étapes de séquence pour configurer des plug-ins d’E/S et de mesure pour des étapes de mesure personnalisées | Ne supporte pas les branches avancées, la logique conditionnelle ou l'exécution parallèle dans les séquences |
| Configuration des étapes | Créez des étapes directement à partir des mesures de l'interface InstrumentStudio. En configurant une mesure dans un tableau de bord, InstrumentStudio peut traduire la configuration directement en étape d’automatisation | Impossible de créer une logique de mesure personnalisée ou d'intégrer des scripts/codes externes pour l'exécution de pas |
| Balayages | Implémenter des balayages de base à un niveau avec progression linéaire des paramètres | Ne supporte pas les balayages imbriqués, les structures de boucle complexes ou les changements de paramètres dynamiques en fonction des résultats de test |
| Exécution de séquences | Exécutez des séquences pour effectuer chaque étape de mesure définie. Les mesures sont affichées en direct dans InstrumentStudio pendant l'exécution. | Impossible de brancher l'exécution en fonction des résultats des étapes, d'exécuter des tests parallèles ou de gérer les workflows de l'opérateur |
| Rapport de séquence | Générer un fichier PDF qui détaille les résultats de chaque exécution de séquence | Impossible de personnaliser les formats de rapport au-delà du format .pdf par défaut ou de générer automatiquement des analyses ou des résumés avancés |
| Enregistrement des séquences | Génère automatiquement un journal d'exécution qui peut être utilisé pour le suivi et la validation des exécutions de séquence | Ne fournit pas de gestion avancée des journaux, d'options d'exportation ou d'intégration automatique des journaux avec des systèmes externes |
Tableau 1. Tableau de comparaison des séquenceurs InstrumentStudio
| Surface | Capacité plug-in de séquencement FlexLogger | Limites du plug-in de séquencement FlexLogger |
|---|---|---|
| Modèle de séquencement | Exécuter des séquences linéaires basées sur des étapes avec des durées définies | Agir comme une machine à états complète avec des états hiérarchiques ou parallèles |
| Contrôle de flux | Branchement au niveau de l'étape : sauter une étape, répéter une étape, s'arrêter ou sauter à une étape spécifique | Prendre en charge le flux de contrôle arbitraire (interrupteur/condition, branchement imbriqué, étiquettes dynamiques) |
| Logique conditionnelle | Utiliser des expressions conditionnelles (booléennes/numériques) pour les actions start, stop, preconditions et post-step | Réagir de façon déterministe ou instantanée à des événements (les conditions sont interrogées, pas les interruptions) |
| Boucles | Implémenter des boucles de base en répétant des étapes ou en sautant à des étapes antérieures | Créer des boucles calculées dynamiquement ou des séquences générées à l'exécution |
| Voies de sortie | Driver plusieurs voies de sortie analogique et numérique par instance de séquenceur | Dépasser les limites du matériel/FlexLogger ou spécifier explicitement une valeur «max channels» (non définie) |
| Valeurs en sortie | Maintenir, ramper, interpoler et calculer des sorties en utilisant des formules (dernier, défaut, t, fonctions mathématiques) | Exécuter le code utilisateur (VIs LabVIEW, Python, algorithmes personnalisés) dans une étape |
| Temps | Exécuter des étapes à cadencement logiciel adaptées au séquencement lent/modéré | Fournir un contrôle de waveform haute vitesse, déterministe et à cadencement matériel |
| Réactivité | Voies d'entrée mappées de référence dans des conditions | Garantir une réponse à latence zéro (les valeurs en entrée peuvent être légèrement retardées) |
| Comportement à l'exécution | Exécuter plusieurs instances de plug-in de séquenceur indépendant dans un projet | Modifier la structure de la séquence (pas, voies, logique) pendant l'exécution |
| Cas d’utilisation | Procédures de test, rodage, profils de durabilité, rampes/maintiens conditionnels | PLC de remplacement, verrouillages critiques pour la sécurité, contrôle en boucle fermée |
Tableau 2 : FlexLogger Sequencing Plug-In - Tableau de comparaison