Automatisation et séquencement des tests dans un monde axé sur l’IA : Optimisez votre application pour plus de performances et de fiabilité

Aperçu

À 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.

Contenu

Défi : L’écart entre le temps passé sur l’infrastructure de gestion des tests et le développement des mesures

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.

En quoi consiste un séquenceur de test ?

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 : 

  1. Mise en place interactive : les équipes utilisent des faces-avant logicielles et des outils pilotés par la configuration pour confirmer le câblage, l’intégrité du signal, les paramètres de l’instrument et le comportement de base du DUT. L’utilisation du logiciel NI InstrumentStudioTM pour effectuer des mesures avec l’instrumentation PXI pourrait être un exemple de la manière dont les équipes pourraient exécuter cette étape. 
  2. Automatisation légère — L'automatisation légère peut être gérée au niveau de l'application avec des outils de séquencement d'automatisation sans code intégrés qui séquencent un ensemble de mesures ou de capteurs. Si des mesures ou des analyses personnalisées sont nécessaires à ce stade, les équipes peuvent généralement utiliser NI LabVIEW ou d ' autres applications de codage pour des tests et des procédures reproductibles. L’objectif de cette étape est la répétabilité et l’itération plus rapide, pas un framework de gestion de test complet.
  3. Gestion/séquenceur de test complet — Lorsqu'une application requiert des variants, une branchement des résultats de test, une exécution parallèle, des workflows d'opérateur, des rapports standardisés ou un déploiement sur plusieurs stations, le séquencement devient sa propre exigence. À ce stade, le code est utilisé pour les modules de mesure qui sont ensuite orchestrés dans un séquenceur tel que NI TestStand . Un séquenceur comme TestStand empêche le contrôle de flux, la gestion des résultats et d’autres opérations de s’étendre dans chaque module de code de test.

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

Capture d'écran InstrumentStudio SequencerFigure 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

Capture d'écran FlexLogger Sequencer Plug-In 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

Avantages de l'utilisation de NI LabVIEW+ Suite pour le séquencement de tests

La LabVIEW+ Suite couvre le séquencement à plusieurs niveaux, selon où vous en êtes dans le flux de travail de développement. 

  • InstrumentStudio offre un contrôle interactif du montage et de l ' exécution par script pour le matériel et les mesures compatibles. Vous pouvez l’utiliser pour définir des configurations d’instruments, des configurations stimulus/réponse et des exécutions de mesure répétables sans développer un séquenceur complet. Les séquences créées dans InstrumentStudio peuvent être ouvertes et développées dans TestStand 
  • FlexLogger permet l ' exécution de tests pilotés par la configuration pour les systèmes centrés sur les capteurs/DAQ. Vous pouvez l’utiliser pour définir des voies, mettre à l’échelle, enregistrer et tester des configurations d’exécution, afin que les équipes puissent répéter les procédures sans construire un framework personnalisé.  
  • LabVIEW est utilisé pour des mesures plus complexes ou des analyses personnalisées en tant que VIs modulaires pouvant être appelés à partir d ' outils de séquence de plus haut niveau. LabVIEW vous permet également d’étendre les fonctionnalités d’InstrumentStudio ou FlexLogger avec des plug-ins. (La création de plug-ins nécessite une licence professionnelle pour InstrumentStudio et FlexLogger.) 
  • TestStand offre un moteur de séquence robuste qui gère une automatisation complexe telle que la branchement basé sur variable, l'exécution parallèle/multi-UUT, l'IU opérateur, les déploiements, et la génération de rapports/traçabilité standardisée. TestStand utilise pleinement le code de mesure écrit non seulement dans LabVIEW, mais une variété d’autres langages, y compris C/C++, Python, .NET, etc.  
  • La LabVIEW+ Suite prend en charge le flux de travail de développement en permettant aux équipes de commencer par une exécution pilotée par la configuration et des outils d’automatisation des tests sans code, qui peuvent promouvoir l’orchestration de TestStand à mesure que la complexité augmente, sans réécrire le code de mesure de base. 

Comment choisir la bonne approche de séquencement

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.

Quand utiliser le séquencement de base

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.

Quand utiliser un framework de gestion des tests

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.

Quand construire un séquenceur personnalisé

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.

Pourquoi utiliser les logiciels NI plutôt que d’autres solutions pour le séquencement de tests ?

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.

Le rôle de l’IA dans le séquencement de tests

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.

LabVIEW+ Suite est conçue pour le séquençage d’automatisation à chaque étape du développement

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.

SurfaceCapacité de séquenceur InstrumentStudioLimitation du séquenceur InstrumentStudio
Construction d'une séquenceAjouter 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éesNe supporte pas les branches avancées, la logique conditionnelle ou l'exécution parallèle dans les séquences
Configuration des étapesCré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’automatisationImpossible de créer une logique de mesure personnalisée ou d'intégrer des scripts/codes externes pour l'exécution de pas
BalayagesImplémenter des balayages de base à un niveau avec progression linéaire des paramètresNe 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équencesExé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équenceGénérer un fichier PDF qui détaille les résultats de chaque exécution de séquenceImpossible 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équencesGénère automatiquement un journal d'exécution qui peut être utilisé pour le suivi et la validation des exécutions de séquenceNe 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

SurfaceCapacité plug-in de séquencement FlexLoggerLimites du plug-in de séquencement FlexLogger
Modèle de séquencementExécuter des séquences linéaires basées sur des étapes avec des durées définiesAgir comme une machine à états complète avec des états hiérarchiques ou parallèles
Contrôle de fluxBranchement au niveau de l'étape : sauter une étape, répéter une étape, s'arrêter ou sauter à une étape spécifiquePrendre en charge le flux de contrôle arbitraire (interrupteur/condition, branchement imbriqué, étiquettes dynamiques)
Logique conditionnelleUtiliser des expressions conditionnelles (booléennes/numériques) pour les actions start, stop, preconditions et post-stepRéagir de façon déterministe ou instantanée à des événements (les conditions sont interrogées, pas les interruptions)
BouclesImplémenter des boucles de base en répétant des étapes ou en sautant à des étapes antérieuresCréer des boucles calculées dynamiquement ou des séquences générées à l'exécution
Voies de sortieDriver plusieurs voies de sortie analogique et numérique par instance de séquenceurDépasser les limites du matériel/FlexLogger ou spécifier explicitement une valeur «max channels» (non définie)
Valeurs en sortieMaintenir, 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
TempsExé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 conditionsGarantir une réponse à latence zéro (les valeurs en entrée peuvent être légèrement retardées)
Comportement à l'exécutionExécuter plusieurs instances de plug-in de séquenceur indépendant dans un projetModifier la structure de la séquence (pas, voies, logique) pendant l'exécution
Cas d’utilisationProcédures de test, rodage, profils de durabilité, rampes/maintiens conditionnelsPLC de remplacement, verrouillages critiques pour la sécurité, contrôle en boucle fermée

 

Tableau 2 : FlexLogger Sequencing Plug-In - Tableau de comparaison