210 lines
9.9 KiB
Gherkin
210 lines
9.9 KiB
Gherkin
# language: fr
|
||
Fonctionnalité: Comportement auditeur pendant un live
|
||
En tant qu'auditeur
|
||
Je veux écouter des lives de manière stable
|
||
Afin de profiter du contenu en temps réel sans coupures
|
||
|
||
Contexte:
|
||
Étant donné que l'API RoadWave est disponible
|
||
Et que je suis connecté en tant qu'auditeur
|
||
Et qu'un créateur diffuse actuellement un live
|
||
|
||
Scénario: Rejoindre un live avec buffer de synchronisation 15 secondes
|
||
Quand je clique sur "Rejoindre le live"
|
||
Alors la connexion au flux HLS s'établit
|
||
Et je commence à écouter avec un décalage de 15 secondes par rapport au créateur
|
||
Et le buffer de 15 secondes garantit une lecture stable
|
||
|
||
Scénario: Justification du buffer 15 secondes
|
||
Étant donné les alternatives de buffer possibles:
|
||
| buffer | stabilité 3G | stabilité 4G | décalage perceptible | décision |
|
||
| 5s | Faible | Moyenne | Non | ❌ |
|
||
| 10s | Moyenne | Bonne | Non | ❌ |
|
||
| 15s | Bonne | Excellente | Léger acceptable | ✅ |
|
||
| 20s+ | Excellente | Excellente | Oui | ❌ |
|
||
Alors le buffer optimal est 15 secondes
|
||
|
||
Scénario: Lecture stable sur réseau 3G
|
||
Étant donné que je suis sur réseau 3G
|
||
Et que j'écoute un live
|
||
Quand des micro-coupures réseau surviennent
|
||
Alors le buffer de 15 secondes absorbe les coupures
|
||
Et la lecture continue sans interruption perceptible
|
||
|
||
Scénario: Lecture stable sur réseau 4G
|
||
Étant donné que je suis sur réseau 4G
|
||
Et que j'écoute un live
|
||
Alors la lecture est fluide
|
||
Et le buffer de 15 secondes prévient les coupures lors de changement de cellule
|
||
|
||
Scénario: Continuation du live en sortant de la zone géographique
|
||
Étant donné que j'écoute un live régional "Île-de-France"
|
||
Et que je suis situé en Île-de-France
|
||
Quand je me déplace et sors du département
|
||
Alors le live continue de jouer normalement
|
||
Et je peux écouter jusqu'à la fin naturelle du live
|
||
Et après la fin du live, l'algorithme propose du contenu correspondant à ma nouvelle position
|
||
|
||
Scénario: Abonné dans la zone reçoit notification push
|
||
Étant donné que je suis abonné au créateur "JeanDupont"
|
||
Et que je suis situé en Île-de-France
|
||
Quand "JeanDupont" démarre un live en Île-de-France
|
||
Alors je reçois une notification push "🔴 JeanDupont est en direct : [Titre du live]"
|
||
Et quand je tape sur la notification, l'app s'ouvre et le live démarre immédiatement
|
||
|
||
Scénario: Abonné hors zone ne reçoit pas de notification
|
||
Étant donné que je suis abonné au créateur "JeanDupont"
|
||
Et que je suis situé à Lyon
|
||
Quand "JeanDupont" démarre un live en Île-de-France
|
||
Alors je ne reçois pas de notification push
|
||
Et cela évite la frustration de ne pas pouvoir écouter un live hors zone
|
||
|
||
Scénario: Découverte d'un live via l'algorithme de recommandation
|
||
Étant donné que je suis dans la zone géographique du live
|
||
Et que je navigue dans l'app avec "Suivant"
|
||
Quand l'algorithme propose un live en cours
|
||
Alors je vois l'indicateur "🔴 EN DIRECT"
|
||
Et je peux choisir de le rejoindre ou de passer au suivant
|
||
|
||
Scénario: Reconnexion rapide après coupure réseau (moins de 90 secondes)
|
||
Étant donné que j'écoute un live
|
||
Quand je perds ma connexion réseau pendant 45 secondes
|
||
Et que je retrouve ma connexion
|
||
Alors je reprends le live au moment actuel (pas au buffer ancien)
|
||
Et le saut temporel est transparent (pas de message d'erreur)
|
||
Et je ne rate que quelques secondes de contenu
|
||
|
||
Scénario: Reconnexion longue après coupure réseau (90 secondes ou plus)
|
||
Étant donné que j'écoute un live
|
||
Quand je perds ma connexion réseau pendant 90 secondes
|
||
Et que je retrouve ma connexion
|
||
Alors je vois le message "Live en cours perdu, passage au contenu suivant"
|
||
Et l'algorithme propose automatiquement le contenu suivant
|
||
Et je peux manuellement revenir au live s'il est toujours en cours
|
||
|
||
Scénario: Interactions disponibles pendant le live - Like
|
||
Étant donné que j'écoute un live
|
||
Et que mon véhicule est à l'arrêt
|
||
Quand je clique sur le bouton "❤️ Like"
|
||
Alors le like est enregistré immédiatement
|
||
Et le compteur de likes visible par le créateur s'incrémente
|
||
Et ma jauge d'intérêt pour les tags du live augmente de +2%
|
||
|
||
Scénario: Interactions disponibles pendant le live - Abonnement
|
||
Étant donné que j'écoute un live
|
||
Et que je ne suis pas encore abonné au créateur
|
||
Quand je clique sur le bouton "S'abonner"
|
||
Alors je m'abonne au créateur
|
||
Et ma jauge d'intérêt pour tous les tags du créateur augmente de +5%
|
||
Et je recevrai des notifications pour ses prochains lives
|
||
|
||
Scénario: Interactions disponibles pendant le live - Skip
|
||
Étant donné que j'écoute un live
|
||
Quand j'appuie sur "Suivant" (ou commande au volant)
|
||
Alors je quitte le live immédiatement
|
||
Et l'algorithme propose le contenu suivant
|
||
Et si j'ai écouté moins de 10 secondes, ma jauge d'intérêt diminue de -0.5%
|
||
|
||
Scénario: Commande Précédent désactivée pendant un live
|
||
Étant donné que j'écoute un live
|
||
Quand j'appuie sur "Précédent" (ou commande au volant)
|
||
Alors rien ne se passe
|
||
Et un message d'information s'affiche brièvement "Précédent non disponible sur les lives"
|
||
|
||
Scénario: Chat en direct désactivé (décision définitive)
|
||
Étant donné que j'écoute un live
|
||
Alors aucune interface de chat n'est disponible
|
||
Et je ne peux pas envoyer de messages au créateur
|
||
Et je ne peux pas voir de messages d'autres auditeurs
|
||
Et cette fonctionnalité ne sera jamais implémentée
|
||
|
||
Scénario: Réactions emoji désactivées (décision définitive)
|
||
Étant donné que j'écoute un live
|
||
Alors aucune réaction emoji n'est disponible
|
||
Et je ne peux pas envoyer d'emoji en temps réel
|
||
Et cette fonctionnalité ne sera jamais implémentée
|
||
|
||
Scénario: Message d'information sur l'absence de chat
|
||
Étant donné que j'écoute mon premier live
|
||
Quand j'accède à l'interface du live
|
||
Alors je vois un bandeau informatif "💬 Les discussions ne sont pas disponibles sur RoadWave pour garantir votre sécurité en voiture et éviter le harcèlement."
|
||
Et ce bandeau n'apparaît qu'une seule fois (première expérience)
|
||
|
||
Scénario: Signalement d'un live en cours
|
||
Étant donné que j'écoute un live
|
||
Et que le contenu me semble inapproprié
|
||
Quand je clique sur le bouton "Signaler"
|
||
Alors je vois les catégories de signalement:
|
||
| catégorie |
|
||
| Haine et violence |
|
||
| Contenu sexuel |
|
||
| Illégalité |
|
||
| Droits d'auteur |
|
||
| Désinformation dangereuse |
|
||
| Harcèlement |
|
||
| Autre |
|
||
Et quand je sélectionne une catégorie
|
||
Alors le signalement est envoyé en priorité selon la catégorie
|
||
Et un modérateur peut écouter le live en temps réel si besoin
|
||
|
||
Scénario: Statistiques visibles par les auditeurs pendant le live
|
||
Étant donné que j'écoute un live
|
||
Quand je consulte les informations du live
|
||
Alors je vois:
|
||
| information | exemple valeur |
|
||
| Nombre d'auditeurs | 247 personnes |
|
||
| Durée du live | 1h 23min |
|
||
| Nom du créateur | @JeanDupont |
|
||
| Zone de diffusion | Île-de-France |
|
||
| Tags | Actualité, Société |
|
||
Mais je ne vois pas les likes ou autres métriques détaillées
|
||
|
||
Scénario: Compteur d'auditeurs arrondi pour préserver la vie privée
|
||
Étant donné que j'écoute un live avec exactement 247 auditeurs
|
||
Quand je consulte le nombre d'auditeurs
|
||
Alors je vois "~250 auditeurs" (arrondi à la dizaine supérieure)
|
||
|
||
Scénario: Qualité audio adaptative pendant le live
|
||
Étant donné que j'écoute un live
|
||
Quand ma connexion passe de 4G à 3G
|
||
Alors la qualité audio s'adapte automatiquement
|
||
Et je passe de 48 kbps à 24 kbps Opus
|
||
Et la transition est transparente sans coupure
|
||
|
||
Scénario: Consommation de données pendant un live
|
||
Étant donné que j'écoute un live en qualité standard 48 kbps
|
||
Et que j'écoute pendant 1 heure
|
||
Alors j'ai consommé environ 21.6 MB de données mobiles
|
||
Et cette consommation est affichée dans les paramètres de l'app
|
||
|
||
Scénario: Lecture du replay après la fin du live
|
||
Étant donné que j'écoute un live depuis 30 minutes
|
||
Quand le créateur arrête le live
|
||
Alors je vois le message "Le live est terminé. Le replay sera disponible dans quelques minutes"
|
||
Et le contenu suivant est automatiquement proposé après 2 secondes
|
||
|
||
Scénario: Notification de disponibilité du replay
|
||
Étant donné que j'ai écouté un live jusqu'à la fin
|
||
Et que le replay est publié 8 minutes plus tard
|
||
Quand je rouvre l'application
|
||
Alors je vois une notification in-app "Le replay de [Titre] est maintenant disponible"
|
||
Et je peux cliquer pour l'écouter immédiatement
|
||
|
||
Scénario: Aucune publicité pendant un live pour utilisateurs gratuits
|
||
Étant donné que je suis un utilisateur gratuit
|
||
Et que j'écoute un live
|
||
Alors aucune publicité n'est insérée pendant le live
|
||
Et la publicité apparaît seulement entre le live et le contenu suivant
|
||
|
||
Scénario: Détection de contexte voiture pendant un live
|
||
Étant donné que j'écoute un live
|
||
Et que ma vitesse est supérieure à 10 km/h
|
||
Alors l'interface tactile est désactivée pour la sécurité
|
||
Et seules les commandes au volant sont actives (Play/Pause/Suivant)
|
||
|
||
Scénario: Détection de contexte piéton pendant un live
|
||
Étant donné que j'écoute un live
|
||
Et que ma vitesse est inférieure à 5 km/h
|
||
Alors l'interface tactile complète est disponible
|
||
Et je peux liker, m'abonner, signaler via l'écran tactile
|