Flaky test

On parle de test flaky lorsque le code d'une application web ne renvoie pas exactement les mêmes résultats à chaque fois qu'il est analysé. Il est essentiel que les nouveaux logiciels soient testés de manière approfondie avant d'être mis à la disposition du public. Logiquement, lorsqu'il est soumis au même test à plusieurs reprises, le code produira le même résultat : l'application fonctionnera correctement à chaque fois, et passera donc le test, ou ne fonctionnera pas correctement à chaque fois, et échouera donc le test. Cependant, de manière apparemment aléatoire, il arrive que le même test du même code produise des résultats différents. Parfois, il montrera que le code a réussi le test et que l'application a fonctionné comme prévu, et parfois il montrera que le code a échoué au test et n'a pas fonctionné comme prévu. Lorsque le test ne parvient pas à produire un résultat cohérent, il est considéré comme bancal. Les tests bancals peuvent être causés par différents facteurs : un problème avec le code nouvellement écrit un problème avec le test lui-même un facteur externe peut compromettre les résultats Une fois qu'un test est jugé bancal, il existe différentes approches pour traiter les résultats confus. Les développeurs négligeront les faiblesses et supposeront que c'est le code, et non le test, qui est en cause. Certains développeurs exécuteront leurs tests plusieurs fois, puis ne reviendront pour examiner le problème plus en profondeur que s'il échoue à nouveau. Cela indique qu'il s'agit d'un véritable échec. Cependant, l'approche la plus sûre - la seule façon de savoir vraiment s'il y a un bogue dans le code - est d'arrêter le développement de l'application, d'examiner en détail la cause du test défaillant et de la résoudre. S'il n'est pas résolu et qu'il y a vraiment un problème dans le code, un problème risque d'en entraîner un autre et encore un autre au fur et à mesure que le code défectueux se développe. Lors de la recherche de la cause d'un test défectueux, le développeur devra rassembler des données pour essayer de découvrir des différences dans les résultats apparemment aléatoires afin d'isoler la cause de l'échec des tests. Le code doit être réexaminé, tout comme le test lui-même, et si aucun problème n'est trouvé, des facteurs externes devront être examinés pour voir s'ils peuvent être au cœur du problème. Le développeur peut examiner si les tests réussis ont été exécutés à une certaine heure de la journée alors que ceux qui ont échoué l'ont été à une heure différente, si certains programmes étaient en cours d'exécution sur l'ordinateur du développeur au moment des tests qui ont échoué et qui n'étaient pas en cours d'exécution lorsque les tests ont été réussis ou si les tests qui ont échoué l'ont été au même moment du test ou à des moments différents au cours du test. Parfois, la cause du test défectueux est simple à diagnostiquer et peut être rapidement corrigée. C'est le meilleur scénario possible. D'autres fois, il n'y a pas de solution facile et, bien que cela puisse être coûteux et prendre du temps, le développeur peut être amené à supprimer le test et à le réécrire à partir de zéro afin de garantir l'exactitude des résultats du test. Malheureusement, les tests bancals ne sont pas rares. Google, par exemple, indique que 16 % de ses tests présentent un certain niveau de bancalité. Ces tests bancals peuvent entraîner un arrêt temporaire de la production, mais ils sont faciles à corriger.

Vous pouvez également être intéressé
  1. Test de pénétration (test au stylo) Définition - Que signifie le test de pénétration (Pen-Testing)? Les tests de pénétration (pen-testing ou pentesting) sont une méthode de test, de mesure et d'amélioration des mesures de sécurité établies sur les systèmes d'information et les zones d'assistance. Le test du stylet est également appelé évaluation de la sécurité. Definir...
  2. Test de couche de socket sécurisé (test ssl) Définition - Que signifie le test SSL (Secure Socket Layer Test)? Un test Secure Socket Layer (test SSL) est le test d'un serveur, d'un certificat ou d'un site SSL. Les tests SSL aident à indiquer l'approbation d'un certificat SSL ou si un système SSL est correctement configuré. Definir Tech explique...