---
# System prepended metadata

title: Scénarii-clés de fonctionnement de Pilote
tags: [PILOTE]

---

# Scénarii-clés de fonctionnement de Pilote

Problématique : manque de sécurisation transverse par des tests permettant de vérifier que l'appli fonctionne de manière générale.

Pyramide de testing à 3 étages

2 couches existent ajd
- unit tests (couche la plus basse)
- integration tests (couche intermédiaire)
--> tests fins de l'application

Il manque une 3e couche : end-to-end tests = actions réalisées par les utilisateur **sans connaissance technique** de l'appli.

Plus on monte dans la pyramide, plus les tests sont coûteux mais respectent les comportements utilisateurs.

API serveur
> Couche presentation --> integration tests
>> Couche Domain --> unit tests
>>> Couche persistence --> integration tests

Serveur appelé par l'interface --> end-to-end tests

En end-to-end, tant que les scénarii critiques passent toujours, on répond au besoin utilisateur.

- Option 1 : scénarii très précis (granularité très fine)
Cette option est pertinente en phase exploratoire, lorsqu'on part d'un héritage et qu'on veut transformer l'appli
- Option 2 : scénarii plus grossiers
Moins de tests à maintenir = ce que Jordan recommande

La formulation des tests end-to-end est la même que dans les US : "en tant qu'utilisateur, lorsque je fais ci, alors il se passe ça"

Grâce aux outils codegen et playwright, il est possible de générer du script de test automatiquement en déroulant un scénario à l'écran.

Ces tests fonctionneront toujours même si le code change.

**A faire** : décrire les grandes fonctionnalités de l'application et affiner les scénarios au fur et à mesure.

# EPICS

#### Ensemble des scénarii critiques de PILOTE

* Par profil
* Actions-clés

##### 1. Landing page

En tant qu'utilisateur non-connecté, quand je tape l'URL de l'application, j'accède à la landing page 

##### 2. Authentification

En tant qu'utilisateur, lorsque je veux accéder à PILOTE, je dois m'authentifier

##### 3. Home page

En tant qu'utilisateur connecté, j'accède à la home page pour voir une liste de chantiers, données et informations associées

En tant qu'utilisateur connecté, j'accède à la home page pour voir une carte ou une liste de territoires. 

Idem avec : 

- jauge
- taux d'avancement
- répartition des météos 

##### 4. Liste des chantiers [critique]

En tant qu'utilisateur connecté, je ne vois que la liste des chantiers qui m'appartiennent.

... je vois les chantiers des ministères auxquels j'ai accès

##### 5. Sélectionner un territoire

En tant qu'utilisateur connecté ayant accès plusieurs territoires, lorsque je sélectionne un territoire, je vois : 

- les chantiers du territoire sélectionné et les informations associées
- je vois le TA du territoire
- les météos du territoire


En tant qu'utilisateur n'ayant accès qu'à un département, alors je n'ai accès qu'aux chantiers de mon département et informations associées.

##### 6. Sélectionner un chantier

En tant qu'utilisateur connecté, lorsque je clique sur un chantier, je suis redirigé vers la fiche d'information du chantier. 

##### 7. Page chantier

En tant qu'utilisateur connecté, lorsque j'ai sélectionné un chantier, je peux voir toutes les informations de la fiche d'information (TA, météo, responsables, indicateurs, commentaires...)

##### 8. Modification de la page chantier

En tant qu'utilisateur ayant des droits de modification, je peux modifier l'ensemble des rubriques (données qualitatives)

En tant qu'utilisateur ayant des droits d'import, je peux accéder à la page d'import des données. 

> OPTIONNEL : 
    > en tant qu'utilisateur connecté, je peux consulter les détails de chaque indicateur
    > en tant qu'utilisateur connecté, je peux sélectionner plusieurs territoires pour comparer leurs informations
    > en tant qu'utilisateur connecté, je peux imprimer la page
    > en tant qu'utilisateur je peux voir l'historique des commentaires
    > ...

##### 9. Import des données 

En tant qu'utilisateur ayant des droits d'import, je peux choisir un indicateur pour importer des données associées. 


