Comment Canal+ a mis en oeuvre une démarche de validation continue sur MyCanal

Le groupe Canal+ a mis en place la solution d'Agilitest pour valider en continu les changements sur son service de streaming MyCanal, qui permet de regarder programmes et contenus partenaires en direct ou en replay.
PublicitéLors de la JFTL (Journée Française des Tests Logiciels) 2021, Laurent de Chevron Villette, directeur qualité à la DTSI du groupe Canal+ et Alain Cancel, responsable de la qualification des produits chez Canal+, ont partagé leur expérience autour de la mise en oeuvre d'une démarche de validation continue sur l'application MyCanal. Proposé dans 60 pays, ce service de streaming permet à 22 millions de clients d'accéder aux contenus de plus de 300 chaînes, en live ou en replay. L'année passée, plus de 1,5 milliard de contenus ont été visualisés en mode non linéaire sur MyCanal, le visionnage à la demande dépassant désormais le live selon Laurent de Chevron Villette. Ces contenus sont aujourd'hui consommés aussi bien sur smartphone que sur tablette, ordinateur fixe ou télévision, soit près d'une centaine de configurations hardware différentes à gérer pour les équipes IT de Canal+. Maintenir un rythme de livraison fluide et un haut niveau de qualité sur un tel périmètre représente un vrai défi, qui a incité la DTSI à se tourner vers l'automatisation des tests et la validation continue.
Au niveau des tests, Canal+ a mis en place une organisation verticale par produit et technologie, dans la continuité du développement, mais la validation est transversale. « Créer une direction de la validation est une façon de montrer qu'on investit dans la qualité », a souligné Laurent de Chevron Villette. Avec les tests unitaires et d'intégration, de plus en plus d'ingénierie rentre dans la chaîne d'intégration continue (CI). Cependant, les builds et releases livrés par les équipes doivent ensuite être validés sur le plan fonctionnel, des tests longtemps réalisés de façon uniquement manuelle. « C'est là que cette organisation transverse apporte une expertise », pointe Laurent de Chevron Villette. « La validation continue n'était pas quelque chose de nouveau pour nous », a souligné Alain Cancel. En effet, une telle démarche avait déjà été mise en oeuvre sur la ligne de produits décodeurs, avec une solution interne. Le département qualité a donc décidé de mettre en place le même type d'approche sur MyCanal. « Ce service permet d'accéder aux chaînes Canal+, mais aussi aux contenus de nos partenaires, comme Netflix ou Disney+ et à des applications de presse comme Cafeyn. C'est un service multi-zones, multi-pays et multi-offres, ce qui rend les tests complexes », a pointé Alain Cancel. Celui-ci a ensuite décrit les tests fonctionnels comme une combinatoire entre différents paramètres et critères : les plateformes (Web, iOS, Android), l'authentification, la consommation vidéo - avec tous les enjeux de qualité d'image et de son afférents, ou encore la dynamique éditoriale. Ces tests vérifient par exemple la connexion depuis les différentes zones, la recherche de contenus dans le catalogue, la non-accessibilité des contenus adultes aux mineurs ou encore les CGV.
PublicitéUn reporting adapté aux différentes parties prenantes
Pour mettre en place une validation en continu, la direction avait plusieurs attentes. « Nous souhaitions une solution modulaire, permettant une édition simple des tests aussi bien en mode basique qu'avancé. Il fallait aussi pouvoir variabiliser les environnements d'exécution, et avoir la possibilité de mixer les canaux de test, pour certains cas d'usage où l'utilisateur passe d'un terminal à l'autre, comme l'utilisation d'OTP (one-time passwords) » a détaillé Alain Cancel. Lors des JFTL 2019, l'équipe de validation a découvert la solution d'Agilitest, qui correspondait aux besoins. Son modèle de coûts, basés sur l'édition des scénarios de test et non sur leur exécution, a également été apprécié, de même que les fonctionnalités de reporting à différents niveaux, aussi bien destinées aux développeurs qu'aux chefs de projets et PO (Product Owners).
Alain Cancel (à gauche) a présenté l'infrastructure technique mise en place pour la validation continue (cliquer pour agrandir).
Un Proof of Concept a été réalisé en 2020, pour évaluer la solution et la comparer avec celle de WitBe. Après avoir évalué les scripts et le reporting, l'équipe a travaillé sur le design d'une infrastructure technique pour la solution de validation. Le déploiement a démarré en février - mars 2021, d'abord pour la plateforme Web puis pour les systèmes d'exploitation mobiles. Trois postes de scripting (un par plateforme) transmettent les scripts à un chef d'orchestration Jenkins, qui pilote leur exécution. « Nous avons mis de petits PC NUC autonomes pour déporter l'exécution des scripts, ainsi qu'un Mac pour les tests iOS », a précisé Alain Cancel. Dans le cadre du processus de validation continue, le code produit par les équipes de développement est déployé sur les environnements de recette après les tests unitaires. Pour le Web, les tests en continu s'effectuent directement sur une URL. Pour les applications mobiles, il y a une étape préparatoire, avec un pilotage automatique d'outils comme Apptest ou TestFlight pour déployer les versions dans les terminaux. Les données de test sont ensuite collectées dans une base MongoDB, d'où elles viennent alimenter différents rapports. « L'outil peut générer des rapports au format PDF, HTML ou ATSV - des fichiers vidéo qui permettent de relire les tests après-coup », a décrit Alain Cancel. Le département de validation utilise également PowerBI pour communiquer les résultats de manière visuelle et dynamique aux Product Owners.
Des tests plus rapides
Après quelques mois de recul sur la solution, avec plus de 200 scripts et 60 campagnes déployées, le processus de validation continue a permis de détecter en amont un certain nombre de bugs, par exemple des problèmes de connexions depuis différents lieux et zones géographiques, des erreurs sur le lancement des pages ou des accès sans code à des contenus classés par le CSA comme interdits aux mineurs. Alain Cancel a également souligné le bon retour des équipes internes, qui apprécient les scripts facilement maintenables et la possibilité de partager les résultats à la volée avec les développeurs. « Tout le monde, en fonction de son niveau de compétence, peut tirer une information pertinente de la solution. Ce n'est pas un outil destiné aux seuls valideurs, mais à toute l'équipe projet », a souligné Laurent de Chevron Villette. Enfin, la validation continue représente un réel gain de temps. Par exemple, le temps nécessaire pour exécuter des tests de connexion et déconnexion sur sept pays est passé de 45 à 7 minutes en automatisant. L'équipe de validation rencontre encore quelques freins sur certains scénarios de test, comme ceux avec des captchas, mais selon Alain Cancel une solution permet de détecter ces derniers et de savoir qu'un KO est dû à un captcha. D'autres types de tests restent difficiles à automatiser, comme l'analyse de la qualité des vidéos.
À moyen terme, l'équipe envisage un déploiement de la validation continue sur d'autres lignes de produits, ainsi qu'une extension de la couverture de test sur les produits actuels. Le département étudie aussi la possibilité de détecter la qualité audio et vidéo, ainsi que la mise en oeuvre de passerelles entre l'outil de pilotage des tests SquashTM et les tests automatisés sur Agilitest.
Article rédigé par

Aurélie Chandeze, Rédactrice en chef adjointe de CIO
Suivez l'auteur sur Linked In,
Commentaire
INFORMATION
Vous devez être connecté à votre compte CIO pour poster un commentaire.
Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire