# Tests de bout en bout

Ces tests vérifient l'ensemble des couches de l'application et ses dépendances :

* Soit en simulant une action utilisateur sur le front, soit par une requête HTTP à l'API (si aucun front).
* En vérifiant que le résultat attendu est conforme aux attentes (code d'erreur, affichage, etc.)

## Stratégie

Ces tests sont tout en haut de la [pyramide des tests](https://martinfowler.com/articles/practical-test-pyramid.html#TheTestPyramid) :

* **Boucle de feedback plus longue** : chaque test prend au moins plusieurs secondes à s'exécuter
* **Plus coûteux** : toute l'architecture du projet doit être instanciée

Seuls les parcours les plus importants pour les utilisateurs doivent être testés. Un dialogue entre les parties prenantes est nécessaire pour déterminer quels comportements méritent d'être testés de bout en bout :

* Taux d'utilisation (ex : 90% des utilisateurs font cette action au moins 5 fois par jour)
* Chemin critique (ex : l'accès à l'application se fait par une authentification)
* etc.

## Outil privilégié

Nous recommandons [Playwright](https://playwright.dev/) pour l'écriture et l'exécution de ces tests :

* Activement maintenu.
* Bien documenté.
* Supporte plusieurs plateformes (NodeJS, Java, etc.).
* **Adopté au sein de la DNUM**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dnum-ministeres-sociaux.gitbook.io/ressources/developper/tests-et-strategies/tests-de-bout-en-bout.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
