Les tests automatisés : un essentiel souvent boudé

Publié le 15 juillet 2019, dans la catégorie : e-commerce

Épargner des milliers de $$$ par année, maintenir la qualité d’un actif numérique, renforcer positivement la perception des utilisateurs et offrir des « releases » sans régression, tout le monde aimerait ça non? Comment faire pour qu’un site reste parfait dans le temps avec un minimum d’effort ? On veut que tous puissent en profiter, alors voici comment s’y prendre.

Jimmy a fait une faute. Il a oublié un « s » dans le mot « erreur ».

Il arrive trop souvent qu’une erreur humaine se retrouve sur un site web. Que tout à coup, quelque chose qui fonctionnait bien depuis toujours arrête de fonctionner.

Qu’il s’agisse d’une mise à jour de sécurité contre des pirates informatiques, de l’ajout d’une section promotion pour parler de rabais sur des tondeuses ou d’un changement de couleur du site, de beige à rose fuchsia par exemple, il y a toujours des risques que quelque chose se brise.

« Tout le monde fait des erreurs... même avec la meilleure équipe, il va y en avoir. »

Puisqu’il y aura des erreurs, il faut mettre un mécanisme en place pour réduire les probabilités que ces erreurs surviennent, c’est là-dessus qu’on peut miser. Gonfler notre ego et dire que « nous, on n’en fait pas d’erreurs » ou que « les erreurs, c’est pour les débutants », c’est faire l’autruche.

Automatiser ses tests de régression

Parmi les solutions les plus efficaces pour arriver à diminuer les erreurs potentielles sont les tests automatisés. Lors de chaque changement, qu’il soit mineur ou majeur, une batterie de tests peut être lancée pour s’assurer que les parties vitales du site web demeurent fonctionnelles.

Parfois, un simple changement dans un formulaire de contact pourrait rendre une transaction bancaire impossible, alors que les deux composantes semblent n’avoir aucun lien entre elles. Ça vient avec la magie de la programmation.

Les Golden path

Les tests de « golden path » visent à tester les fonctionnalités les plus couramment utilisées par les visiteurs du site. Par exemple, si le site a pour but de mettre en contact des adorateurs de chatons, nous testons – après une modification au site – si les formulaires de contact entre deux utilisateurs fictifs fonctionnent pour s’assurer qu’ils soient encore en mesure de se transmettre des photos de leurs chatons respectifs. S’il s’agit d’un site de vente de boîtes de nourriture à domicile, nous vérifions qu’un utilisateur peut encore faire une transaction complète et qu’il reçoive le courriel de confirmation de sa commande.

Pour automatiser ce type de tests, il est possible de mettre en place des scripts qui simulent plusieurs scénarios d’utilisateurs en imitant chaque étape qu’un humain effectuerait. Nous utilisons des outils open source comme Puppeteer pour produire des tests comme :

  1. Connecte-toi ;
  2. Entre tes accès ;
  3. Prends un produit en vente ;
  4. Entre ta carte de crédit ;
  5. Fais une transaction.

Ça ne prend que quelques minutes pour déclencher, en simultané, des dizaines de scénarios de test nous permettant de vérifier si le site présente des anomalies avant même de faire un déploiement. Évidemment, nous roulons une seconde fois les tests de « Golden path » une fois le déploiement fait. C’est toujours un win quand ce n’est pas un dude dans le fond du bureau qui se tape ça avant un déploiement, mais bien un paquet de robots en parallèle qui eux ne laissent rien au hasard et ne font pas d’erreurs.

Balises SEO, sitemap et disparition de contenu

Les tests de régression mettent en lumière les problèmes qui sont parfois invisibles au premier coup d’oeil. Ils ont pour but de trouver les différences au niveau du code reçu par les utilisateurs (interface visuelle) et les moteurs de recherche (code invisible). Que ce soit des métadonnées (ex.: meta-title, meta-description, open graph) pour le SEO qui ont changé, des pages qui disparaissent ou des images qui deviennent inaccessibles, tout y passe!

Une toute petite altération au code HTML peut parfois faire disparaître des portions entières de site web. Par exemple, nous avons eu un client qui, après une mise à jour majeure sur le site en « staging », a perdu deux colonnes dans son bas de page… dans la portion anglaise seulement : on aurait tous eu l’air nono de mettre ça en ligne. C’est le genre de détail qui n’est pas toujours facile à détecter à l’oeil nu, mais qui crève les yeux avec des tests automatisés.

Pour déceler ce type d’erreur, nous utilisons des outils comme Screaming Frog pour obtenir la structure des pages, les détails des redirections et récupère l’ensemble des métadonnées d’un site. Pour ce qui est des blocs de contenu qui disparaissent après un déploiement, nous utilisons Wget pour obtenir le contenu HTML de chaque page dans sa plus simple expression selon des règles bien précises.

Que ce soit avec Screaming Frog ou Wget, il faut faire des tests avant et après les déploiements. Ces tests nous permettent d’identifier facilement les anomalies avant de déployer un site.

Notre conseil : laissez les tests aux robots!

Le client est au coeur de notre processus pour que nous puissions planifier ensemble les scénarios garantissant le succès constant de leurs actifs numériques et partager adéquatement les responsabilités.

En automatisant une bonne portion des tests de régression, tout le (vrai) monde peut passer plus de temps là où ils ont réellement de la valeur : à développer des fonctionnalités pour le site et à rendre les utilisateurs heureux.

L’automatisation des tests ne garantit pas que le site soit exempt de toute anomalie, mais elle facilite et écourte grandement le temps passé en assurance qualité. De plus, ces tests ont la beauté de pouvoir être améliorés au fil du temps afin d’être toujours plus complets. Que ce soit pour des petits sites qui partagent des photos de chats ou d’énormes sites qui vendent de l’équipement médical, il y a toujours place pour l’amélioration de processus. Et ces robot rendent le tout si facile!

Simon Desautels

Développeur e-commerce

Simon est un curieux de nature. Toujours à l’avant-garde de ce qu’il se passe sur le marché, il est souvent celui qui apporte les outils derniers cris au sein de nos façons de faire. Toujours un jeu de mot dans son sac, il met de la vie un peu partout où il passe. Si vous avez déjà eu Simon sur votre projet, sa participation reste quelque peu, mémorable.