A l’heure de la transformation digitale, les entreprises du monde entier rivalisent d’ingéniosité pour livrer à leurs clients des produits de plus en plus performants et innovants. Les équipes de développement font face à un rythme croissant d’innovation, avec des exigences de time to market importantes, augmentant à la fois la pression budgétaire et mettant l’accent sur la qualité. Alan Richier, consultant mc2i Groupe, explique ici aux lecteurs de Solutions Numériques que l’un des moyens pour y parvenir est la mise en place d’une démarche de livraison continue, ainsi que la mise en place d’une « usine » de tests industrialisés.
Une usine de recette : dans mon entreprise c’est possible ?
Dans une démarche d’automatisation des tests, il est préférable que le produit ou l’application concernée soit relativement stable et qu’aucune refonte majeure ne soit attendue à court terme. A chaque modification du code source de l’application, la suite de tests automatisés doit obligatoirement être reconfigurée avant d’être exécutée. On comprend vite que cela peut représenter une charge importante si l’architecture de l’application évolue trop régulièrement.
Se pose ensuite la question de l’identification des tests à robotiser. Le scénario le plus répétitif est le meilleur candidat pour l’industrialisation, comme par exemple les tests d’intégration et de non-régression qui sont effectués à chaque montée de version et qui peuvent se révéler chronophages lorsque traités manuellement. L’automatisation permet d’exécuter des milliers de tâches en quelques secondes, laissant aux équipes plus de temps pour innover et améliorer l’application.
L’automatisation prend également tout son sens dans le cas des tests de performance : il est souvent difficile de simuler la charge d’une application de production. Cela est particulièrement vrai pour les applications Cloud supportant des milliers d’utilisateurs.
Un avantage concurrentiel indéniable
Les applications développées avec une usine de tests industrialisés ont tendance à être plus fiables. Ce modèle de développement logiciel permet aux équipes d’adopter une approche « Test it First » de l’architecture des applications. En découlera une application supportant des tests automatisés, conçue de manière simple et efficace, et plus facilement maintenable.
L’automatisation des tests est parmi les moyens les plus populaires pour stimuler l’efficacité et la qualité, offrant une meilleure couverture fonctionnelle, éliminant la routine fastidieuse et les erreurs humaines. Le processus d’automatisation des tests permet aux équipes de déployer des changements dans la production en étant sûr que les versions sont stables et fonctionnant correctement, même lorsqu’elles arrivent à un rythme rapide.
Le test est au cœur de la transformation digitale et agile de nos sociétés. L’optimisation des pratiques de test, leur plus grande automatisation et l’apparition de nouveaux outils sur le marché facilitent la transformation numérique et l’atteinte de son objectif : une réduction du time to market et un accroissement de la satisfaction utilisateurs. L’automatisation se révèle d’ailleurs particulièrement adaptée aux méthodologies agiles qui reposent sur des itérations nombreuses et des tests presque permanents.
Un ROI pas si évident à définir !
L’effort initial d’automatisation est un investissement important, que ce soit en termes de délais ou de budget, il ne s’agit en aucun cas d’une solution de court terme. Il y a beaucoup de tentatives réussies mais les déceptions ne sont pas si rares.
Les tests automatisés nécessitent une maintenance plus importante que les tests manuels. Avec une durée de vie limitée dans le temps, l’automatisation des tests peut parfois générer des coûts trois à dix fois supérieures au coût d’un travail manuel équivalent. Un autre facteur de croissance des dépenses de maintenance de l’usine de tests est lié à l’utilisation d’environnements complexes et à la puissance de calcul nécessaire pour offrir des critères de performance adéquats.
Avant de vous lancer dans une telle démarche, une analyse précise et détaillée est indispensable pour calculer le retour sur investissement (ROI) espéré par l’automatisation des tests. Celui-ci devra prendre en compte le nombre de cycles, les coûts de conception des tests, les gains estimés du raccourcissement du cycle de recette ou encore des économies de main-d’œuvre.
Malgré ses avantages indéniables – notamment la réduction du time to market et l’amélioration de la qualité des produits -, l’automatisation des tests reste une démarche complexe, qui n’est pas encore exploitée à la hauteur de ses possibilités dans la majorité des grandes entreprises. Pour autant, la montée en maturité progressive de ces dernières sur les méthodologies agiles va indéniablement conduire à un renforcement des pratiques d’industrialisation de la recette dans les années à venir.
Source :