Des exercices
Ce quiz explore le test par mutation, une méthode permettant d’évaluer l’efficacité d’une suite de tests en introduisant volontairement de petites modifications dans le code. Les questions portent sur la création et l’élimination des mutants, le calcul du score de mutation, les opérateurs, les mutants équivalents, les mutations faibles et fortes, la subsomption ainsi que les techniques de réduction des coûts.
Répondez aux questions ci-dessous et consultez l'explication de chaque réponse.
0/16 répondues
Audio automatique activé : les prochaines questions seront lues quand vous cliquerez sur Continuer.
Le test par mutation introduit des modifications contrôlées dans le programme. Une suite de tests efficace doit détecter ces fautes artificielles en faisant échouer au moins un test.
Un mutant est tué lorsqu’un test distingue son comportement de celui du programme original et échoue sur la version mutée.
Le dénominateur est 80 − 10 − 5 = 65 mutants pertinents. Le score vaut donc 52 ÷ 65 × 100 = 80 %.
Malgré une différence syntaxique, un mutant équivalent conserve le même comportement observable que le programme original. Aucun test ne peut donc le tuer.
Le symbole de comparaison > est remplacé par >=. Il s’agit d’un remplacement d’opérateur relationnel, souvent utile pour vérifier les cas limites.
À 18, la condition originale est vraie tandis que la condition mutée est fausse. Cette valeur révèle directement la différence à la frontière.
En mutation forte, la modification doit influencer un résultat observable et provoquer l’échec d’un test. Une simple différence interne temporaire ne suffit pas.
La mutation faible recherche l’infection de l’état immédiatement après le point muté. Elle n’exige pas que cette différence se propage jusqu’à la sortie finale.
La survie ne prouve pas l’équivalence. Elle peut révéler une entrée manquante, une assertion trop faible, une propagation insuffisante ou un mutant réellement équivalent.
L’effet de couplage suppose que des fautes complexes sont souvent liées à des fautes simples. Des tests tuant des mutants simples peuvent donc détecter de nombreux défauts plus élaborés.
La mutation sélective limite la génération à certains opérateurs jugés représentatifs. Elle réduit le nombre de mutants tout en cherchant à préserver la pertinence de l’analyse.
Un mutant d’ordre supérieur combine plusieurs modifications. Un mutant de premier ordre ne contient qu’une seule mutation syntaxique.
L’ensemble des tests tuant A, {T2}, est strictement inclus dans celui de B, {T1, T2, T3}. A subsume donc B et constitue le mutant le plus difficile à tuer.
La sélection des tests fondée sur la couverture évite d’exécuter des tests incapables d’atteindre le code muté. Elle réduit ainsi le coût tout en conservant les tests pertinents.
Un mutant non compilable, parfois appelé mutant invalide ou mort-né, ne peut pas être testé normalement. Il doit être distingué des mutants tués et survivants.
Le code est exécuté, mais l’assertion ne vérifie pas le montant calculé. Le mutant peut donc modifier cette valeur sans provoquer d’échec : l’oracle est insuffisant.
Des milliers de cours en ligne en vidéo, livres électroniques et livres audio.
Pour tester vos connaissances lors de cours en ligne
Généré directement à partir de la galerie de photos de votre téléphone portable et envoyé à votre adresse e-mail
Téléchargez notre application via QR Code ou les liens ci-dessous :.
+ 10 millions
d'étudiants
Certificat gratuit et
valide avec QR Code
60 mille exercices
gratuits
Note de 4,8/5 dans les
magasins d'applications
Cours vidéo et livres
audio gratuits