Top Qs
Chronologie
Chat
Contexte
Test de mutation
De Wikipédia, l'encyclopédie libre
Remove ads
Les tests de mutation sont des procédures mises au point et utilisées pour concevoir des tests logiciels et évaluer la qualité de ceux qui existent. Ils reposent sur des modifications mineures apportées à un programme afin d'avoir un comportement qui diffère du programme original[1]. Ces versions mutées sont appelées mutant. Le but étant que les tests détectent et "tuent" les mutants. Les suites de tests sont mesurées par le pourcentage de mutants qu'elles tuent. Les mutants sont basés sur des opérateurs de mutation bien définis qui imitent les erreurs de programmation typiques (comme l'utilisation d'un opérateur ou d'un nom de variable incorrect) ou forcent la création de tests précieux (comme la division de chaque expression par zéro). L'objectif est d'aider le testeur à développer des tests efficaces ou à localiser les faiblesses dans les données de test utilisées pour le programme ou dans des sections du code qui sont rarement ou jamais consultées pendant l'exécution. Les tests de mutation sont une forme de test en boîte blanche[2].
Remove ads
Objectifs
Les objectifs des tests de mutation sont :
Présentation des tests de mutation
Par exemple, considérons cet extrait de code Java:
public boolean exemple(Boolean a, Boolean b){
if (a && b) {
return true;
} else {
return false;
}
}
L'opérateur de mutation va remplacer &&
par ||
et produire le mutant suivant :
public boolean exemple(Boolean a, Boolean b){
if (a || b) {
return true;
} else {
return false;
}
}
Pour qu'un test tue un mutant, les trois conditions suivantes doivent être remplies :
- Un test doit atteindre la zone mutée.
- Les données d'entrée de test doivent infecter l'état du programme en provoquant des résultats différents pour le mutant et le programme d'origine. Par exemple, un test avec
a = true
etb = false
respecte cette condition. - L'état incorrect du programme (la valeur retournée) doit se propager à la sortie du programme et être vérifié par le test.
Ces conditions sont collectivement appelées le modèle RIP[4],[5].
Remove ads
Références
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads