E-commerce E-Publicité — 20 mai 2015 — Aucun commentaire
3 clefs pour maîtriser l’intégration continue de vos services web

E-commerce, web service, plateforme online, … une application web est rarement gravée dans le marbre. Elle accueille régulièrement son lot d’améliorations et de nouvelles fonctionnalités. Destinées à booster l’expérience utilisateur, les taux de conversion et le rendement e-business, ces nouveautés s’accompagnent inévitablement du risque contraire : la régression fonctionnelle. Comment prévenir ce risque ? A chaque déploiement ? Pour tous les cas d’usage ? Sans y passer des heures ? Réponse : en maîtrisant votre intégration continue, ni plus ni moins…

Nous éditons une plateforme dédiée au contrôle de la qualité web en mode « continuous test-driven » (cloudnetcare.fr) et les points clefs abordés dans le présent article le sont à l’appui d’un cas d’usage concret avec le site de Bouygues Télécom, l’un de nos clients et partenaires.

1) Certifier les fonctions

« Mais … elle marchait bien cette fonction avant ! Et ce bug là, on ne l’avait pas déjà fait corriger ? »

Le terme de « régression fonctionnelle » est explicite : l’application web évolue, cette évolution entraine une baisse de performance pour certaines fonctions, l’expérience utilisateur se détériore et … bref le scénario qui nous intéresse, c’est celui inverse.

En mode « non-régression », la mise en production est certifiée en premier lieu grâce à des Tests Fonctionnels répartis comme suit :

  • Tests de fonctionnalités, affectés au contrôle des fonctions métier ;
  • Tests d’UI, destinés au contrôle de l’interface utilisateur.

Concrètement, ces tests sont élaborés sur la base d’un catalogue de parcours utilisateur pertinemment conçu par les équipes de développement, en collaboration avec les équipes métier. Les scénarios utilisent des variables permettant de maximiser les cas de figure explorés.

Pour tester quoi ? Le bon fonctionnement de l’application bien sûr (absence d’erreur), mais également la performance. Une fonction peut toujours s’exécuter correctement, mais répondre plus lentement. La performance peut et doit être vérifiée par vos tests fonctionnels, impérativement.

C’est ce qu’ont fait les équipes de développement Ecommerce chez Bouygues Telecom. Parfaitement intégrée à leur processus de développement, la phase test de « non-régression » permet à leurs ingénieurs QA (Quality Assurance) de se consacrer aux tests de nouvelles fonctionnalités, de livrer une nouvelle version à moins de 2h de la MEP (mise en production) et de le faire en toute confiance.

2) Contrôler l’affluence

Tout fonctionne ? L’application est toujours aussi performante ? Parfait !
Mais qu’en sera-t-il lorsqu’une horde d’internautes déferlera sur le site ?

Démultiplication des requêtes, chargement de paniers en abondance, sollicitation condensée d’une fonctionnalité particulière …
Pour le savoir, vous allez faire… déferler une horde d’internautes sur votre site.

Effectués en pré-production, les Tests de Montée en Charge vont générer un afflux de visiteurs sur l’application web. Ils doivent le faire de manière réaliste, en pilotant de véritables navigateurs web qui effectuent clics et saisies en affichant réellement les écrans sollicités (captures). Toute erreur ou baisse de performance se produit exactement comme elle le ferait pour un internaute réel et, surtout, vous disposez d’informations permettant d’en identifier la cause avec précision.

C’est ainsi, et seulement ainsi, que la non-régression et la performance de votre application sont certifiées en charge.

Dans le cas de Bouygues Télécom, cette étape est cruciale : le site accueille des milliers de visiteurs, souvent simultanément. Une MEP ne doit surtout pas rendre l’application plus sensible à la charge qu’elle ne l’était auparavant car les enjeux se chiffrent en milliers d’euros.

3) Industrialiser et pérenniser

  « Tester toute l’application avant chaque MEP ? Mais nous livrons une nouvelle version tous les jours, pas tous les ans ! »

« Tester toute l’application avant chaque MEP ? Mais nous livrons une nouvelle version tous les jours, pas tous les ans ! »

Toute la question est là. Contrôler la non-régression fonctionnelle, la performance et la résistance à la charge pour l’intégralité de l’application web avant chaque livraison, voilà bien une tâche rébarbative et chronophage de prime abord.

Et bien non, pas du tout ! C’est même tout le contraire puisque vos équipes vont gagner du temps grâce à cette troisième clef : l’industrialisation.

En clair, toute la phase de recette est automatisée et assimilée à votre processus d’intégration. Vos équipes élaborent des scénarios de test qui sont utilisés et réutilisés par la plateforme de cloud testing pour tout vérifier automatiquement. Et cette vérification peut être déclenchée depuis votre environnement de développement. Toutes les fonctions sont alors testées à chaque nouveau Build sans intervention manuelle.

Dès lors, le risque d’avoir à corriger quoi que ce soit après la MEP devient quasi-nul. Et pour confiner encore davantage tout impondérable, une Supervision Applicative de vos services web va ensuite pérenniser votre intégration continue post-livraison.

Les mêmes scénarios déployés pour vos tests fonctionnels et tests de charge sont exploités par vos tâches de Supervision, veillant ainsi à ce qu’en production la qualité ressentie reste conforme à celle validée en pré-production.

Bouygues télécom teste par exemple, tous les matins, automatiquement, l’intégralité du site en cours d’évolution. Ils ont industrialisé toutes les phases de recette et mis en place un processus de « tests continus » (Continous Testing) qui leur permet de maîtriser l’évolution de leurs services web.

« Ainsi nous avons divisé par deux les temps de tests et augmenté significativement la qualité de nos développements. Les internautes « virtuels » prennent en charge les phases de recette, récurrentes et chronophages ! Mes équipes vont ainsi plus vite, plus loin, en améliorant la qualité et en restant très motivées ! »
Yves Renoue , Technical Director – Bouygues Telecom

Conclusion

Finalement, la réussite d’une intégration continue pour un service web, c’est l’assurance de pouvoir le faire évoluer très régulièrement, rapidement et en toute sérénité.
En certifiant la non-régression avec des tests fonctionnels et la stabilité avec des tests de charge, le tout de manière automatisée et suivie par des tâches de Supervision en Production, vos équipes de développement sont plus réactives et performantes. Votre qualité de service progresse et le déploiement d’une nouvelle version ne s’accompagne désormais que du plus grand enthousiasme.

Articles similaires

Articles Recommandés



L'auteur

Sébastien Rocca

Designer et rédacteur web chez CloudNetCare, une solution dédiée au contrôle de la qualité des services web, je participe à la veille métier et m'intéresse de près à tout ce qui concerne l'amélioration de l'expérience utilisateur dont dépend directement la performance e-business de tout espace online.

 


0 Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *