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 un point commun rarement souligné : ces évolutions requièrent toutes une automatisation toujours plus forte des processus de tests logiciels. En d’autres termes, pour Bruno Legeard (*), l'automatisation des tests logiciels est une dimension clé de la révolution numérique en cours (**). ...
A quels défis principaux doit faire face actuellement l’automatisation des tests logiciels ?
BRUNO LEGEARD J’en vois quatre principaux : 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 et assurer l'interopérabilité des systèmes par le test de conformité aux standards. Pour surmonter ces défis, les technologies du test automatisé évoluent rapidement, en particulier avec l'émergence du test à partir de modèles (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.
Pouvez-vous expliquer l’apport du Model-Based Testing au sein de ces nouvelles pratiques du test automatisé ?
BRUNO LEGEARD Avec le concept du Model-Based Testing ou MBT, il s’agit de piloter la production et la maintenance des tests fonctionnels et d'acceptation à partir d'une modélisation de l'expression des besoins : les processus et les règles métier (voir figure ci-dessous). L'objectif ici est d'exploiter directement les éléments de l'expression des besoins pour la production des tests dans le but de renforcer l'efficacité globale du processus. Dans ce cadre, 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. Et les ambiguïtés ou incohérences dans l'expression des besoins sont détectées très tôt, dès la génération des tests, en amont du développement. In fine, cette démarche facilite la structuration des entrants fonctionnels : le cercle vertueux, qui se met en place pour l'alignement entre les projets IT et les besoins métier, est supporté par l'approche Model-Based Testing qui s'appuie sur une représentation partagée des flots et des règles métier à tester. Elle permet aussi de fédérer les acteurs - analystes métier, testeurs et développeurs - autour d'un processus opérationnel de qualification incrémentale des développements par les besoins métier.
Dans cette optique, quel est le rôle des tests d'acceptation ?
BRUNO LEGEARD Les techniques dite d’ATDD (Acceptance Test Driven Development) 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 utilisateur exploitables directement pour le test d'acceptation. Le développement est 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 et/ou de scénarios 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.
Avec cette approche, les analystes métier et les analystes de test coopèrent pour produire les scénarios métier d'acceptation dans un DSL mis à disposition par les développeurs. Puis les développeurs implémentent et maintiennent ces mots d'action qui permettent alors une automatisation de l'exécution des tests métier (voir figure ci-dessous). Cette manière de travailler constitue un puissant mécanisme de pilotage du développement par les scénarios 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énarios de test métier peuvent aussi être vus comme des spécifications exécutables. L'expression du besoin est ainsi rendue opérationnelle via le processus de test d'acceptation. A noter que ces deux 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.
(*) Bruno Legeard, qui est aussi cofondateur de Smartesting et professeur de génie logiciel à l'université de Franche-Comté, est le coauteur des ouvrages “Practical Model-Based Testing ” publié chez Morgan & Kauffmann (2007) et “Industrialiser le test fonctionnel“ chez Dunod (2e édition 2011)
(**) Ces notions seront débattues lors de la 3e Conférence sur les techniques avancées du test automatisé UCAAT 2015, manifestation annuelle de l'Etsi sur l'automatisation du processus de test qui se déroulera du 20 au 22 octobre 2015 à Sophia-Antipolis. Cette conférence est orientée sur les retours d'expérience et le partage des bonnes pratiques sur ces nouvelles technologies dans différents domaines, des applications mobiles aux grands systèmes d'information en passant par les systèmes embarqués.