Published On: 1 janvier 20244,1 min read

Flaky tests : comment éviter la flakiness ?

Par définition, selon l’équipe QA de Google, un flaky test (ou test bancal en français), est un test pouvant présenter à la fois un résultat de réussite et un résultat d’échec avec le même code dans le même environnement. Autrement dit, les flaky tests sont une analyse du code d’une application Web qui ne produit pas le même résultat à chaque fois que la même analyse est exécutée.

Ils sont non seulement frustrants, mais peuvent également être assez coûteux, car ils augmentent le temps de la rotation (pool de tests joués dont il fait partie). Dans l’idéal, vous devez éviter le flakiness pour que vos tests puissent rester stables, ainsi que les résultats.

Quelle est la cause des flaky tests ?

Ce terme mérite une définition bien développée pour améliorer les expérimentations dans le secteur technologique. Vous rencontrerez majoritairement les flakiness lors des exécutions de tests automatisés, il tient du miracle d’y échapper dans ce contexte.

Il existe de nombreuses causes pouvant être à l’origine des flaky tests, qui de plus peuvent se cumuler. Ce terme est encore peu connu, mais il est important de se focaliser sur sa définition et son application afin d’améliorer les résultats de vos tests. N’hésitez pas à opter pour la traduction d’autres sources en anglais pour appréhender le concept. Voici les causes les plus courantes du flakiness :

  • La qualité des jeux de données (ils ont été modifiés voire supprimé entre 2 tests, un grand classique) ;
  • Des problèmes de réseau temporaires (dans le cadre de tests web ou de requêtes) ;
  • Des services tiers non disponibles momentanément, autre grand classique ;
  • Un des automates n’a plus les ressources requises pour jouer le test correctement (saturation mémoire, processeur…) ;
  • L’exécution en parallèles de tests non compatibles (même compte utilisé pour des actions contradictoires) ;
  • Le non-respect de l’ordonnancement des tests (un test joué trop top n’a pas les données nécessaires ou altère l’état du système empêchant le bon déroulement des tests suivants) ;
  • L’environnement de recette est limité en ressources et n’arrive pas à encaisser la « charge » générée par l’ensemble des automates.

Bon à savoir : Ils seront peu fréquents lors de tests unitaires (type de test fonctionnel), mais plus la complexité et l’étendue des tests augmenteront, plus vous y serez confrontés.

Comment éviter les flaky tests ?

Il n’y a pas de solution toute prête pour éviter le flakiness, juste un ensemble de bonnes pratiques qui, si elles peuvent être appliquées, peuvent réduire considérablement leur apparition. En effet, il n’est pas rare aujourd’hui dans le domaine de la technologie de voir deux tests identiques marcher et échouer en même temps. Ceci peut arriver alors que vous avez utilisé les mêmes environnements, logiciels et codes.

Ce phénomène touche aussi bien les tests en français que les tests en anglais. Voici les règles à suivre pour éviter le flakiness :

  • Rejouer automatiquement les tests en erreurs (option proposée dans de CloudNetCare) ;
  • Bouchonner ou mocker les services tiers ;
  • Réinitialiser les automates avant la recette et vérifier leur résolution dans le cadre de tests web (pour éviter les erreurs liées à un éventuel responsive design) ;
  • S’assurer du bon ordonnancement des tests ;
  • Dédier des jeux de données et interdire leur utilisation par des tiers ;
  • S’assurer qu’il n’y aura pas de maintenance ou d’interventions sur l’environnement de recette durant la phase d’exécution des tests ;
  • Limiter le nombre de tests en français ou en anglais en parallèle si l’environnement de recette n’est pas suffisamment robuste ;
  • Éviter l’utilisation de pauses arbitraires dans les parcours et préférer des attentes actives d’éléments suffisamment longs pour pallier les lenteurs momentanées.

Que faut-il retenir du test bancal ?

La flakiness peut être un véritable obstacle lors d’un test automatique. Mais que vous automatisiez vos tests ou non, vous n’échapperez probablement pas aux tests flaky dans les premiers temps, car la plupart des soucis rencontrés par les automates peuvent aussi l’être par les testeurs. 

Néanmoins, cela ne doit pas vous décourager pour autant, car certaines bonnes pratiques sont assez simples à mettre en place et la bonne gestion des tests flaky peut drastiquement réduire leur apparition. L’utilisation d’un logiciel ou d’un produit puissant est fortement recommandée. Puis, peu de rigueur et parfois un bon coup de poing sur la table peuvent stabiliser un environnement de test de façon presque magique.

CloudNetCare


Pour que chaque clic soit une expérience réussie

On pilote vos tests, vous gardez le contrôle !

Grâce à notre expertise, vos applications et sites web restent fluides, sans bugs ni frictions, vous permettant de vous concentrer sur votre innovation et garantir ainsi une expérience utilisateur irréprochable.

Notre cabinet français d’experts en tests logiciels, automatise, gère et analyse vos tests quotidiennement pour détecter et corriger les dysfonctionnements avant qu’ils n’affectent vos utilisateurs.

Tests Fonctionnels

On assure la qualité de vos applications

CloudNetCare, teste l’ensemble de votre application pour qu’elle soit exempt de bugs et de dysfonctionnements pour garantir une expérience optimale à vos utilisateurs .

Tests de Montée en Charge

On prépare vos sites & applications aux pics de trafic

Anticipez la réaction de votre application et de votre infrastructure, face à des pics d’affluence, pour assurer une expérience utilisateur optimale.

Tests de Supervision

On garantit l’expérience de vos utilisateurs en temps réel

Protégez la qualité de vos applications 24/7 avec une surveillance proactive. Nous détectons et corrigeons les anomalies en temps réel pour éviter toute interruption de l’expérience utilisateur.