Les matériels devenant de plus en plus complexes, les équipes de test sont soumises à des contraintes de temps accrues pour mettre les produits sur le marché. Une stratégie de test optimisée est donc plus importante que jamais. Les ingénieurs de test ont la tâche difficile de construire le testeur pour le produit suivant tout en maintenant les testeurs précédents. Cet article explore les défis majeurs auxquels sont confrontés les ingénieurs de test et explique comment un framework de test résout le problème en augmentant la productivité, en réduisant les retouches et en diminuant la maintenance. Enfin, il présente NI TestStand comme une solution prête à l’emploi pour la construction et la maintenance d’un framework de test, en mettant en évidence d’autres avantages comme la réduction des risques, le développement flexible et l’implémentation de fonctionnalités.
La priorité d’un ingénieur de test est de s’assurer qu’un produit fonctionnel est livré au client final. Mais plus les produits deviennent complexes, plus les tests le sont aussi. Prenons l’exemple d’une ampoule. Les ampoules intelligentes intègrent des fonctionnalités Wi-Fi et Bluetooth, et parfois même des haut-parleurs. Ces dernières années, une équipe de test a donc mis en place des tests d’électronique de puissance, de connectivité sans fil et d’acoustique.
Figure 1 : Les capacités avancées des produits ont prolongé la durée du développement, réduisant ainsi le temps consacré au développement des tests.
La figure 1 illustre la différence entre le temps prévu pour chaque phase et la réalité. Les délais restant inchangés, tout retard lors des phases précédentes réduit le temps de développement des tests. Les ingénieurs de test doivent tester plus de fonctionnalités en moins de temps. Lorsque nous réduisons le temps consacré à la phase de développement des tests, nous obligeons les ingénieurs de test à être plus réactifs que proactifs. Ils n’ont tout simplement pas le temps d’envisager une approche efficace.
Cette tendance à tester plus en moins de temps existe depuis des années, mais est souvent négligée car le coût de ce type de développement réactif n’est pas immédiatement visible. L’un des inconvénients majeurs du développement réactif est qu’il entraîne un manque de flexibilité, ce qui peut conduire à une perte de productivité pour les ingénieurs de test, qui perdent du temps à trouver des moyens d’ajouter des fonctionnalités à un testeur rigide et encombré. À un moment donné, il devient inefficace de continuer à construire sur le même testeur. Les ingénieurs sont alors contraints de recommencer et perdent du temps à reconstruire les mêmes fonctionnalités.
Cela entraîne d’importants remaniements et augmente le nombre de testeurs à entretenir. La phase de maintenance présente un certain nombre de difficultés, notamment si l’ingénieur qui a construit le testeur quitte l’entreprise sans l’avoir documenté de manière adéquate. Son départ peut également entraîner la reconstruction de l’ensemble du système.
Pour échapper à ce cercle vicieux de la réactivité, il est possible de construire un framework de test. Un framework de test est une application logicielle de haut niveau utilisée pour développer, exécuter, déployer et générer des rapports sur des séquences de test automatisées.
Figure 2 : Pourcentage de temps gagné par les clients NI qui ont intégré TestStand dans leur organisation.
Pour en savoir plus, consultez le guide de construction ou d’achat.
Lorsque les organisations exploitent ce type de framework, elles réduisent jusqu’à 75 % le temps de développement et 67 % le temps consacré à la maintenance.
Lorsque vous observez un ensemble de testeurs, vous constatez des éléments communs et uniques. Ces éléments communs, une fois identifiés, constituent la base du modèle de réutilisation de votre organisation de test. Par exemple, la plupart des testeurs requièrent une interface utilisateur ; cependant, les aspects de l’interface doivent répondre aux préférences et aux compétences de l’utilisateur.
Commun :
Logiciel de gestion de tests
Unique :
Logiciels de développement de tests
Liste 1 : Exemple de ventilation des éléments communs et uniques d’un testeur
Pour ne plus avoir à reconstruire des systèmes de test, vous devez identifier tous les éléments communs et les intégrer dans un framework que vous pouvez réutiliser pour tous vos testeurs. Le framework est essentiel pour prendre en charge les éléments communs. Il doit également être suffisamment flexible pour prendre en charge les éléments uniques, aujourd’hui et demain.
Une fois que toutes vos équipes de test ont adopté un framework de test unique, elles peuvent plus facilement partager du code entre elles. Le partage fonctionne aussi bien pour les éléments communs que pour les éléments uniques.
Figure 3 : Trois variantes différentes d’une carte, les principales différences étant l’ajout de la fonctionnalité Bluetooth dans la deuxième carte et de la fonctionnalité Wi-Fi dans la troisième.
Par exemple, sur la figure 3, il existe trois variantes de cartes. Bien que les fonctionnalités ajoutées dans les variantes deux et trois puissent être ajoutées des années plus tard, les principes de base du test de la carte restent inchangés. Vous pouvez développer trois fois le même système de test fondamental si votre organisme de test est réactif. Cette approche augmente le coût du testeur initial et a une incidence sur les coûts de maintenance à long terme.
La productivité est maximale lorsque les ingénieurs passent du temps à faire ce pour quoi ils sont le plus qualifiés. Cependant, les ingénieurs sont souvent contraints de consacrer beaucoup de temps à d’autres tâches, telles que la construction d’interfaces utilisateur ou la génération de rapports. Le développement de nouveaux testeurs est bien plus rapide si vous créez un framework commun pour tous vos testeurs. Tous les composants standard étant déjà construits, les ingénieurs peuvent donc se concentrer sur la création des fonctionnalités nécessaires pour tester le matériel. Cela peut ainsi accélérer la mise sur le marché de nouveaux produits.
La maintenance est la phase la plus longue du cycle de vie d’un testeur. La maintenance inclut l’ajout de nouveaux tests, le maintien de la compatibilité avec les mises à niveau logicielles ou de systèmes d’exploitation, ou la correction des bugs détectés. La maintenance d’un séquenceur de test s’étend même au domaine de la documentation. Les décisions prises lors de la phase de développement d’un testeur déterminent à quel point la phase de maintenance sera longue ou frustrante.
L’un des obstacles à la construction de frameworks de test est la recherche d’une personne ayant le temps et les qualifications nécessaires pour le faire. C’est pourquoi NI a développé TestStand, un séquenceur de test prêt à l’emploi et personnalisable pour toutes vos opérations de test. TestStand fournit un framework commun à tous vos testeurs, ce qui simplifie le développement des futurs testeurs. Avec tous les composants standard construits, les ingénieurs de test peuvent se concentrer sur la création de fonctionnalités de test uniques, la réduction du taux d’attrition et l’accélération de la commercialisation des produits.
Les ingénieurs de test maîtrisent différents langages. Il est essentiel qu’ils se sentent capables de se concentrer sur la mise en place des étapes qui permettent d’effectuer le test dans leur langage préféré. TestStand est indépendant du langage. Les organismes de test peuvent donc programmer dans différents langages, y compris Python, C/C++ et .NET, et les faire fonctionner ensemble dans le même framework.
Le développement de votre solution de gestion des tests n’est que le début de la tâche. Les logiciels ne représentent pas un coût unique mais un effort continu. Les logiciels doivent être maintenus pour atteindre les objectifs suivants :
Cet effort de maintenance peut souvent devenir important et nécessiter des mois de développement. D’autre part, les paquets de séquenceurs de test prêts à l’emploi, tels que NI TestStand, sont régulièrement mis à jour par NI pour rester compétitifs et viables. Cette politique vous permet de tirer parti des toutes dernières technologies (et d’obtenir des corrections de bugs et de nouvelles fonctionnalités) pour une fraction du coût. Pour en savoir plus, lisez notre guide Logiciel séquenceur de test - Construire ou acheter ?.
Le coût le plus important associé à la construction d’un séquenceur de test personnalisé est celui du développement initial pour l’implémentation de toutes les fonctionnalités. Le tableau suivant présente des fonctionnalités associées aux frameworks de test. Le tableau montre une estimation du temps nécessaire à l’implémentation de chaque fonctionnalité à partir de zéro et le compare au temps nécessaire à l’implémentation des mêmes fonctionnalités à l’aide de NI TestStand.
Figure 4 : NI a travaillé avec des professionnels du test pour s’assurer que les fonctionnalités standard étaient faciles à implémenter avec TestStand.
Pour en savoir plus, reportez-vous au guide de construction ou d’achat.
Toutes ces fonctionnalités ne conviennent pas à toutes les organisations à un moment donné, mais cela ne signifie pas qu’elles ne le seront pas à l’avenir.
Dans cette section, nous aborderons certaines fonctionnalités utiles que vous pouvez ajouter facilement dans TestStand, telles que l’exécution parallèle, la génération de rapports, la connectivité aux bases de données, les interfaces utilisateur et les outils de mise au point/déploiement.
Figure 5 : Ce diagramme montre la capacité de TestStand à exécuter des séquences en pipeline et à planifier automatiquement les ressources pour permettre le test de plusieurs UUT (unités sous test) à la fois.
Pour augmenter la cadence des tests, il est possible d’exécuter simultanément des tests sur différents matériels. Si l’on considère le temps nécessaire au développement d’un logiciel capable de s’exécuter en parallèle, on comprend pourquoi les organismes de test évitent de créer cette fonctionnalité, à moins d’y être obligés. Le problème est que l’exécution parallèle nécessite des efforts de développement considérables. Ainsi, lorsqu’une organisation se rend compte qu’elle est nécessaire, il est souvent trop tard pour l’implémenter. Grâce à TestStand, le développement de systèmes parallèles est beaucoup plus accessible, éliminant la plupart de ces efforts et rendant les systèmes parallèles très rentables.
Lors de la construction d’un système de test, il est essentiel de tenir compte de la manière dont les résultats du test seront traités. C’est pourquoi TestStand intègre des fonctionnalités qui simplifient la connectivité aux bases de données et la génération de rapports. La personnalisation des rapports dans TestStand est une tâche courante et TestStand fournit de nombreuses fonctionnalités pour personnaliser le contenu, les fonctionnalités et le style du rapport.
Même si un rapport de test est un excellent moyen de donner un aperçu des réussites et des échecs d’un test, il n’est pas pratique lorsque vous souhaitez interroger les résultats historiques d’une ou plusieurs stations de test. Au lieu de cela, NI TestStand peut rapidement enregistrer les résultats des tests sur presque tous les systèmes ODBC (Open Database Connectivity), tels qu’Oracle, SQL Server ou MySQL, prêts à l’emploi.
Réduisez le temps consacré à la mise au point de votre code de test grâce aux fonctionnalités intégrées de TestStand. Tirez parti des outils qui vous permettent de surveiller les valeurs de test tout au long d’une séquence et des points d’arrêt pour suspendre l’exécution afin d’examiner plus en profondeur une section de votre code de test.
Figure 6 : Le déploiement consiste à empaqueter tous les composants nécessaires du système de test à l’aide d’un outil de déploiement ou d’un serveur avant de les distribuer aux stations de test souhaitées.
Vous pouvez aussi simplifier le déploiement de votre code de test sur des machines de production avec des utilitaires qui automatisent la construction d’installeurs et de distributions.
L’interface opérateur est l’affichage qui permet à l’opérateur d’interagir avec le système de test. Le développement d’une interface opérateur personnalisée peut représenter un investissement en temps non négligeable, surtout si l’on tient compte de la convivialité et de la cohérence. TestStand fournit des interfaces opérateur simples pour configurer et exécuter des tests sur des systèmes déployés. Vous pouvez également développer des interfaces utilisateur personnalisées dans plusieurs environnements de programmation pour mieux contrôler le mode d’interaction des opérateurs avec les systèmes de test.
Commun : Logiciel de gestion de tests
| Unique : Logiciels de développement de tests
|