Towards Safety-Aware Mutation Testing for Autonomous Driving Systems
Ce document de vision propose le Test de Mutation Sensible à la Sécurité (SAMT), un changement de paradigme pour les systèmes de conduite autonome qui améliore l'adéquation des tests en injectant systématiquement des fautes temporellement bornées dans les messages inter-modules sur la base de cadres d'ingénierie de la sécurité tels que la STPA, plutôt que de s'appuyer sur les mutations traditionnelles au niveau des composants.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous essayiez d'apprendre à une voiture autonome à être sûre. En ce moment, la façon dont nous testons ces voitures ressemble un peu à la vérification du moteur d'une voiture en examinant chaque boulon individuellement. Nous demandons : « La bougie d'allumage fonctionne-t-elle ? Le pneu est-il gonflé ? » Mais un accident de voiture arrive rarement parce qu'un seul boulon a cassé ; cela arrive généralement parce que la bougie d'allumage, le pneu et la réaction du conducteur ont tous échoué à fonctionner ensemble au moment précis.
Ce document, écrit par Donghwan Shin, soutient que nous avons besoin d'une nouvelle façon de tester les voitures autonomes. Il appelle cette nouvelle méthode le Safety-Aware Mutation Testing (SAMT) (Test de mutation axé sur la sécurité).
Voici la décomposition de l'idée en utilisant des analogies simples :
Le Problème : Tester les mauvaises choses
Actuellement, lorsque nous testons les logiciels de conduite autonome, nous traitons souvent la voiture comme une « boîte noire ». Nous soumettons des milliers de scénarios à la voiture (pluie, brouillard, piétons) et regardons si elle s'écrase. Si elle ne s'écrase pas, nous supposons qu'elle est sûre.
Le problème est que nous ne savons pas quand arrêter les tests. Nous pourrions générer des scénarios éternellement, ou nous pourrions nous arrêter trop tôt, manquant ainsi un danger caché.
Les tests traditionnels examinent les pièces individuelles (comme la caméra ou le code de direction) de manière isolée. Mais les voitures autonomes sont des équipes complexes. L'équipe de la « Perception » (les yeux) communique avec l'équipe de la « Planification » (le cerveau). Si les yeux envoient un message flou, le cerveau peut prendre une mauvaise décision. Les tests traditionnels manquent souvent ces mauvaises conversations car ils ne vérifient que si les yeux fonctionnent ou si le cerveau fonctionne, et non si la communication entre eux est correcte.
La Solution : Le jeu du « Mauvais Messager »
L'auteur propose un nouveau jeu appelé Safety-Aware Mutation Testing.
Au lieu de casser le code à l'intérieur de l'ordinateur, imaginez que nous avons une équipe de « oiseaux messagers » transportant des notes entre les différentes parties de la voiture.
- Tests Traditionnels : Nous vérifions si l'oiseau est en bonne santé et si la note est écrite avec la bonne police de caractères.
- SAMT (La Nouvelle Méthode) : Nous perturbons intentionnellement les messages que les oiseaux transportent. Nous pourrions :
- Faire en sorte que l'oiseau lâche la note (données manquantes).
- Faire en sorte que l'oiseau livre la note avec 2 secondes de retard (délai).
- Faire en sorte que l'oiseau écrive « Stop » alors qu'il devrait dire « Go » (données corrompues).
Nous appelons ces versions déformées des « Mutants ».
Comment cela fonctionne : La liste de contrôle de sécurité
Le document suggère un processus en 5 étapes pour utiliser ces « mauvais messagers » afin de trouver de réelles failles de sécurité :
- Créer les mauvais messagers : Au lieu de deviner ce qu'il faut casser, nous utilisons un manuel de sécurité (appelé STPA) pour déterminer exactement quel type de mauvais messages provoquerait un accident. Nous injectons ensuite ces messages spécifiques défectueux dans le système.
- Exécuter le test : Nous laissons la voiture autonome fonctionner dans une simulation de jeu vidéo hyper réaliste (comme un simulateur de conduite) pendant que ces mauvais messages volent autour.
- Vérifier le résultat :
- La voiture s'est-elle écrasée ? Super ! La suite de tests a trouvé le danger. Nous avons « tué » le mutant.
- La voiture a-t-elle ignoré le mauvais message ? Si la voiture a continué à conduire en toute sécurité malgré le mauvais message, c'est une bonne nouvelle pour la conception de la voiture, mais cela signifie que notre test n'était pas encore assez difficile.
- La voiture a-t-elle agi bizarrement sans s'écraser ? C'est un « kill faible » (weak kill). Cela signifie que la voiture a remarqué le problème mais ne l'a pas géré parfaitement. Nous devons trouver un scénario qui transforme ce problème « faible » en un « accident » pour prouver que nos tests sont robustes.
- Améliorer le test : Si un mauvais message survit sans provoquer d'accident, nous savons que notre suite de tests possède un angle mort. Nous utilisons des ordinateurs pour générer automatiquement de nouveaux scénarios de conduite complexes, spécifiquement conçus pour attraper ce message défectueux particulier.
- Réparer la voiture : Une fois que nous avons une suite de tests capable de capturer tous les messages défectueux réalistes, nous savons que la voiture est prête. Si elle échoue, nous savons exactement quelle conversation entre les parties de la voiture est brisée, afin de pouvoir la réparer.
Pourquoi est-ce différent ?
Pensez à un exercice d'incendie.
- Ancienne méthode : Nous vérifions si l'extincteur fonctionne et si l'alarme sonne.
- Méthode SAMT : Nous prétendons que l'alarme incendie est cassée, ou que l'extincteur est vide, ou que le panneau de sortie est recouvert de brouillard. Nous voyons si les personnes dans le bâtiment peuvent toujours sortir en toute sécurité. Si elles ne le peuvent pas, nous savons que le plan de sécurité du bâtiment est défaillant, et pas seulement l'équipement.
Les Défis
L'auteur admet qu'il s'agit d'une idée nouvelle et qu'il y a des obstacles à franchir :
- L'effet de couplage : Nous devons prouver que le fait de détecter des messages simples défectueux aide réellement à détecter des accidents complexes du monde réel.
- Trop de messagers : Il existe tellement de façons de corrompre un message que nous avons besoin d'une liste standard de « mauvais messages » sur laquelle tout le monde s'accorde.
- Puissance de calcul : Faire tourner ces simulations demande beaucoup de puissance de calcul. Nous avons besoin de moyens plus rapides pour déterminer si un mauvais message est important sans avoir à relancer toute la simulation à chaque fois.
- Glitchs de simulateur : Les simulations de jeux vidéo ne sont pas parfaites ; parfois, elles buggent d'elles-mêmes. Nous devons nous assurer que nous ne blâmons pas la voiture pour les erreurs du simulateur.
L'essentiel
Ce document soutient que pour rendre les voitures autonomes véritablement sûres, nous devons arrêter de simplement vérifier si les pièces fonctionnent et commencer à tester comment les pièces communiquent entre elles lorsque les choses tournent mal. En brisant intentionnellement les conversations entre le cerveau et les yeux de la voiture, nous pouvons trouver les dangers cachés avant même qu'ils ne surviennent sur la route réelle.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.