Le développement des applications mobiles, le passage au Cloud, l’internet des objets, les pratiques agiles et le déploiement de plus en plus rapide des applications ont ensemble un point commun rarement souligné : ces évolutions requièrent toutes une automatisation toujours plus forte des processus de tests logiciels.
L’automatisation des tests logiciels répond à quatre défis principaux rencontrés par la digitalisation
- Garantir l’adéquation fonctionnelle avec les besoins métier
- Assurer la fiabilité, la sécurité et les performances des applications
- Accélérer la mise en production des évolutions dans des situations très compétitives
- Assurer l’interopérabilité des systèmes par le test de conformité aux standards
Les technologies du test automatisé évoluent rapidement, en particulier avec l’émergence du test à partir de modèle (Model-Based Testing), qui automatise la production et la maintenance des scripts automatisés, et celui du pilotage par les tests d’acceptation (Acceptance Test Driven-Development) qui organise le cycle de vie du logiciel à partir des tests automatisés.
Les nouvelles pratiques du test automatisé : Model-Based Testing et Acceptance Test Driven Development
La figure suivante schématise le concept du Model-Based Testing (MBT) : piloter la production et la maintenance des tests fonctionnels et d’acceptation à partir d’une modélisation de l’expression de besoins : processus et règles métier.
Figure 1 – Processus du Model-Based Testing
L’objectif est d’exploiter directement les éléments de l’expression de besoins pour la production des tests. On renforce l’efficacité globale du processus :
· Les modèles de processus et les tables de décisions pour les règles métier sont directement utilisés pour générer des tests d’acceptation métier ;
· Les ambiguïtés ou incohérences dans l’expression de besoins sont détectées très tôt, dès la génération des tests, en amont du développement.
Cette démarche facilite la structuration des entrants fonctionnels : c’est un cercle vertueux qui se met en place pour l’alignement entre les projets IT et les besoins métier qui est supportée par le « Model-Based Testing », s’appuyant sur la représentation partagée des flots et règles métier à tester. Elle permet aussi de fédérer les acteurs Analyste Métier / Testeur / Développeur autour d’un processus opérationnel de qualification incrémentale des développements par le besoins métier.
Les techniques de l’« Acceptance Test Driven Development » (ATDD) sont issues des pratiques de développement agiles et visent les mêmes enjeux que précédemment : formaliser l’expression de besoins métier dans des scénarios utilisateurs exploitables directement pour le test d’acceptation.
Le développement étant alors guidé par ces tests et leur automatisation exécutée lors de l’intégration continue de l’application.
Plusieurs approches ont été proposées, mais globalement il s’agit de formaliser le besoin au travers de cas d’utilisation / scénarii métier dans un langage orienté métier. Ce langage, appelé DSL – Domain Specific Language – s’appuie sur des mots d’action métier qui permettent de définir des scénarios métier. Les mots d’action sont ensuite implémentés par l’équipe de développement pour automatiser les tests métier. La figure suivante montre cette articulation des activités :
· Analystes Métier et Analystes de Test coopèrent pour produire les scénarios métier d’acceptation dans un DSL mis à disposition par les développeurs,
· Les développeurs implémentent et maintiennent ces mots d’action qui permettent une automatisation de l’exécution des tests métier.
Cette approche constitue un puissant mécanisme de pilotage du développement par les scénarii d’acceptation métier, favorisant un alignement constant du développement avec les besoins. Elle constitue aussi une démarche très efficace d’ingénierie des besoins car les scénarii de test métier peuvent aussi être vus comme des spécifications exécutables. L’expression de besoin est ainsi rendue opérationnelle via le processus de test d’acceptation.
Ces démarches de Model-Based Testing et d’Acceptance Test Driven Development peuvent aussi être mises en œuvre de façon conjointe car les tests générés à partir des modèles métier s’appuient sur le référentiel des mots d’action créés et maintenus par les développeurs.
La conférence UCAAT 2015 sera une vitrine mondiale de l’évolution des techniques et méthodes du test automatisé
La 3ème Conférence sur les techniques avancées du test automatisé UCAAT 2015, du 20 au 22 octobre 2015 à Sophia Antipolis, constitue l’une des principales vitrines des évolutions technologiques dans ce domaine.
UCAAT est la conférence annuelle de l’ETSI sur l’automatisation du processus de test, couvrant à la fois la conception et l’exécution des tests. C’est une conférence orientée sur les retours d’expériences et le partage des bonnes pratiques sur ces nouvelles technologies dans les différents domaines, des applications mobiles aux grands systèmes d’information en passant par les systèmes embarqués.
A chaque édition, la conférence UCAAT démontre la contribution essentielle des techniques d’automatisation des tests dans l’évolution rapide de l’IT.
A propos de l’auteur : Bruno Legeard, Responsable du Comité de Programme de la Conférence UCAAT 2015, Co-fondateur et Consultant scientifique à Smartesting, Professeur de Génie Logiciel à l’Université de Franche-Comté – Institut FEMTO-ST / CNRS.