SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Une approche incrémentale combinant les techniques
BMC et un problème CSP pour l’aide à la localisation
d’erreurs
JFPC 2015
Bordeaux, 22-24 Juin
Mohammed Bekkouche, Hélène Collavizza, Michel Rueher
{bekkouch,helen,rueher}@unice.fr
I3S Laboratory, UNS-CNRS
University of Nice-Sophia Antipolis
France
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Plan
Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et perspectives
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
2Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Introduction
La localisation d’erreurs : une tâche importante et complexe
Un programme peut contenir des erreurs
Ces erreurs peuvent nuire au bon fonctionnement du
programme
Le processus de débogage logiciel est inévitable
→ La détection, la localisation, la correction des erreurs
La localisation d’erreurs est l’étape la plus coûteuse
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
3Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Introduction
La localisation d’erreurs : une tâche importante et complexe
→ Lorsqu’un programme est non-conforme vis-à-vis de sa
spécification, à savoir, le programme est erroné :
Les outils de BMC(Bounded Model Checking) et de test
peuvent générer un ou plusieurs contre-exemples
La trace du contre-exemple: souvent longue et
compliquée à comprendre
Difficile pour localiser les parties erronées du code
Débogage ⇒ difficile et prend du temps
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
4Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Introduction
Le problème: entrées et sortie
Entrées
Un programme impératif erroné
La postcondition violée POST
Un contre-exemple CE fourni par un outil BMC
Sortie
Un ensemble réduit d’instructions potentiellement erronées
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
5Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Introduction
Les questions clés
Quels sont les chemins à analyser ?
Chemin du contre-exemple
Déviations à partir du chemin du contre-exemple
Comment identifier les instructions suspectes du
programme ?
Calcul des sous-ensembles minimales d’instructions à
retirer pour satisfaire la postcondition → Minimal Correction
Subsets (MCSs)
Calcul des sous-ensembles minimales d’instructions en
contradiction avec la postcondition → Minimal Unsatisfiable
Subsets (MUSs)
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
6Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Calcul de la valeur absolue de i-j
1 class AbsMinus {
2 /∗ returns | i−j | , the absolute value of
i minus j ∗/
3 /∗@ ensures
4 @ ( r e s u l t ==| i−j | ) ;
5 @∗/
6 void AbsMinus ( i n t i , i n t j ) {
7 i n t r e s u l t ;
8 i n t k = 0;
9 i f ( i <= j ) {
10 k = k+2; / / error : k = k+2
instead of k=k+1
11 }
12 i f ( k == 1 && i != j ) {
13 r e s u l t = j−i ;
14 }
15 else {
16 r e s u l t = i−j ;
17 }
18 }
19 }
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
6Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Calcul de la valeur absolue de i-j
1 class AbsMinus {
2 /∗ returns | i−j | , the absolute value of
i minus j ∗/
3 /∗@ ensures
4 @ ( r e s u l t ==| i−j | ) ;
5 @∗/
6 void AbsMinus ( i n t i , i n t j ) {
7 i n t r e s u l t ;
8 i n t k = 0;
9 i f ( i <= j ) {
10 k = k+2; / / error : k = k+2
instead of k=k+1
11 }
12 i f ( k == 1 && i != j ) {
13 r e s u l t = j−i ;
14 }
15 else {
16 r e s u l t = i−j ;
17 }
18 }
19 }
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
7Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin du contre-exemple
POST:{r1 == |i − j|}
{i0 = 0, j0 = 1, k0 = 0, k1 =
k0 + 2, r1 = i0 − j0, r1 = |i − j|} est
inconsistant
Seulement un seul MCS sur le
chemin : {r1 = i0 − j0}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
8Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin obtenu en déviant la condition i0 ≤ j0
La condition déviée : {i0 ≤ j0}
P = {i0 = 0, j0 = 1, k0 = 0, k1 =
0, r1 = −1}
P ∪ {r1 = |i − j|} est inconsistant
La déviation {i0 ≤ j0} ne corrige
pas le programme
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
9Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin obtenu en déviant la condition k1 = 1 ∧ i0! = j0
The deviated condition :
{(k1 = 1 ∧ i0! = j0)} P = {i0 =
0, j0 = 1, k0 = 0, k1 = 2, r1 = 1}
La déviation {(k1 = 1 ∧ i0! = j0)}
corrige le programme
C = {i0 = 0, j0 = 1, k0 = 0, k1 =
k0 + 2, ¬(k1 = 1 ∧ i0! = j0)}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
9Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin obtenu en déviant la condition k1 = 1 ∧ i0! = j0
The deviated condition :
{(k1 = 1 ∧ i0! = j0)} P = {i0 =
0, j0 = 1, k0 = 0, k1 = 2, r1 = 1}
P ∪ {r1 = |i − j|} est inconsistant
La déviation {(k1 = 1 ∧ i0! = j0)}
corrige le programme
C = {i0 = 0, j0 = 1, k0 = 0, k1 =
k0 + 2, ¬(k1 = 1 ∧ i0! = j0)}
C est inconsistant
MCS sur le chemin : {k0 = 0},
{k1 = k0 + 2}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
10Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin d’une déviation non-minimale : {i0 ≤ j0, k1 = 1 ∧ i0! = j0}
Les conditions déviées :
{i0 ≤ j0, (k1 = 1 ∧ i0! = j0)}
P = {i0 = 0, j0 = 1, k0 = 0, k1 =
0, r1 = 1}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
10Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Exemple
Le chemin d’une déviation non-minimale : {i0 ≤ j0, k1 = 1 ∧ i0! = j0}
Les conditions déviées :
{i0 ≤ j0, (k1 = 1 ∧ i0! = j0)}
P = {i0 = 0, j0 = 1, k0 = 0, k1 =
0, r1 = 1}
P ∪ {r1 = |i − j|} est consistant
La déviation est non-minimale
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
11Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
MCS: Minimal Correction Subset
MCS: Définition
Soit C un ensemble de contraintes infaisable
M ⊆ C est un MCS ⇔



M ⊆ C
Sol(< X, CM, D >) = ∅
C ⊂ M : Sol(< X, CC , D >) = ∅
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
11Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
MCS: Minimal Correction Subset
MCS: Définition
Soit C un ensemble de contraintes infaisable
M ⊆ C est un MCS ⇔



M ⊆ C
Sol(< X, CM, D >) = ∅
C ⊂ M : Sol(< X, CC , D >) = ∅
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
11Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
MCS: Minimal Correction Subset
MCS: Définition
Soit C un ensemble de contraintes infaisable
M ⊆ C est un MCS ⇔



M ⊆ C
Sol(< X, CM, D >) = ∅
C ⊂ M : Sol(< X, CC , D >) = ∅
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
11Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
MCS: Minimal Correction Subset
MCS: Définition
Soit C un ensemble de contraintes infaisable
M ⊆ C est un MCS ⇔



M ⊆ C
Sol(< X, CM, D >) = ∅
C ⊂ M : Sol(< X, CC , D >) = ∅
MCS: Exemple
C = {c1 : i = 0, c2 : v = 5, c3 : w = 6, c4 : z = i + v + w, c5 : ((z =
0 ∨ i = 0) ∧ (v ≥ 0) ∧ (w ≥ 0))} est inconsistant
C a 4 MCS: {c1}, {c4}, {c5},{c2, c3}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
12Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
Algorithme (LocFaults)
Calcul des MCS sur le chemin du CE
Exploration DFS du CFG en propageant le CE et en
déviant au moins k instructions conditionnelles c1, .., ck
P: contraintes de propagation issues du CE (de la forme
variable = constante)
C: contraintes du chemin jusqu’à ck
Si P |= POST:
* {¬c1, .., ¬ck } est une correction,
* MCS de C ∪ {¬c1, .., ¬ck } sont des corrections
Une borne pour les MCS calculés et les conditions
déviées
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
13Approche LocFaults
Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Approche LocFaults
Algorithme (LocFaults)
Processus pour k = 1
Décision pour la première instruction conditionnelle est déviée et les
données d’entrée du CE sont propagées → nouveau chemin P’
ssi le CSP de P’ est satisfiable, MCS sont calculés pour P’
Le processus est redémarré et la décision de la prochaine instruction
conditionnelle de P est déviée (une seule décision est modifiée sur
l’ensemble du chemin)
Processus pour k > 1
Un nœud conditionnel n est marqué avec le nombre de déviations
réussies effectuées sur le chemin courant avant d’atteindre n
À l’étape k, la décision pour un nœud marqué k’ est seulement déviée
ssi k < k
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
14Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Benchmarks
Le programme Tritype :
Entrée: trois entiers positifs, les côtés du triangle
Sortie:
la valeur 2 si les entrées correspondent à un triangle isocèle
la valeur 3 si les entrées correspondent à un triangle
équilatéral
la valeur 1 si les entrées correspondent à un triangle
scalène
la valeur 4 sinon
TCAS(Traffic Collision Avoidance System), une benchmark
réaliste :
→ 1608 cas de test
→ 173 de lignes de code C avec presque aucune opération
arithmétique
→ La suite contient 41 versions erronées
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
15Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Outils utilisés
LocFaults: notre implémentation
→ Les solveurs CP OPTIMIZER et CPLEX d’IBM
→ L’outil CPBPV pour générer le CFG et CE
→ Benchmarks: les programmes Java
BugAssist: l’outil de localisation d’erreurs implémentant
l’approche BugAssist
→ Le solveur MaxSAT MSUnCore2
→ Benchmarks: les programmes ANSI-C
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
16Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats (MCS identifiés)
Programme Contre-exemple Erreurs LocFaults BugAssist= 0 = 1 = 2 = 3
TritypeV1 {i = 2, j = 3, k = 2} 54 {54} {26} {29, 32} /
{26, 27, 32,
{48},{30},{25}{53, 57},{30},{25} 33, 36, 48,
57, 68}
TritypeV2 {i = 2, j = 2, k = 4} 53 {54}
{21} {29, 57} /
{21, 26, 27,
{26} {32, 44}
29, 30, 32,
{35},{27},{25} 33, 35, 36,
{53},{27},{25} 33, 35, 36,
53, 68}
TritypeV3 {i = 1, j = 2, k = 1} 31 {50}
{21}
{33, 45} /
{21, 26, 27,
{26} 29, 31, 33,
{29} 34, 36, 37,
{36},{31},{25} 49, 68}
{49},{31},{25}
TritypeV4 {i = 2, j = 3, k = 3} 45 {46}{45},{33},{25} {26, 32} {32, 35, 49}{26, 27, 29,
{32, 35, 53} 30, 32, 33,
{32, 35, 57} 35, 45, 49,
68}
TritypeV5 {i = 2, j = 3, k = 3} 32,45 {40} {26}
{32, 45}
/ {26, 27, 29,
{29}
{35, 49},{25} 30, 32, 33,
{35, 53},{25} 35, 49, 68}
{35, 57},{25}
TritypeV6 {i = 2, j = 1, k = 2} 58 {58} {31} / /
{28, 29, 31,
{37},{32},{27} 32, 35, 37,
65, 72}
TritypeV7 {i = 2, j = 1, k = 2} 58 {58} {31} / /
{72, 37, 53,
{37},{27},{32}
49, 29, 35,
32, 31, 28,
65, 34, 62}
TritypeV8 {i = 3, j = 4, k = 3} 61 {61} {29} / /
{19, 61, 79,
{35},{30},{25}
35, 27, 33,
30, 42, 29,
26, 71, 32,
48, 51, 54}
LocFaults fournit une localisation plus explicative et informative
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
17Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats sur TritypeV1 (MCS identifiés)
Programme Contre-exemple Erreurs LocFaults BugAssist= 0 = 1 = 2 = 3
TritypeV1 {i = 2, j = 3, k = 2} 54 {54} {26} {29, 32} /
{26, 27, 32,
{48},{30},{25}{53, 57},{30},{25}
33, 36, 48,
57, 68}
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
18Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Tritype V7 et V8
TritypeV7 : une variation qui retourne le produit des trois
côtés
TritypeV8 : une variation qui retourne le carré de la
surface du triangle en utilisant la formule de Héron
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
19Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats (temps de calcul pour les programmes non linéaires)
Programme
LocFaults BugAssist
P L P L= 0 ≤ 1 ≤ 2 ≤ 3
TritypeV7 0, 722s 0, 051s 0, 112s 0, 119s 1, 144s 0, 140s 20, 373s
TritypeV8 0, 731s 0, 08s 0, 143s 0, 156s 0, 162s 0, 216s 25, 562s
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
19Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats (temps de calcul pour les programmes non linéaires)
Programme
LocFaults BugAssist
P L P L= 0 ≤ 1 ≤ 2 ≤ 3
TritypeV7 0, 722s 0, 051s 0, 112s 0, 119s 1, 144s 0, 140s 20, 373s
TritypeV8 0, 731s 0, 08s 0, 143s 0, 156s 0, 162s 0, 216s 25, 562s
LocFaults est plus rapide que BugAssist pour ces benchmarks
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
20Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats (nombre d’erreurs localisées pour TCAS)
Programme Nb_E Nb_CE LF BA
V1 1 131 131 131
V2 2 67 67 67
V3 1 23 23 13
V4 1 20 4 20
V5 1 10 9 10
V6 1 12 11 12
V7 1 36 36 36
V8 1 1 1 1
V9 1 7 7 7
V10 2 14 12 14
V11 2 14 12 14
V12 1 70 45 48
V13 1 4 4 4
V14 1 50 50 50
V16 1 70 70 70
V17 1 35 35 35
V18 1 29 28 29
V19 1 19 18 19
V20 1 18 18 18
V21 1 16 16 16
V22 1 11 11 11
V23 1 41 41 41
V24 1 7 7 7
V25 1 3 2 3
V26 1 11 7 11
V27 1 10 9 10
V28 1 75 74 58
V29 1 18 17 14
V30 1 57 57 57
V34 1 77 77 77
V35 1 75 74 58
V36 1 122 120 126
V37 1 94 21 94
V39 1 3 2 3
V40 2 122 72 122
V41 1 20 16 20
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
20Expérience pratique
Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Expérience pratique
Résultats (nombre d’erreurs localisées pour TCAS)
Programme Nb_E Nb_CE LF BA
V1 1 131 131 131
V2 2 67 67 67
V3 1 23 23 13
V4 1 20 4 20
V5 1 10 9 10
V6 1 12 11 12
V7 1 36 36 36
V8 1 1 1 1
V9 1 7 7 7
V10 2 14 12 14
V11 2 14 12 14
V12 1 70 45 48
V13 1 4 4 4
V14 1 50 50 50
V16 1 70 70 70
V17 1 35 35 35
V18 1 29 28 29
V19 1 19 18 19
V20 1 18 18 18
V21 1 16 16 16
V22 1 11 11 11
V23 1 41 41 41
V24 1 7 7 7
V25 1 3 2 3
V26 1 11 7 11
V27 1 10 9 10
V28 1 75 74 58
V29 1 18 17 14
V30 1 57 57 57
V34 1 77 77 77
V35 1 75 74 58
V36 1 122 120 126
V37 1 94 21 94
V39 1 3 2 3
V40 2 122 72 122
V41 1 20 16 20
Les performances de LocFaults et
BugAssist sont très similaires sur ces
programmes bien adaptés pour un
solveur booléen
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
21Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Travaux connexes
Approche basées sur SAT
BugAssist
Une méthode BMC, comme la notre
Les principales différences :
→ Elle transforme le programme en entier en une formule
SAT
→ Elle se base sur l’utilisation des solveurs MaxSAT
+ Une approche globale
– Elle n’est pas efficace pour les programmes avec calcul
numérique
– Elle fusionne les MCSs du programme dans un seul
ensemble d’instructions suspectes
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
22Travaux connexes
Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Travaux connexes
Approches basées sur le test systématique
Tarantula, Ochiai, AMPLE, Jaccard, Heuristics III
Classement des instructions suspectes détectées durant
l’exécution d’une batterie de tests
+ Des approches simples
– Besoins de beaucoup de cas de tests
– Les approches qui nécessitent l’existence d’un oracle
→ Décidez si le résultat de dizaines de milliers de tests
est correct
Notre cadre moins exigeant
→ Bounded Model Checking
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
23Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Conclusion and perspectives
Conclusion
Une approche incrémentale et dirigée par les flots
→ localise les erreurs autour du chemin du
contre-exemple
Cadre fondé sur les contraintes
→ bien adapté pour le traitement des opérations
arithmétiques
→ peut être étendue pour traiter les programmes avec calculs
sur les nombres à virgule flottante
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
24Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Conclusion and perspectives
Perspectives
Développement d’une version interactive de notre outil :
→ Fournir les localisations l’une après les autres
→ Tirant profit de la connaissance de l’utilisateur pour
sélectionner la condition qui doit être déviée
Étendre notre approche pour la localisation des erreurs
dans les programmes avec calculs sur les nombres à
virgule flottante
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Mohammed
Bekkouche
Introduction
Exemple
Approche LocFaults
Expérience pratique
Travaux connexes
25Conclusion et
perspectives
I3S Laboratory, UNS-CNRS
University of Nice-Sophia
Antipolis
France
Merci pour votre attention.
Questions ?

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Une approche incrémentale combinant les techniques BMC et un problème CSP pour l'aide à la localisation d'erreurs

  • 1. Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs JFPC 2015 Bordeaux, 22-24 Juin Mohammed Bekkouche, Hélène Collavizza, Michel Rueher {bekkouch,helen,rueher}@unice.fr I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France
  • 2. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Plan Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives
  • 3. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche 2Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Introduction La localisation d’erreurs : une tâche importante et complexe Un programme peut contenir des erreurs Ces erreurs peuvent nuire au bon fonctionnement du programme Le processus de débogage logiciel est inévitable → La détection, la localisation, la correction des erreurs La localisation d’erreurs est l’étape la plus coûteuse
  • 4. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche 3Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Introduction La localisation d’erreurs : une tâche importante et complexe → Lorsqu’un programme est non-conforme vis-à-vis de sa spécification, à savoir, le programme est erroné : Les outils de BMC(Bounded Model Checking) et de test peuvent générer un ou plusieurs contre-exemples La trace du contre-exemple: souvent longue et compliquée à comprendre Difficile pour localiser les parties erronées du code Débogage ⇒ difficile et prend du temps
  • 5. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche 4Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Introduction Le problème: entrées et sortie Entrées Un programme impératif erroné La postcondition violée POST Un contre-exemple CE fourni par un outil BMC Sortie Un ensemble réduit d’instructions potentiellement erronées
  • 6. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche 5Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Introduction Les questions clés Quels sont les chemins à analyser ? Chemin du contre-exemple Déviations à partir du chemin du contre-exemple Comment identifier les instructions suspectes du programme ? Calcul des sous-ensembles minimales d’instructions à retirer pour satisfaire la postcondition → Minimal Correction Subsets (MCSs) Calcul des sous-ensembles minimales d’instructions en contradiction avec la postcondition → Minimal Unsatisfiable Subsets (MUSs)
  • 7. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 6Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Calcul de la valeur absolue de i-j 1 class AbsMinus { 2 /∗ returns | i−j | , the absolute value of i minus j ∗/ 3 /∗@ ensures 4 @ ( r e s u l t ==| i−j | ) ; 5 @∗/ 6 void AbsMinus ( i n t i , i n t j ) { 7 i n t r e s u l t ; 8 i n t k = 0; 9 i f ( i <= j ) { 10 k = k+2; / / error : k = k+2 instead of k=k+1 11 } 12 i f ( k == 1 && i != j ) { 13 r e s u l t = j−i ; 14 } 15 else { 16 r e s u l t = i−j ; 17 } 18 } 19 }
  • 8. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 6Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Calcul de la valeur absolue de i-j 1 class AbsMinus { 2 /∗ returns | i−j | , the absolute value of i minus j ∗/ 3 /∗@ ensures 4 @ ( r e s u l t ==| i−j | ) ; 5 @∗/ 6 void AbsMinus ( i n t i , i n t j ) { 7 i n t r e s u l t ; 8 i n t k = 0; 9 i f ( i <= j ) { 10 k = k+2; / / error : k = k+2 instead of k=k+1 11 } 12 i f ( k == 1 && i != j ) { 13 r e s u l t = j−i ; 14 } 15 else { 16 r e s u l t = i−j ; 17 } 18 } 19 }
  • 9. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 7Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin du contre-exemple POST:{r1 == |i − j|} {i0 = 0, j0 = 1, k0 = 0, k1 = k0 + 2, r1 = i0 − j0, r1 = |i − j|} est inconsistant Seulement un seul MCS sur le chemin : {r1 = i0 − j0}
  • 10. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 8Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin obtenu en déviant la condition i0 ≤ j0 La condition déviée : {i0 ≤ j0} P = {i0 = 0, j0 = 1, k0 = 0, k1 = 0, r1 = −1} P ∪ {r1 = |i − j|} est inconsistant La déviation {i0 ≤ j0} ne corrige pas le programme
  • 11. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 9Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin obtenu en déviant la condition k1 = 1 ∧ i0! = j0 The deviated condition : {(k1 = 1 ∧ i0! = j0)} P = {i0 = 0, j0 = 1, k0 = 0, k1 = 2, r1 = 1} La déviation {(k1 = 1 ∧ i0! = j0)} corrige le programme C = {i0 = 0, j0 = 1, k0 = 0, k1 = k0 + 2, ¬(k1 = 1 ∧ i0! = j0)}
  • 12. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 9Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin obtenu en déviant la condition k1 = 1 ∧ i0! = j0 The deviated condition : {(k1 = 1 ∧ i0! = j0)} P = {i0 = 0, j0 = 1, k0 = 0, k1 = 2, r1 = 1} P ∪ {r1 = |i − j|} est inconsistant La déviation {(k1 = 1 ∧ i0! = j0)} corrige le programme C = {i0 = 0, j0 = 1, k0 = 0, k1 = k0 + 2, ¬(k1 = 1 ∧ i0! = j0)} C est inconsistant MCS sur le chemin : {k0 = 0}, {k1 = k0 + 2}
  • 13. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 10Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin d’une déviation non-minimale : {i0 ≤ j0, k1 = 1 ∧ i0! = j0} Les conditions déviées : {i0 ≤ j0, (k1 = 1 ∧ i0! = j0)} P = {i0 = 0, j0 = 1, k0 = 0, k1 = 0, r1 = 1}
  • 14. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction 10Exemple Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Exemple Le chemin d’une déviation non-minimale : {i0 ≤ j0, k1 = 1 ∧ i0! = j0} Les conditions déviées : {i0 ≤ j0, (k1 = 1 ∧ i0! = j0)} P = {i0 = 0, j0 = 1, k0 = 0, k1 = 0, r1 = 1} P ∪ {r1 = |i − j|} est consistant La déviation est non-minimale
  • 15. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 11Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults MCS: Minimal Correction Subset MCS: Définition Soit C un ensemble de contraintes infaisable M ⊆ C est un MCS ⇔    M ⊆ C Sol(< X, CM, D >) = ∅ C ⊂ M : Sol(< X, CC , D >) = ∅
  • 16. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 11Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults MCS: Minimal Correction Subset MCS: Définition Soit C un ensemble de contraintes infaisable M ⊆ C est un MCS ⇔    M ⊆ C Sol(< X, CM, D >) = ∅ C ⊂ M : Sol(< X, CC , D >) = ∅
  • 17. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 11Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults MCS: Minimal Correction Subset MCS: Définition Soit C un ensemble de contraintes infaisable M ⊆ C est un MCS ⇔    M ⊆ C Sol(< X, CM, D >) = ∅ C ⊂ M : Sol(< X, CC , D >) = ∅
  • 18. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 11Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults MCS: Minimal Correction Subset MCS: Définition Soit C un ensemble de contraintes infaisable M ⊆ C est un MCS ⇔    M ⊆ C Sol(< X, CM, D >) = ∅ C ⊂ M : Sol(< X, CC , D >) = ∅ MCS: Exemple C = {c1 : i = 0, c2 : v = 5, c3 : w = 6, c4 : z = i + v + w, c5 : ((z = 0 ∨ i = 0) ∧ (v ≥ 0) ∧ (w ≥ 0))} est inconsistant C a 4 MCS: {c1}, {c4}, {c5},{c2, c3}
  • 19. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 12Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults Algorithme (LocFaults) Calcul des MCS sur le chemin du CE Exploration DFS du CFG en propageant le CE et en déviant au moins k instructions conditionnelles c1, .., ck P: contraintes de propagation issues du CE (de la forme variable = constante) C: contraintes du chemin jusqu’à ck Si P |= POST: * {¬c1, .., ¬ck } est une correction, * MCS de C ∪ {¬c1, .., ¬ck } sont des corrections Une borne pour les MCS calculés et les conditions déviées
  • 20. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple 13Approche LocFaults Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Approche LocFaults Algorithme (LocFaults) Processus pour k = 1 Décision pour la première instruction conditionnelle est déviée et les données d’entrée du CE sont propagées → nouveau chemin P’ ssi le CSP de P’ est satisfiable, MCS sont calculés pour P’ Le processus est redémarré et la décision de la prochaine instruction conditionnelle de P est déviée (une seule décision est modifiée sur l’ensemble du chemin) Processus pour k > 1 Un nœud conditionnel n est marqué avec le nombre de déviations réussies effectuées sur le chemin courant avant d’atteindre n À l’étape k, la décision pour un nœud marqué k’ est seulement déviée ssi k < k
  • 21. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 14Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Benchmarks Le programme Tritype : Entrée: trois entiers positifs, les côtés du triangle Sortie: la valeur 2 si les entrées correspondent à un triangle isocèle la valeur 3 si les entrées correspondent à un triangle équilatéral la valeur 1 si les entrées correspondent à un triangle scalène la valeur 4 sinon TCAS(Traffic Collision Avoidance System), une benchmark réaliste : → 1608 cas de test → 173 de lignes de code C avec presque aucune opération arithmétique → La suite contient 41 versions erronées
  • 22. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 15Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Outils utilisés LocFaults: notre implémentation → Les solveurs CP OPTIMIZER et CPLEX d’IBM → L’outil CPBPV pour générer le CFG et CE → Benchmarks: les programmes Java BugAssist: l’outil de localisation d’erreurs implémentant l’approche BugAssist → Le solveur MaxSAT MSUnCore2 → Benchmarks: les programmes ANSI-C
  • 23. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 16Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats (MCS identifiés) Programme Contre-exemple Erreurs LocFaults BugAssist= 0 = 1 = 2 = 3 TritypeV1 {i = 2, j = 3, k = 2} 54 {54} {26} {29, 32} / {26, 27, 32, {48},{30},{25}{53, 57},{30},{25} 33, 36, 48, 57, 68} TritypeV2 {i = 2, j = 2, k = 4} 53 {54} {21} {29, 57} / {21, 26, 27, {26} {32, 44} 29, 30, 32, {35},{27},{25} 33, 35, 36, {53},{27},{25} 33, 35, 36, 53, 68} TritypeV3 {i = 1, j = 2, k = 1} 31 {50} {21} {33, 45} / {21, 26, 27, {26} 29, 31, 33, {29} 34, 36, 37, {36},{31},{25} 49, 68} {49},{31},{25} TritypeV4 {i = 2, j = 3, k = 3} 45 {46}{45},{33},{25} {26, 32} {32, 35, 49}{26, 27, 29, {32, 35, 53} 30, 32, 33, {32, 35, 57} 35, 45, 49, 68} TritypeV5 {i = 2, j = 3, k = 3} 32,45 {40} {26} {32, 45} / {26, 27, 29, {29} {35, 49},{25} 30, 32, 33, {35, 53},{25} 35, 49, 68} {35, 57},{25} TritypeV6 {i = 2, j = 1, k = 2} 58 {58} {31} / / {28, 29, 31, {37},{32},{27} 32, 35, 37, 65, 72} TritypeV7 {i = 2, j = 1, k = 2} 58 {58} {31} / / {72, 37, 53, {37},{27},{32} 49, 29, 35, 32, 31, 28, 65, 34, 62} TritypeV8 {i = 3, j = 4, k = 3} 61 {61} {29} / / {19, 61, 79, {35},{30},{25} 35, 27, 33, 30, 42, 29, 26, 71, 32, 48, 51, 54} LocFaults fournit une localisation plus explicative et informative
  • 24. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 17Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats sur TritypeV1 (MCS identifiés) Programme Contre-exemple Erreurs LocFaults BugAssist= 0 = 1 = 2 = 3 TritypeV1 {i = 2, j = 3, k = 2} 54 {54} {26} {29, 32} / {26, 27, 32, {48},{30},{25}{53, 57},{30},{25} 33, 36, 48, 57, 68}
  • 25. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 18Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Tritype V7 et V8 TritypeV7 : une variation qui retourne le produit des trois côtés TritypeV8 : une variation qui retourne le carré de la surface du triangle en utilisant la formule de Héron
  • 26. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 19Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats (temps de calcul pour les programmes non linéaires) Programme LocFaults BugAssist P L P L= 0 ≤ 1 ≤ 2 ≤ 3 TritypeV7 0, 722s 0, 051s 0, 112s 0, 119s 1, 144s 0, 140s 20, 373s TritypeV8 0, 731s 0, 08s 0, 143s 0, 156s 0, 162s 0, 216s 25, 562s
  • 27. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 19Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats (temps de calcul pour les programmes non linéaires) Programme LocFaults BugAssist P L P L= 0 ≤ 1 ≤ 2 ≤ 3 TritypeV7 0, 722s 0, 051s 0, 112s 0, 119s 1, 144s 0, 140s 20, 373s TritypeV8 0, 731s 0, 08s 0, 143s 0, 156s 0, 162s 0, 216s 25, 562s LocFaults est plus rapide que BugAssist pour ces benchmarks
  • 28. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 20Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats (nombre d’erreurs localisées pour TCAS) Programme Nb_E Nb_CE LF BA V1 1 131 131 131 V2 2 67 67 67 V3 1 23 23 13 V4 1 20 4 20 V5 1 10 9 10 V6 1 12 11 12 V7 1 36 36 36 V8 1 1 1 1 V9 1 7 7 7 V10 2 14 12 14 V11 2 14 12 14 V12 1 70 45 48 V13 1 4 4 4 V14 1 50 50 50 V16 1 70 70 70 V17 1 35 35 35 V18 1 29 28 29 V19 1 19 18 19 V20 1 18 18 18 V21 1 16 16 16 V22 1 11 11 11 V23 1 41 41 41 V24 1 7 7 7 V25 1 3 2 3 V26 1 11 7 11 V27 1 10 9 10 V28 1 75 74 58 V29 1 18 17 14 V30 1 57 57 57 V34 1 77 77 77 V35 1 75 74 58 V36 1 122 120 126 V37 1 94 21 94 V39 1 3 2 3 V40 2 122 72 122 V41 1 20 16 20
  • 29. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults 20Expérience pratique Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Expérience pratique Résultats (nombre d’erreurs localisées pour TCAS) Programme Nb_E Nb_CE LF BA V1 1 131 131 131 V2 2 67 67 67 V3 1 23 23 13 V4 1 20 4 20 V5 1 10 9 10 V6 1 12 11 12 V7 1 36 36 36 V8 1 1 1 1 V9 1 7 7 7 V10 2 14 12 14 V11 2 14 12 14 V12 1 70 45 48 V13 1 4 4 4 V14 1 50 50 50 V16 1 70 70 70 V17 1 35 35 35 V18 1 29 28 29 V19 1 19 18 19 V20 1 18 18 18 V21 1 16 16 16 V22 1 11 11 11 V23 1 41 41 41 V24 1 7 7 7 V25 1 3 2 3 V26 1 11 7 11 V27 1 10 9 10 V28 1 75 74 58 V29 1 18 17 14 V30 1 57 57 57 V34 1 77 77 77 V35 1 75 74 58 V36 1 122 120 126 V37 1 94 21 94 V39 1 3 2 3 V40 2 122 72 122 V41 1 20 16 20 Les performances de LocFaults et BugAssist sont très similaires sur ces programmes bien adaptés pour un solveur booléen
  • 30. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique 21Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Travaux connexes Approche basées sur SAT BugAssist Une méthode BMC, comme la notre Les principales différences : → Elle transforme le programme en entier en une formule SAT → Elle se base sur l’utilisation des solveurs MaxSAT + Une approche globale – Elle n’est pas efficace pour les programmes avec calcul numérique – Elle fusionne les MCSs du programme dans un seul ensemble d’instructions suspectes
  • 31. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique 22Travaux connexes Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Travaux connexes Approches basées sur le test systématique Tarantula, Ochiai, AMPLE, Jaccard, Heuristics III Classement des instructions suspectes détectées durant l’exécution d’une batterie de tests + Des approches simples – Besoins de beaucoup de cas de tests – Les approches qui nécessitent l’existence d’un oracle → Décidez si le résultat de dizaines de milliers de tests est correct Notre cadre moins exigeant → Bounded Model Checking
  • 32. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes 23Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Conclusion and perspectives Conclusion Une approche incrémentale et dirigée par les flots → localise les erreurs autour du chemin du contre-exemple Cadre fondé sur les contraintes → bien adapté pour le traitement des opérations arithmétiques → peut être étendue pour traiter les programmes avec calculs sur les nombres à virgule flottante
  • 33. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes 24Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Conclusion and perspectives Perspectives Développement d’une version interactive de notre outil : → Fournir les localisations l’une après les autres → Tirant profit de la connaissance de l’utilisateur pour sélectionner la condition qui doit être déviée Étendre notre approche pour la localisation des erreurs dans les programmes avec calculs sur les nombres à virgule flottante
  • 34. 25 Une approche incrémentale combinant les techniques BMC et un problème CSP pour l’aide à la localisation d’erreurs Mohammed Bekkouche Introduction Exemple Approche LocFaults Expérience pratique Travaux connexes 25Conclusion et perspectives I3S Laboratory, UNS-CNRS University of Nice-Sophia Antipolis France Merci pour votre attention. Questions ?