Ajout de 47 features Gherkin (~650 scénarios) pour couvrir 100% des règles métier : - Authentification (5) : validation mot de passe, tentatives connexion, multi-device, 2FA, récupération - Audio-guides (12) : détection mode, création, navigation piéton/voiture, ETA, gestion points, progression - Navigation (5) : notifications minimalistes, décompte 5s, stationnement, historique, basculement auto - Création contenu (3) : image auto, restrictions modification, suppression - Radio live (2) : enregistrement auto, interdictions modération - Droits auteur (6) : fair use 30s, détection musique, signalements, sanctions, appels - Modération (9) : badges Bronze/Argent/Or, score fiabilité, utilisateur confiance, audit, anti-abus - Premium (2) : webhooks Mangopay, tarification multi-canal - Profil/Partage/Recherche (5) : badge vérifié, stats arrondies, partage premium, filtres avancés, carte Tous les scénarios incluent edge cases, métriques de performance et conformité RGPD. Couverture fonctionnelle MVP maintenant complète.
224 lines
12 KiB
Gherkin
224 lines
12 KiB
Gherkin
# language: fr
|
|
|
|
@api @audio-guides @car-mode @geolocation @mvp
|
|
Fonctionnalité: Déclenchement GPS automatique des audio-guides en mode voiture
|
|
|
|
En tant qu'utilisateur en voiture
|
|
Je veux que les audio-guides se déclenchent automatiquement à l'approche des points d'intérêt
|
|
Afin de profiter d'une expérience guidée sans interaction manuelle pendant la conduite
|
|
|
|
Contexte:
|
|
Étant donné que le système de déclenchement en mode voiture respecte:
|
|
| Paramètre | Valeur |
|
|
| Rayon de déclenchement | 200-500m |
|
|
| Vitesse max pour déclenchement | 90 km/h |
|
|
| Ordre de séquences | Strict |
|
|
| Notification visuelle | Minimale |
|
|
| Notification audio | Prioritaire |
|
|
| Auto-play | Obligatoire |
|
|
|
|
Scénario: Démarrage d'un audio-guide en mode voiture
|
|
Étant donné un utilisateur "alice@roadwave.fr" en mode voiture
|
|
Et elle roule à 50 km/h sur l'autoroute A6
|
|
Quand elle lance l'audio-guide "Route des Châteaux de la Loire"
|
|
Alors l'audio de la séquence d'introduction démarre automatiquement
|
|
Et l'interface minimaliste en mode voiture s'affiche:
|
|
| Élément | État |
|
|
| Carte | Simplifiée, zoom automatique |
|
|
| Notifications visuelles | Minimales |
|
|
| Prochain point | Château de Chambord - 25 km |
|
|
| ETA | Arrivée dans 18 minutes |
|
|
| Contrôles audio | Gros boutons [Pause] [Skip] |
|
|
Et un événement "AUDIO_GUIDE_STARTED_CAR_MODE" est enregistré
|
|
Et la métrique "audio_guide.started.car_mode" est incrémentée
|
|
|
|
Scénario: Déclenchement automatique à l'approche d'un point d'intérêt
|
|
Étant donné un utilisateur "bob@roadwave.fr" en mode voiture à 60 km/h
|
|
Et il écoute l'audio-guide "Route des Châteaux de la Loire"
|
|
Et il approche du Château de Chambord
|
|
Quand il entre dans un rayon de 400m du château (configuré par le créateur)
|
|
Alors l'audio en cours se termine en fondu (3 secondes)
|
|
Et l'audio de la séquence "Château de Chambord" démarre automatiquement
|
|
Et une notification audio est jouée: "À votre droite, Château de Chambord"
|
|
Et une notification visuelle minimale s'affiche brièvement (2s):
|
|
| Élément | Contenu |
|
|
| Titre | Château de Chambord |
|
|
| Direction | → À droite |
|
|
| Distance | 400m |
|
|
Et un événement "SEQUENCE_AUTO_TRIGGERED_CAR" est enregistré
|
|
Et la métrique "audio_guide.sequence.car.triggered" est incrémentée
|
|
|
|
Scénario: Calcul de l'ETA dynamique basé sur la vitesse réelle
|
|
Étant donné un utilisateur "charlie@roadwave.fr" en mode voiture
|
|
Et il approche du prochain point d'intérêt à 15 km
|
|
Et il roule à 80 km/h
|
|
Quand le système calcule l'ETA
|
|
Alors l'ETA affiché est: "Arrivée dans 11 minutes"
|
|
Quand il ralentit à 50 km/h (bouchon)
|
|
Alors l'ETA est recalculé en temps réel: "Arrivée dans 18 minutes"
|
|
Et un événement "ETA_RECALCULATED" est enregistré
|
|
Et la métrique "audio_guide.eta.updated" est incrémentée
|
|
|
|
Scénario: Notification vocale d'approche 2km avant le point
|
|
Étant donné un utilisateur "david@roadwave.fr" en mode voiture à 70 km/h
|
|
Et il écoute l'audio-guide "Route des Châteaux de la Loire"
|
|
Quand il est à 2 km du Château de Chenonceau
|
|
Alors une notification vocale est jouée par-dessus l'audio actuel:
|
|
"Dans 2 kilomètres, vous découvrirez le Château de Chenonceau"
|
|
Et le volume de l'audio actuel est réduit de 50% pendant la notification (ducking audio)
|
|
Et après la notification, le volume reprend normalement
|
|
Et un événement "POI_ADVANCE_NOTIFICATION" est enregistré avec distance: 2000m
|
|
Et la métrique "audio_guide.advance_notification" est incrémentée
|
|
|
|
Scénario: Gestion du dépassement d'un point d'intérêt sans déclenchement
|
|
Étant donné un utilisateur "eve@roadwave.fr" en mode voiture à 90 km/h
|
|
Et elle approche du Château d'Amboise (séquence #3)
|
|
Mais elle a manqué la séquence #2 (Château de Chaumont)
|
|
Quand elle entre dans le rayon du Château d'Amboise
|
|
Alors l'audio de la séquence #2 est automatiquement joué d'abord
|
|
Et un message vocal indique: "Séquence précédente: Château de Chaumont"
|
|
Et après la fin de la séquence #2, la séquence #3 démarre
|
|
Et un événement "SEQUENCE_CATCH_UP" est enregistré
|
|
Et la métrique "audio_guide.sequence.catch_up" est incrémentée
|
|
|
|
Scénario: Marquage automatique d'une séquence comme "manquée"
|
|
Étant donné un utilisateur "frank@roadwave.fr" en mode voiture à 100 km/h
|
|
Et il a dépassé le Château de Chaumont sans entrer dans son rayon
|
|
Et il s'éloigne maintenant à plus de 5 km
|
|
Alors la séquence "Château de Chaumont" est marquée comme "Manquée"
|
|
Et elle reste disponible dans la liste pour écoute manuelle ultérieure
|
|
Et un événement "SEQUENCE_MISSED" est enregistré avec raison: "too_fast"
|
|
Et la métrique "audio_guide.sequence.missed" est incrémentée
|
|
|
|
Scénario: Pause automatique lors d'un appel téléphonique
|
|
Étant donné un utilisateur "grace@roadwave.fr" en mode voiture
|
|
Et elle écoute l'audio-guide à la position 3min 20s
|
|
Quand elle reçoit un appel téléphonique via CarPlay
|
|
Alors l'audio-guide se met automatiquement en pause
|
|
Et la position de lecture est sauvegardée: 3min 20s
|
|
Et un événement "AUDIO_PAUSED_PHONE_CALL" est enregistré
|
|
Quand l'appel se termine
|
|
Alors l'audio-guide reprend automatiquement à 3min 20s
|
|
Et un événement "AUDIO_RESUMED_AFTER_CALL" est enregistré
|
|
Et la métrique "audio_guide.interruption.phone" est incrémentée
|
|
|
|
Scénario: Intégration avec CarPlay pour affichage sur écran véhicule
|
|
Étant donné un utilisateur "henry@roadwave.fr" en mode voiture
|
|
Et son iPhone est connecté via CarPlay
|
|
Quand il lance l'audio-guide "Route des Châteaux de la Loire"
|
|
Alors l'interface CarPlay s'affiche sur l'écran du véhicule:
|
|
| Élément | Affichage |
|
|
| Carte simplifiée | Vue routière optimisée |
|
|
| Prochain point | Nom + distance + ETA |
|
|
| Contrôles audio | Gros boutons tactiles |
|
|
| Progression | Barre 3/10 séquences |
|
|
| Commandes vocales | "Dis Siri, suivant" |
|
|
Et les contrôles au volant du véhicule fonctionnent (lecture/pause)
|
|
Et un événement "CARPLAY_SESSION_STARTED" est enregistré
|
|
Et la métrique "audio_guide.carplay.used" est incrémentée
|
|
|
|
Scénario: Commandes vocales Siri pour contrôle sans les mains
|
|
Étant donné un utilisateur "iris@roadwave.fr" en mode voiture
|
|
Et elle écoute l'audio-guide via CarPlay
|
|
Quand elle dit "Dis Siri, mets en pause"
|
|
Alors l'audio-guide se met en pause
|
|
Quand elle dit "Dis Siri, reprends la lecture"
|
|
Alors l'audio-guide reprend
|
|
Quand elle dit "Dis Siri, séquence suivante"
|
|
Alors la séquence suivante démarre
|
|
Et un événement "VOICE_COMMAND_EXECUTED" est enregistré avec commande: "next"
|
|
Et la métrique "audio_guide.voice_commands.used" est incrémentée
|
|
|
|
Scénario: Adaptation du volume en fonction de la vitesse du véhicule
|
|
Étant donné un utilisateur "jack@roadwave.fr" en mode voiture
|
|
Et il écoute l'audio-guide avec volume configuré à 70%
|
|
Quand il roule à 50 km/h
|
|
Alors le volume reste à 70% (bruit ambiant faible)
|
|
Quand il accélère à 130 km/h sur autoroute
|
|
Alors le volume augmente automatiquement à 85% (compensation du bruit)
|
|
Et un événement "VOLUME_AUTO_ADJUSTED" est enregistré avec vitesse: 130, volume: 85
|
|
Et la métrique "audio_guide.volume.auto_adjusted" est incrémentée
|
|
|
|
Scénario: Désactivation temporaire en cas de vitesse excessive
|
|
Étant donné un utilisateur "kate@roadwave.fr" en mode voiture
|
|
Et elle écoute l'audio-guide sur autoroute
|
|
Quand elle dépasse les 110 km/h
|
|
Alors l'audio continue de jouer normalement
|
|
Mais aucune nouvelle séquence ne se déclenche automatiquement
|
|
Et un message vocal indique: "Déclenchements automatiques suspendus à haute vitesse"
|
|
Quand elle ralentit en dessous de 90 km/h
|
|
Alors les déclenchements automatiques sont réactivés
|
|
Et un événement "AUTO_TRIGGER_SPEED_LIMITED" est enregistré
|
|
Et la métrique "audio_guide.speed.limited" est incrémentée
|
|
|
|
Scénario: Mode nuit avec interface sombre automatique
|
|
Étant donné un utilisateur "luke@roadwave.fr" en mode voiture
|
|
Et il est 22h30 (nuit)
|
|
Quand il utilise l'audio-guide
|
|
Alors l'interface passe automatiquement en mode nuit:
|
|
| Élément | Mode nuit |
|
|
| Fond d'écran | Noir |
|
|
| Texte | Blanc/Gris clair |
|
|
| Carte | Thème sombre |
|
|
| Luminosité | Réduite de 40% |
|
|
Et les notifications visuelles sont encore plus discrètes
|
|
Et un événement "NIGHT_MODE_AUTO_ENABLED" est enregistré
|
|
Et la métrique "audio_guide.night_mode.enabled" est incrémentée
|
|
|
|
Scénario: Connexion automatique via Android Auto
|
|
Étant donné un utilisateur "mary@roadwave.fr" avec téléphone Android
|
|
Et son téléphone est connecté via Android Auto
|
|
Quand elle lance l'audio-guide "Route des Châteaux de la Loire"
|
|
Alors l'interface Android Auto s'affiche sur l'écran du véhicule
|
|
Et les fonctionnalités sont identiques à CarPlay:
|
|
| Fonctionnalité | Disponible |
|
|
| Carte simplifiée | Oui |
|
|
| Contrôles audio | Oui |
|
|
| Commandes vocales | Oui (Google Assistant) |
|
|
| Notifications | Oui |
|
|
Et un événement "ANDROID_AUTO_SESSION_STARTED" est enregistré
|
|
Et la métrique "audio_guide.android_auto.used" est incrémentée
|
|
|
|
Scénario: Gestion de la perte de signal GPS temporaire
|
|
Étant donné un utilisateur "nathan@roadwave.fr" en mode voiture
|
|
Et il écoute l'audio-guide dans un tunnel
|
|
Quand le signal GPS est perdu pendant 2 minutes
|
|
Alors l'audio en cours continue de jouer normalement
|
|
Et la position estimée est calculée selon la vitesse et direction précédentes
|
|
Et un message discret s'affiche: "Signal GPS perdu - Position estimée"
|
|
Quand le signal GPS est retrouvé
|
|
Alors la position est recalculée immédiatement
|
|
Et les déclenchements automatiques sont réactivés
|
|
Et un événement "GPS_SIGNAL_RESTORED" est enregistré
|
|
Et la métrique "audio_guide.gps.signal_lost" est incrémentée
|
|
|
|
Scénario: Statistiques de fin de parcours en mode voiture
|
|
Étant donné un utilisateur "olive@roadwave.fr" en mode voiture
|
|
Et elle vient de terminer l'audio-guide "Route des Châteaux de la Loire"
|
|
Quand elle arrive à destination
|
|
Alors un écran de statistiques s'affiche:
|
|
| Métrique | Valeur |
|
|
| Séquences écoutées | 9/10 |
|
|
| Séquences manquées | 1 (trop rapide) |
|
|
| Distance parcourue | 142 km |
|
|
| Temps total | 2h 15min |
|
|
| Temps d'écoute | 1h 05min |
|
|
| Vitesse moyenne | 63 km/h |
|
|
| Badge débloqué | Voyageur des châteaux |
|
|
Et un bouton "Partager mon voyage" est disponible
|
|
Et un événement "AUDIO_GUIDE_COMPLETED_CAR" est enregistré
|
|
Et la métrique "audio_guide.completed.car_mode" est incrémentée
|
|
|
|
Scénario: Métriques de performance du mode voiture
|
|
Étant donné que 50 000 utilisateurs ont utilisé l'audio-guide en mode voiture
|
|
Quand les métriques d'usage sont collectées
|
|
Alors les indicateurs suivants sont disponibles:
|
|
| Métrique | Valeur cible |
|
|
| Taux de déclenchement automatique | > 90% |
|
|
| Taux de séquences manquées | < 15% |
|
|
| Temps moyen entre déclenchements | 8 minutes |
|
|
| Précision du calcul ETA | ±3 minutes |
|
|
| Utilisation de CarPlay/Android Auto | 65% |
|
|
| Utilisation de commandes vocales | 45% |
|
|
Et les métriques sont exportées vers le système de monitoring
|