❌

Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.
À partir d’avant-hierFlux principal

ArrĂȘtons de (dĂ©)tester nos applications web

25 juillet 2024 Ă  04:44

Dans ce billet, nous allons discuter d’un sujet crucial pour les dĂ©veloppeurs et les testeurs : la pertinence des tests de bout en bout (ou end-to-end E2E) web.
En effet, lorsqu’il s’agit de tester des applications web, les tests automatisĂ©s jouent un rĂŽle vital, car ils peuvent ĂȘtre exĂ©cutĂ©s Ă  plusieurs reprises sans effort et manuel supplĂ©mentaire. Parmi les tests automatisĂ©s, les tests bout en bout sont particuliĂšrement importants, car ils simulent des cas d’utilisation rĂ©els. Cependant, il existe des pratiques courantes qui limitent la pertinence de ces tests.
Nous allons ici examiner 3 mauvaises pratiques, ou erreurs courantes, qui limitent la pertinence de vos tests de bout en bout.

  • lien ná”’ 1 : UUV

1. Écrire des tests centrĂ©s dĂ©veloppement

La premiĂšre erreur courante que l’on peut citer est de rĂ©diger des tests E2E centrĂ©s sur la personne qui dĂ©veloppe.
Pour comprendre ce que nous entendons par test E2E centré sur le développement, prenons un exemple.
Imaginons que je souhaite Ă©crire un test pour vĂ©rifier que le titre « Welcome to weather App Â» et le bouton « Get Started Â» sont bien prĂ©sents sur la page web suivante :

Application Weather App

Avec un outil populaire comme Cypress (sous MIT), je peux Ă©crire le test suivant :

Test DĂ©velopper centric

Et ça marche ! Mais ce test a, au moins, les 2 limitations suivantes :

  • Il est Ă©crit en Typescript : Il n’est donc pas facile Ă  comprendre pour les personnes qui ne dĂ©veloppent pas (on entend ici toute personne qui ne comprend pas du code de programmation), et c’est un peu dommage, car il est censĂ© reprĂ©senter un cas d’utilisation rĂ©el.
  • Utilisation de testId : les testIds sont des attributs ajoutĂ©s par les dĂ©veloppeurs pour faciliter la localisation des Ă©lĂ©ments de la page lors des tests.

Mais lorsqu’on les utilise dans nos tests, nous n’interagissons pas avec notre application comme un utilisateur final. Nos utilisateurs finaux ne connaissent pas les ID de test, ils connaissent les boutons, les liens, les champs de formulaire, ils connaissent tout ce qu’ils peuvent voir et/ou entendre.

Alors, comme bonne pratique, adoptons une approche centrée sur la personne utilisatrice (user-centric), qui consiste à utiliser des éléments connus de la personne utilisatrice finale pour interagir comme elle le ferait avec notre application.
Cet exemple montre le mĂȘme test Ă©crit avec la solution UUV.

Test User centric

Le nom et le rĂŽle accessibles sont utilisĂ©s pour exprimer le cas d’utilisation dans un langage anglais simple.

2. Oublier l’utilisation du clavier

La seconde erreur courante est de nĂ©gliger l’usage du clavier lors des tests. Les directives WCAG stipulent que tous les Ă©lĂ©ments interactifs doivent ĂȘtre accessibles via une interface clavier. Cela profite non seulement aux personnes ayant des handicaps visuels ou moteurs, mais aussi Ă  ceux qui prĂ©fĂšrent utiliser le clavier pour des raisons de productivitĂ©.
Pour remplir un formulaire comme celui-ci :

Formulaire Ă  remplir

Les utilisateurs dĂ©placent naturellement une souris pour naviguer, car c’est l’usage par dĂ©faut qui est enseignĂ© pour manipuler un ordinateur. Les dĂ©veloppeurs ont donc l’habitude de reproduire ce genre de scĂ©nario lors de tests E2E, comme sur cet exemple :

Remplissage du formulaire Ă  la souris

Pour les plus expĂ©rimentĂ©s d’entre nous, la navigation au clavier est un excellent moyen d’augmenter la productivitĂ©. Ainsi lorsque nous testons nos applications, une bonne pratique est de vĂ©rifier l’usage du clavier. Pour cet exemple, il convient donc de vĂ©rifier le remplissage du formulaire au clavier. Voici un scĂ©nario Ă©crit avec l’outil UUV pour le faire :

Remplissage du formulaire au clavier

La premiĂšre partie est identique Ă  la navigation Ă  la souris. Ensuite, nous plaçons le focus sur le coin gauche de l’application. Puis nous dĂ©plaçons le focus lorsque nous appuyons sur la touche tabulation et nous vĂ©rifions que le focus est sur le lien nommĂ© Weather App's Logo. Nous reproduisons ce mĂ©canisme avant de le soumettre.

3. Ignorer l’accessibilitĂ© (#a11y)

Contrairement Ă  ce que l’on pourrait croire, les tests E2E sont un excellent contexte pour effectuer des vĂ©rifications d’accessibilitĂ© en utilisant des outils comme axe-core (sous MPL2) pour effectuer des contrĂŽles de rĂ©fĂ©rence WCAG, ou en utilisant des bibliothĂšques comme uuv/a11y pour les vĂ©rifications RGAA. Il est important de garantir la non-rĂ©gression de l’accessibilitĂ© lorsque l’on met Ă  jour nos interfaces, surtout Ă  une Ă©poque oĂč l’intelligence artificielle prend de plus en plus de place.

Voici un exemple de scĂ©narios effectuant des vĂ©rifications d’accessibilitĂ© :

VĂ©rification d’accessibilitĂ©

En résumé

Commencer ou continuer Ă  :

  • Écrire des tests centrĂ©s sur l’utilisation
  • Tester l’utilisation du clavier
  • Effectuer des vĂ©rifications d'accessibilitĂ©

En adoptant ces pratiques, nous pouvons nous assurer que nos applications web sont robustes, accessibles et prĂȘtes pour une utilisation rĂ©elle par tous nos utilisateurs.

Mais au fait, qu’est-ce que UUV ?

Logo UUV

Pour faire simple, UUV est une solution opensource (MIT) qui facilite l’application des pratiques Ă©voquĂ©es et de bien d’autres en matiĂšre de tests E2E.

Disponible en tant que dĂ©pendance npm, UUV offre des phrases prĂȘtes Ă  l’emploi user-centric pour rĂ©diger les tests E2E. Pour les dĂ©veloppeurs, le plugin Jetbrains et l’extension VS Code facilite l’écriture des scĂ©narios. De plus, l’assistant UUV, une application de bureau, permet de gĂ©nĂ©rer des scĂ©narios de tests comme ceux pour vĂ©rifier la navigation au clavier, les interactions avec les boutons, et bien plus encore.

Vous pouvez tester UUV directement sur vos projets ou à l'aide du Kata UUV E2E et contribuer à son développement sur GitHub.

Merci pour votre lecture, n'hĂ©sitez pas Ă  partager votre avis en commentaire !

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌
❌