Airbus Defence and Space utilise l'outil de test GUI QF-Test pour les tests de régression automatisés quotidiens. Le "System under Test" est un logiciel d'application utilisé pour le traitement d'informations d'images, de vidéos et de mouvements dans un environnement militaire. Pour ce produit et ses variantes, il est garanti que les modifications nouvellement implémentées n'ont pas d'influence sur les fonctionnalités existantes. L'architecture du logiciel, associée à QF-Test, permet une approche inter-systèmes d'exploitation de type "Write once, test anywhere" (écrire une fois, tester n'importe où), afin de vérifier de manière ciblée la qualité tant du produit standard que de ses déclinaisons.
Le logiciel d'application développé par Airbus Defence and Space est basé sur une architecture client-serveur. Le client est basé sur Eclipse RCP et peut être lancé sous RHEL dans deux modes différents. Le backend est une solution serveur OSGi et est supporté pour deux systèmes d'exploitation, RHEL Server pour le produit standard, Oracle Solaris 11 pour une version du produit qui est déjà opérationnelle.
Sur la base des nouvelles exigences des clients, le produit standard est développé, recréé dans le cadre d'un processus de construction quotidien et distribué sur les deux plates-formes. Dans le cadre de cette chaîne de développement continu, des tests de régression GUI automatisés basés sur QF-Test sont effectués pour vérifier l'intégrité des interfaces client-serveur et leur fonctionnalité de base. Cela garantit que les éventuels comportements erronés après l'implémentation de modifications sont détectés à temps et peuvent être rapidement corrigés.
La chaîne de déploiement continu pour le produit SW et sa variante est illustrée dans la figure ci-dessus. Dans le processus de construction et de déploiement, le logiciel à tester ainsi que le logiciel QF-Test sont d'abord mis en paquet et stockés dans un référentiel. Le package QF-Test stocké dans le référentiel NEXUS comprend, outre le logiciel QF-Test, deux autres parties : une bibliothèque de produits (Produkt Library.qft) et une suite de tests correspondante (Smoke-Test-Suite.qft) pour chaque plateforme. La bibliothèque de produits contient tous les enregistrements permettant d'accéder aux éléments graphiques du client basé sur Eclipse RCP (menus, parties, tables, boutons, curseurs, etc.). C'est également ici que se trouve l'arborescence Windows et Components qui, avec un identifiant de composant univoque, permet d'accéder aux éléments graphiques du client. Le déroulement dynamique des tests varie entre les deux solutions serveur (RHEL, Oracle Solaris) et est adapté en conséquence dans la suite de test Smoke correspondante pour chaque plate-forme. Les suites de test implémentées ici sont lancées quotidiennement après l'installation et utilisent les fonctionnalités de base enregistrées dans la bibliothèque du produit. Les suites de test sont tout d'abord exécutées afin de définir les paramètres de configuration pour le transfert de données entre le serveur et le client (ports, adresses IP, protocoles). Ensuite, l'exactitude des interfaces implémentées entre le serveur et le client est vérifiée pour chaque plateforme en simulant et en vérifiant automatiquement un simple échange de données (images, vidéos, informations de mouvement). L'utilisation de Data Driver/Tables facilite l'exécution de la même séquence de test avec différentes configurations, tout en préservant la maintenabilité du code de test. Les procédures individuelles sont encapsulées dans de simples blocs Try/Catch, ce qui permet d'intercepter et de consigner facilement les erreurs imprévues. L'exécution parallèle et automatique d'une centaine de tests prend environ une heure. L'exécution manuelle des tests occupait jusqu'à présent 1 personne pendant 3 heures par configuration. Pour le produit standard et sa version (2 modes), l'économie est donc actuellement de 8 heures/jour, un temps que nous investissons volontiers dans d'autres tests automatisés ou d'autres activités.
Grâce à cette approche - "write once, test anywhere" - nous avons trouvé de très nombreuses erreurs liées à la configuration de l'application sur le système d'exploitation concerné. Dans l'ensemble, l'automatisation des tests a un effet très positif sur l'accélération du processus de développement, car les résultats des tests sont disponibles rapidement et les tests manuels coûteux peuvent être supprimés. De plus, des résultats de tests automatisés réussis sont considérés comme des critères de transfert pour l'installation et la configuration du logiciel à l'étape suivante de l'intégration.
QF-Test, en tant qu'outil d'automatisation des tests d'interface graphique, est conçu pour une utilisation multiplateforme et convient très bien à notre domaine d'application. QF-Test est facile à apprendre et s'est intégré sans problème dans notre environnement d'exploitation. La possibilité d'insérer dans le processus de test les algorithmes fournis pour la comparaison d'images basées sur les pixels pour les images et les vidéos mérite d'être soulignée. De plus, nous avons tiré profit de la gestion des exceptions de QF-Test pour le contrôle du déroulement des différentes suites de test. Enfin, le support allemand très rapide et fiable du fabricant nous a également aidés.
Afin de vérifier de manière ciblée la variante de produit déjà en service opérationnel, d'autres tests de régression sont prévus pour vérifier les cas d'utilisation fréquents du système. Il s'agit ici de simuler des processus asynchrones et de longue durée ainsi que d'étudier le traitement de grandes quantités de données afin de tirer des conclusions sur les performances (charge CPU, besoin en mémoire) du système. Ici aussi, la bibliothèque de produits existante peut être utilisée, il suffit de créer une nouvelle suite de tests de régression contenant les nouveaux cas d'application. Nous espérons que cette procédure permettra d'améliorer encore la qualité du logiciel et de minimiser les risques que les erreurs ne soient découvertes qu'à un stade tardif et donc beaucoup plus coûteuses à corriger.
Auteur : Thomas Schöning
Testmanager certifié ISTQB
Airbus Defence and Space GmbH
Produits et projets multi-INT Allemagne