Initial commit
This commit is contained in:
179
features/error-handling/perte-reseau.feature
Normal file
179
features/error-handling/perte-reseau.feature
Normal file
@@ -0,0 +1,179 @@
|
||||
# language: fr
|
||||
|
||||
@error-handling @network-loss
|
||||
Fonctionnalité: Gestion de la perte de réseau et buffering adaptatif
|
||||
|
||||
Contexte:
|
||||
Étant donné que je suis un utilisateur connecté
|
||||
Et que je suis en mode écoute
|
||||
Et qu'un contenu est en cours de lecture
|
||||
|
||||
# 12.3 - Buffer adaptatif selon type de réseau (cf. TECHNICAL.md et ADR-002)
|
||||
|
||||
Plan du Scénario: Paramètres de buffer selon le type de réseau
|
||||
Étant donné que je suis connecté en "<type_reseau>"
|
||||
Quand le système initialise le buffer audio
|
||||
Alors le buffer minimum est de <buffer_min> secondes
|
||||
Et le buffer cible est de <buffer_cible> secondes
|
||||
Et le buffer maximum est de <buffer_max> secondes
|
||||
|
||||
Exemples:
|
||||
| type_reseau | buffer_min | buffer_cible | buffer_max |
|
||||
| WiFi | 5 | 30 | 120 |
|
||||
| 4G | 10 | 45 | 120 |
|
||||
| 5G | 10 | 45 | 120 |
|
||||
| 3G | 30 | 90 | 300 |
|
||||
|
||||
# Phase 1: Connexion instable
|
||||
|
||||
Scénario: Connexion instable avec latence élevée - aucun message immédiat
|
||||
Étant donné que je suis connecté en 4G
|
||||
Et que le buffer contient 45 secondes de contenu
|
||||
Quand la latence réseau dépasse 500ms
|
||||
Alors aucun message n'est affiché immédiatement
|
||||
Et la lecture continue normalement sur le buffer
|
||||
Et le système tente de continuer le téléchargement en arrière-plan
|
||||
|
||||
Scénario: Connexion instable pendant plus de 10 secondes - toast discret
|
||||
Étant donné que je suis connecté en 4G
|
||||
Et que la latence réseau dépasse 500ms depuis 10 secondes
|
||||
Quand le système détecte la latence prolongée
|
||||
Alors un toast discret s'affiche: "Connexion instable"
|
||||
Et le toast disparaît automatiquement après 3 secondes
|
||||
Et la lecture continue normalement
|
||||
|
||||
# Phase 2: Perte totale réseau
|
||||
|
||||
Scénario: Perte totale de réseau - lecture sur buffer
|
||||
Étant donné que je suis connecté en WiFi
|
||||
Et que le buffer contient 30 secondes de contenu
|
||||
Quand je perds totalement la connexion réseau
|
||||
Alors la lecture continue sur le buffer disponible
|
||||
Et un toast s'affiche: "Hors ligne, lecture sur buffer (30s restantes)"
|
||||
Et un compte à rebours du temps de buffer restant est visible
|
||||
|
||||
Scénario: Buffer qui s'épuise pendant la perte réseau
|
||||
Étant donné que je suis hors ligne
|
||||
Et que le buffer contient 30 secondes de contenu
|
||||
Quand le contenu continue de jouer
|
||||
Alors le compte à rebours diminue en temps réel
|
||||
Et le toast affiche "Hors ligne, lecture sur buffer (15s restantes)" après 15 secondes
|
||||
Et le toast affiche "Hors ligne, lecture sur buffer (5s restantes)" après 25 secondes
|
||||
|
||||
# Phase 3: Buffer épuisé sans reconnexion
|
||||
|
||||
Scénario: Pause automatique après épuisement du buffer
|
||||
Étant donné que je suis hors ligne depuis 30 secondes
|
||||
Et que le buffer est complètement épuisé
|
||||
Quand il n'y a plus de contenu audio à lire
|
||||
Alors la lecture se met en pause automatiquement
|
||||
Et un overlay s'affiche: "Connexion perdue. Reconnexion en cours..."
|
||||
Et le système tente de se reconnecter automatiquement
|
||||
|
||||
Scénario: Tentatives de reconnexion automatique
|
||||
Étant donné que la lecture est en pause suite à l'épuisement du buffer
|
||||
Quand le système tente de se reconnecter
|
||||
Alors une tentative de reconnexion est effectuée toutes les 5 secondes
|
||||
Et un maximum de 6 tentatives sont effectuées (30 secondes au total)
|
||||
Et l'overlay affiche "Tentative de reconnexion... (X/6)"
|
||||
|
||||
# Phase 4: Basculement mode offline après échec reconnexion
|
||||
|
||||
Scénario: Proposition du mode offline après 30 secondes d'échec
|
||||
Étant donné que 6 tentatives de reconnexion ont échoué
|
||||
Et que cela fait 30 secondes que je suis déconnecté
|
||||
Quand la 6ème tentative échoue
|
||||
Alors une popup s'affiche: "Voulez-vous continuer avec vos contenus téléchargés ?"
|
||||
Et la popup contient deux boutons:
|
||||
| bouton | action |
|
||||
| Réessayer | Nouvelle série de 6 tentatives |
|
||||
| Mode offline | Bascule sur contenus téléchargés |
|
||||
|
||||
Scénario: Basculement réussi vers le mode offline
|
||||
Étant donné que la popup de mode offline est affichée
|
||||
Et que j'ai téléchargé 20 contenus dans ma zone géographique
|
||||
Quand je clique sur "Mode offline"
|
||||
Alors le système bascule sur les contenus téléchargés
|
||||
Et un nouveau contenu téléchargé démarre automatiquement
|
||||
Et un bandeau permanent indique "Mode hors ligne - Contenus téléchargés"
|
||||
|
||||
Scénario: Aucun contenu téléchargé disponible
|
||||
Étant donné que la popup de mode offline est affichée
|
||||
Et que je n'ai aucun contenu téléchargé
|
||||
Quand je clique sur "Mode offline"
|
||||
Alors un message s'affiche: "Aucun contenu téléchargé disponible"
|
||||
Et je suis invité à me connecter en WiFi pour télécharger du contenu
|
||||
Et le bouton "Réessayer" reste la seule option
|
||||
|
||||
# Reconnexion réussie
|
||||
|
||||
Scénario: Reprise automatique après reconnexion
|
||||
Étant donné que la lecture est en pause depuis 15 secondes
|
||||
Et que j'étais à 02:35 du contenu en cours
|
||||
Quand la connexion réseau est rétablie
|
||||
Alors la lecture reprend automatiquement au point d'arrêt exact (02:35)
|
||||
Et un toast s'affiche: "Connexion rétablie"
|
||||
Et le toast disparaît après 3 secondes
|
||||
Et le buffer se remplit progressivement selon le type de réseau
|
||||
|
||||
Scénario: Reconnexion avec changement de type de réseau
|
||||
Étant donné que j'étais connecté en WiFi
|
||||
Et que j'ai perdu la connexion
|
||||
Quand je me reconnecte en 4G
|
||||
Alors le système ajuste automatiquement les paramètres de buffer
|
||||
Et le buffer minimum passe de 5s à 10s
|
||||
Et le buffer cible passe de 30s à 45s
|
||||
Et la lecture reprend normalement
|
||||
|
||||
# Cas spécifique: tunnel routier
|
||||
|
||||
Scénario: Passage dans un tunnel avec perte de signal
|
||||
Étant donné que je conduis à 90 km/h sur autoroute
|
||||
Et que je suis connecté en 4G avec un buffer de 45 secondes
|
||||
Quand j'entre dans un tunnel et perds le signal
|
||||
Alors la lecture continue sur le buffer pendant 45 secondes maximum
|
||||
Et aucune notification n'est affichée pendant les 10 premières secondes
|
||||
Et un toast discret s'affiche après 10 secondes: "Connexion instable"
|
||||
|
||||
Scénario: Sortie du tunnel avant épuisement du buffer
|
||||
Étant donné que je suis dans un tunnel depuis 30 secondes
|
||||
Et qu'il reste 15 secondes de buffer
|
||||
Quand je sors du tunnel et récupère le signal 4G
|
||||
Alors la lecture continue sans interruption
|
||||
Et le buffer se remplit à nouveau
|
||||
Et un toast s'affiche: "Connexion rétablie"
|
||||
|
||||
# Handoff réseau (changement de cellule mobile)
|
||||
|
||||
Scénario: Changement de cellule 4G pendant la lecture
|
||||
Étant donné que je conduis et change de cellule mobile toutes les 5-10 minutes
|
||||
Et que le buffer contient 45 secondes de contenu
|
||||
Quand un handoff de cellule se produit
|
||||
Alors la lecture continue sans interruption grâce au buffer
|
||||
Et la connexion à la nouvelle cellule se fait de manière transparente
|
||||
Et aucune notification n'est affichée si le handoff réussit en moins de 5 secondes
|
||||
|
||||
# Mode offline préventif avant perte réseau
|
||||
|
||||
Scénario: Téléchargement préventif en WiFi avant trajet
|
||||
Étant donné que je suis connecté en WiFi
|
||||
Et que j'ai activé le téléchargement automatique
|
||||
Quand le système détecte que je suis à l'arrêt en WiFi
|
||||
Alors le système me propose de télécharger du contenu pour mon trajet
|
||||
Et je peux sélectionner une zone géographique à télécharger
|
||||
Et le téléchargement se fait en arrière-plan
|
||||
|
||||
# Métriques et monitoring
|
||||
|
||||
Scénario: Tracking des événements de perte réseau pour amélioration
|
||||
Étant donné que je perds la connexion réseau
|
||||
Quand l'événement de perte est détecté
|
||||
Alors le système enregistre les métriques suivantes:
|
||||
| métrique |
|
||||
| Type de réseau avant perte |
|
||||
| Durée de la coupure |
|
||||
| Buffer disponible |
|
||||
| Position GPS approximative |
|
||||
| Heure de la journée |
|
||||
Et ces métriques sont anonymisées et envoyées en batch lors de la prochaine connexion WiFi
|
||||
Et les données servent à améliorer les paramètres de buffer
|
||||
Reference in New Issue
Block a user