ArrĂȘtons de (dĂ©)tester nos applications web
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 :
Avec un outil populaire comme Cypress (sous MIT), je peux Ă©crire le test suivant :
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.
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 :
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 :
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 :
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Ă© :
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 ?
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