Published On: 24 mars 20223,3 min read

Tout savoir sur les tests End-To-End

Définition

La technique des tests end-to-end, ou de bout en bout, va permettre de vérifier le bon fonctionnement d’une application (web, mobile …) dans son ensemble. Elle consiste à tester tout le système, de son interface jusqu’à son mode de fonctionnement. En suivant des cas d’usage représentatifs des utilisateurs finaux, ils seront exécutés par des automates au plus proche de la réalité.

Ils iront même souvent plus loin que le seul parcours utilisateur lorsqu’ils iront aussi vérifier, une fois la partie « front » validée, que les parties « back » et périphériques sont conformes aux attentes. Son principe est de tester l’expérience utilisateur afin de permettre aux visiteurs d’utiliser un navigateur, une page ou une application dans les meilleures conditions.

Les avantages des tests End-To-End

Le premier avantage des tests end-to-end ou bout en bout est de passer en revue un très grand nombre de fonctionnalités en très peu de passes. A partir des tests unitaires, on va s’assurer que tous les modules sont bien interconnectés et qu’ils interagissent correctement que cela soit des tests passants ou non.

Un second avantage des tests end-to-end sera de valider les cas d’usages critiques, fondamentaux souvent déterminés par les métiers, et qui seront représentatifs du comportement de la majorité des utilisateurs. Dans le cadre de e-commerce, ce seront ces cas d’usages qui en général seront générateurs de la majeure partie du chiffre d’affaires. Grâce à un test end-to-end, les e-commerçants peuvent optimiser l’expérience client en leur permettant de commander en un seul click.

Les Inconvénients des tests End-To-End

De par leur nature « jusqu’au-boutiste », les tests bout seront longs à exécuter car nécessitant un très grand nombre d’étapes. Le feedback sera d’autant plus long à être obtenu qu’un des principaux inconvénients de ce type de test réside dans le fait qu’il peut être parfois assez difficile de les exécuter dans de bonnes conditions et donc de les valider. Ils impliqueront parfois tellement de services externes dans un environnement de préproduction souvent peu stable que cela relèvera presque inévitablement du chemin de croix. Un des premiers reflexes sera de vouloir « mocker » ces services externes instables mais le test perdra alors de son utilité.

Ainsi, il faut passer par un grand nombre d’étapes ou de scénarios pour exécuter les tests end-to-end. Ils seront, par conséquent plus difficiles à maintenir sur le long terme et nécessiteront un investissement en temps non négligeable. Les id et autres attributs permettant de facilement retrouver les éléments dans une interface ayant tendance à disparaitre avec l’utilisation des nouvelles technologies de programmation web, la maintenance pour corriger les faux négatifs (test KO parce qu’un élément a changé de place dans la page par exemple) s’en trouve alors fortement accrue.

Quand exécuter les tests End-To-End ?

L’utilisation seule des tests end-to-end dans une phase de recette serait dangereuse car n’assurerait en rien que la solution testée est exempte de bugs. En ne testant que les principales fonctionnalités, on ne s’affranchira pas des faux positifs. Les éventuelles régressions provoquées par les modifications dans l’intégration du code portant sur les parties non testées car moins utilisées ne seront pas détectées. L’expérience a montré que les utilisateurs rencontreront immanquablement ces anomalies et souvent plus vite qu’on ne l’imagine.

Il conviendra donc de dérouler ces tests end-to-end à la fin de la phase de recette, une fois l’ensemble des autres tests effectuées. Sous entendant qu’il doit impérativement exister d’autres types de tests moins macro, plus élitistes permettant au final de couvrir la majeure partie de l’application.

Testez plus vite
et mieux avec les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing

Testez plus vite et mieux avec
les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing