Sites Inria

English version

Projet - Europe

Jean-Michel Prima - 1/12/2016

Générer automatiquement des tests dans DevOps

Benoit Baudry, responsable de l'équipe DIVERSE

Méthodologie très performante pour le développement logiciel, DevOps est devenu un outil très prisé aux États-Unis où il permet aux géants du Web d'opérer des mises à jour plus fréquentes. L'Europe ne leur a pas encore emboîté le pas. Coordonné par Inria, le consortium Stamp ambitionne d'apporter à cette méthodologie l'élément crucial qui lui manque. À savoir : un générateur automatique de tests qui rendrait l'usage de DevOps moins risqué et donc plus acceptable pour les entreprises européennes. Ce projet vient d'être sélectionné dans le cadre de l'appel à propositions européen H2020 ICT-10-2016 portant sur les technologies logicielles.

Publier vite, publier souvent. Tel est le leitmotiv chez Amazon, Twitter et autres Netflix. Ces pionniers de l'application déployée sur le cloud exécutent désormais des centaines de mises à jour quotidiennes dans ce qui est devenu un torrent d'actualisations H24. Cette prodigieuse agilité constitue un avantage concurrentiel décisif : elle réduit fortement les délais de mise sur le marché et accroît le chiffre d'affaires. Secret de cette prouesse ? DevOps, une puissante méthodologie de développement logiciel qui apporte un haut niveau d'automatisation à toutes les étapes de la conception et du déploiement.

Très populaire aux États-Unis, DevOps peine à séduire les entreprises européennes. Cette frilosité fait craindre qu'elles puissent  « rater le train ». Une étude de by Rackspace LCC a montré par exemple que seulement 40% des sociétés britanniques utilisent cette méthodologie contre 66% chez leurs alter ego américaines. Explication de ce peu d'enthousiasme ? Probablement une différence d'attitude culturelle vis-à-vis du risque. Et du risque, il y en a : un déploiement un brin précipité peut introduire un bug en production par la faute de tests insuffisants. Les développeurs ont ce risque très présent à l'esprit et préfèrent souvent ajouter de nouvelles portions de code plutôt que de se risquer à retirer d'anciennes lignes. Rien de tel pour accumuler des strates de code obsolète et accroître ainsi ce que l'on appelle la dette technique.

Amplification de tests

Cette peur de tout casser se justifie d'autant plus que dans DevOps les tests sont manuels. Or le temps imparti pour les effectuer est terriblement restreint : la livraison continue impose un cycle de développement très court. Et c'est là que Stamp entre en jeu. Financé par l'Union européenne pour une durée de trois ans, ce consortium rassemble trois partenaires académiques, cinq industriels du logiciel et un consortium pour la promotion du logiciel open source . S'appuyant sur des recherches avancées dans le domaine de la génération automatique de tests, Stamp  « a pour objectif d'automatiser DevOps d'un cran supplémentaire en introduisant des méthodes innovantes d'amplification des tests, explique le chercheur Benoît Baudry, coordinateur du projet. Il réutilisera des éléments déjà existants comme les cas de tests, les descriptions d'API et les modèles de dépendances pour générer plus de cas et plus de configurations de tests à chaque mise à jour de l'application.  »

Cette automatisation des tests s'étendra sur trois niveaux dans le processus de DevOps. Tout d'abord, celui du composant. « Les tests conçus manuellement ne couvrent qu'une faible partie des comportements possibles. Stamp va analyser automatiquement ces cas de test pour en générer de nouveaux plus couvrants et ainsi réduire le temps nécessaire à la détection desbugs.  » Deuxième niveau : le test des configurations. « Stamp va générer une grande quantité de variants de ces configurations et des ressources allouées. Ces variants seront tous automatiquement déployés pour tester le passage à l'échelle du système.  » Troisième niveau : le test à l'exécution. « Le retour d'informations sur ce qui se passe en production constitue une matière riche d'enseignements quant à la façon dont le système se comporte. Mais aujourd'hui, cela coûte très cher d'exploiter cette mine de renseignements. Stamp va automatiser l'analyse des journaux d'événements afin d'améliorer le test en ligne en réinjectant des cas de tests en production en continu.  »

Ces trois techniques d'amplification de tests seront volontairement conçues comme des microservices indépendants les uns des autres.  « On pourra aussi les assembler pour avoir une continuité d'amplification, ou choisir de les utiliser séparément en les intégrant dans différentes chaînes d'outils.  »

Mots-clés : STAMP Benoit Baudry INRIA Rennes - Bretagne Atlantique DIVERSE H2020 Europe

Haut de page

Suivez Inria tout au long de son 50e anniversaire et au-delà !