SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Localisation d'erreurs 
Une approche bornee a base de contraintes pour 
l'aide a la localisation d'erreurs 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel 
Univ. Nice Sophia Antipolis, CNRS, I3S, UMR 7271 
06900 Sophia Antipolis, France 
JFPC 2014 
June 19, 2014 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 1/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Plan 
1 Introduction 
2 Approche 
3 Exemple 
4 Etat de l'art 
5 Experimentation 
6 Conclusion et perspectives 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 2/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Motivation 
Les outils de BMC(Bounded Model Checking) et de test 
generent un ou plusieurs contre-exemples 
Un contre-exemple fournit une trace d'execution 
La trace du contre-exemple est souvent longue et 
compliquee a comprendre 
L'identi
cation des portions erronees du code est 
complexe pour le programmeur 
! Necessite de mettre en place des outils de localisation 
pour assister le developpeur dans cette t^ache 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 3/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Motivation 
Les outils de BMC(Bounded Model Checking) et de test 
generent un ou plusieurs contre-exemples 
Un contre-exemple fournit une trace d'execution 
La trace du contre-exemple est souvent longue et 
compliquee a comprendre 
L'identi
cation des portions erronees du code est 
complexe pour le programmeur 
! Necessite de mettre en place des outils de localisation 
pour assister le developpeur dans cette t^ache 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 3/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Le probleme 
Entrees 
Un programme non conforme 
vis-a-vis de sa speci
cation : la 
postcondition POST violee 
Un contre-exemple CE fourni 
par un outil BMC 
Sorties 
Un ensemble reduit 
d'instructions suspectes 
permettant au programmeur 
de comprendre l'origine de 
ses erreurs 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 4/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Le probleme 
Entrees 
Un programme non conforme 
vis-a-vis de sa speci
cation : la 
postcondition POST violee 
Un contre-exemple CE fourni 
par un outil BMC 
Sorties 
Un ensemble reduit 
d'instructions suspectes 
permettant au programmeur 
de comprendre l'origine de 
ses erreurs 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 4/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Les idees 
1 Le programme est modelise en un CFG en forme DSA 
2 Le programme et sa speci
cation sont traduits en 
contraintes numeriques 
3 CE un contre-exemple, PATH un chemin errone 
4 Le CSP C = CE [ PATH [ POST est inconsistant 
Points cles 
Quelles sont les instructions erronees dans PATH qui 
rendent C inconsistant ? 
Quels sous-ensembles retirer pour que C devienne 
faisable ? 
Quels chemins explorer ? ! chemin du CE, 
deviations a partir du CE 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Les idees 
1 Le programme est modelise en un CFG en forme DSA 
2 Le programme et sa speci
cation sont traduits en 
contraintes numeriques 
3 CE un contre-exemple, PATH un chemin errone 
4 Le CSP C = CE [ PATH [ POST est inconsistant 
Points cles 
Quelles sont les instructions erronees dans PATH qui 
rendent C inconsistant ? 
Quels sous-ensembles retirer pour que C devienne 
faisable ? 
Quels chemins explorer ? ! chemin du CE, 
deviations a partir du CE 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Les idees 
1 Le programme est modelise en un CFG en forme DSA 
2 Le programme et sa speci
cation sont traduits en 
contraintes numeriques 
3 CE un contre-exemple, PATH un chemin errone 
4 Le CSP C = CE [ PATH [ POST est inconsistant 
Points cles 
Quelles sont les instructions erronees dans PATH qui 
rendent C inconsistant ? 
Quels sous-ensembles retirer pour que C devienne 
faisable ? 
Quels chemins explorer ? ! chemin du CE, 
deviations a partir du CE 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Introduction 
Les idees 
1 Le programme est modelise en un CFG en forme DSA 
2 Le programme et sa speci
cation sont traduits en 
contraintes numeriques 
3 CE un contre-exemple, PATH un chemin errone 
4 Le CSP C = CE [ PATH [ POST est inconsistant 
Points cles 
Quelles sont les instructions erronees dans PATH qui 
rendent C inconsistant ? 
Quels sous-ensembles retirer pour que C devienne 
faisable ? 
Quels chemins explorer ? ! chemin du CE, 
deviations a partir du CE 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Les MCS: Minimal Correction Subset 
MCS: De
nition 
Soit C un ensemble de contraintes infaisable 
M  C est un MCS , 
8 : 
M  C 
Sol( X; CnM;D )6= ; 
@C00  M : Sol( X; CnC00;D ) = ; 
MCS: Exemple 
C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 
0 _ i6= 0) ^ (v  0) ^ (w  0))g est inconsistant 
C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Les MCS: Minimal Correction Subset 
MCS: De
nition 
Soit C un ensemble de contraintes infaisable 
M  C est un MCS , 
8 : 
M  C 
Sol( X; CnM;D )6= ; 
@C00  M : Sol( X; CnC00;D ) = ; 
MCS: Exemple 
C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 
0 _ i6= 0) ^ (v  0) ^ (w  0))g est inconsistant 
C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Les MCS: Minimal Correction Subset 
MCS: De
nition 
Soit C un ensemble de contraintes infaisable 
M  C est un MCS , 
8 : 
M  C 
Sol( X; CnM;D )6= ; 
@C00  M : Sol( X; CnC00;D ) = ; 
MCS: Exemple 
C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 
0 _ i6= 0) ^ (v  0) ^ (w  0))g est inconsistant 
C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Les MCS: Minimal Correction Subset 
MCS: De
nition 
Soit C un ensemble de contraintes infaisable 
M  C est un MCS , 
8 : 
M  C 
Sol( X; CnM;D )6= ; 
@C00  M : Sol( X; CnC00;D ) = ; 
MCS: Exemple 
C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 
0 _ i6= 0) ^ (v  0) ^ (w  0))g est inconsistant 
C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Algorithme (LocFaults) 
Calcul des MCS sur le chemin du CE 
Exploration DFS du CFG en propageant CE et en 
deviant au plus k instructions conditionnelles c1; ::; ck 
P: contraintes de propagation issues du CE (de la forme 
variable = constante) 
C: contraintes du chemin jusqu'a ck 
Si P satisfait POST: 
* f:c1; ::;:ckg est une correction, 
* Les MCS de C [ f:c1; ::;:ckg sont des corrections 
Borne pour les MCS calcules et les conditions deviees 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 7/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Approche 
Algorithme (LocFaults) 
Calcul des MCS sur le chemin du CE 
Exploration DFS du CFG en propageant CE et en 
deviant au plus k instructions conditionnelles c1; ::; ck 
P: contraintes de propagation issues du CE (de la forme 
variable = constante) 
C: contraintes du chemin jusqu'a ck 
Si P satisfait POST: 
* f:c1; ::;:ckg est une correction, 
* Les MCS de C [ f:c1; ::;:ckg sont des corrections 
Borne pour les MCS calcules et les conditions deviees 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 7/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Calcul de la valeur absolue de i-j 
1 c l a s s AbsMinus f 
2 / r e t u r n s j ij j , the a b s o l u t e v a l u e o f i minus j / 
3 /@ e n s u r e s 
4 @ ( r e s u l t==j ij j ) ; 
5 @/ 
6 i n t AbsMinus ( i n t i , i n t j ) f 
7 i n t r e s u l t ; 
8 i n t k = 0 ; 
9 i f ( i = j ) f 
10 k = k+2; // e r r o r : k = k+2 i n s t e a d o f 
k=k+1 
11 g 
12 i f ( k == 1  i != j ) f 
13 r e s u l t = ji ; 
14 g 
15 e l s e f 
16 r e s u l t = ij ; 
17 g 
18 r e t u r n r e s u l t ; 
19 g 
20 g 
k0 = 0 
i0  j0 
If Else 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 8/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Calcul de la valeur absolue de i-j 
1 c l a s s AbsMinus f 
2 / r e t u r n s j ij j , the a b s o l u t e v a l u e o f i minus j / 
3 /@ e n s u r e s 
4 @ ( r e s u l t==j ij j ) ; 
5 @/ 
6 i n t AbsMinus ( i n t i , i n t j ) f 
7 i n t r e s u l t ; 
8 i n t k = 0 ; 
9 i f ( i = j ) f 
10 k = k+2; // e r r o r : k = k+2 i n s t e a d o f 
k=k+1 
11 g 
12 i f ( k == 1  i != j ) f 
13 r e s u l t = ji ; 
14 g 
15 e l s e f 
16 r e s u l t = ij ; 
17 g 
18 r e t u r n r e s u l t ; 
19 g 
20 g 
k0 = 0 
i0  j0 
If Else 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 8/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Le chemin du contre-exemple 
POST:fr1 == ji  jjg 
fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; r1 = 
i0  j0; r1 = ji  jjg est inconsistant 
Unique MCS dans le chemin: fr1 = i0  j0g 
CE:f(i0 == 0) ^ (j0 == 1)g 
k0 = 0 
i0  j0 
If Else 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 9/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Le chemin obtenu en deviant la condition i0  j0 
Condition deviee: fi0  j0g 
P = fi0 = 0; j0 = 1; k0 = 0; k1 = 0; r1 = 
1g 
P [ fr1 = ji  jjg est inconsistant 
La deviation fi0  j0g ne corrige pas le 
programme 
CE:f(i0 == 0) ^ (j0 == 1)g 
k0 = 0 
i0  j0 
If Else (deviation) 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg is UNSAT 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 10/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Le chemin en deviant la condition k1 = 1 ^ i0! = j0 
Condition deviee: f(k1 = 1 ^ i0! = j0)g 
P = fi0 = 0; j0 = 1; k0 = 0; k1 = 2; r1 = 1g 
P [ fr1 = ji  jjg est consistant 
La deviation f(k1 = 1 ^ i0! = j0)g corrige le 
programme 
C = fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; :(k1 = 
1 ^ i0! = j0)g 
C est inconsistant 
MCS dans le chemin: fk0 = 0g, fk1 = k0 +2g 
CE:f(i0 == 0) ^ (j0 == 1)g 
k0 = 0 
i0  j0 
If Else 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If (deviation) Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg is SAT 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 11/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Exemple 
Le chemin en deviant la condition k1 = 1 ^ i0! = j0 
Condition deviee: f(k1 = 1 ^ i0! = j0)g 
P = fi0 = 0; j0 = 1; k0 = 0; k1 = 2; r1 = 1g 
P [ fr1 = ji  jjg est consistant 
La deviation f(k1 = 1 ^ i0! = j0)g corrige le 
programme 
C = fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; :(k1 = 
1 ^ i0! = j0)g 
C est inconsistant 
MCS dans le chemin: fk0 = 0g, fk1 = k0 +2g 
CE:f(i0 == 0) ^ (j0 == 1)g 
k0 = 0 
i0  j0 
If Else 
k1 = k0 + 2 Error k1 = k0 
k1 = 
1 ^ i0! = j0 
If (deviation) Else 
r1 = j0  i0 r1 = i0  j0 
POST:fr1 == ji  jjg is SAT 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 11/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Etat de l'art 
Approches basees sur le test systematique 
Tarantula, Delta Debugging 
Classement des instructions suspectes detectees lors de 
l'execution d'une batterie de tests 
+ Approches simples 
{ Besoin de beaucoup de cas de tests 
Des approches qui requierent l'existence d'un oracle 
! Decider si le resultat de dizaines de milliers de test 
est juste 
Notre cadre est moins exigeant 
! Bounded Model Checking 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Etat de l'art 
Approches basees sur le test systematique 
Tarantula, Delta Debugging 
Classement des instructions suspectes detectees lors de 
l'execution d'une batterie de tests 
+ Approches simples 
{ Besoin de beaucoup de cas de tests 
Des approches qui requierent l'existence d'un oracle 
! Decider si le resultat de dizaines de milliers de test 
est juste 
Notre cadre est moins exigeant 
! Bounded Model Checking 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Etat de l'art 
Approches basees sur le test systematique 
Tarantula, Delta Debugging 
Classement des instructions suspectes detectees lors de 
l'execution d'une batterie de tests 
+ Approches simples 
{ Besoin de beaucoup de cas de tests 
Des approches qui requierent l'existence d'un oracle 
! Decider si le resultat de dizaines de milliers de test 
est juste 
Notre cadre est moins exigeant 
! Bounded Model Checking 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Etat de l'art 
Methodes basees sur la traduction booleenne du programme 
BugAssist 
Une methode de BMC, comme la notre 
Dierences majeures: 
! Elle transforme la totalite du programme en une 
formule SAT 
! Elle est basee sur l'utilisation des solveurs MaxSAT 
+ Approche globale 
{ Le complement de MaxSAT ne correspond pas 
necessairement a des instructions sur un m^eme chemin 
! Achage de l'union de ces complements 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 13/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Etat de l'art 
Methodes basees sur la traduction booleenne du programme 
BugAssist 
Une methode de BMC, comme la notre 
Dierences majeures: 
! Elle transforme la totalite du programme en une 
formule SAT 
! Elle est basee sur l'utilisation des solveurs MaxSAT 
+ Approche globale 
{ Le complement de MaxSAT ne correspond pas 
necessairement a des instructions sur un m^eme chemin 
! Achage de l'union de ces complements 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 13/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Outils utilises 
LocFaults: notre implementation 
! Le solveur MIP de IBM ILOG CPLEX 
! L'outil CPBPV pour generer le CFG et CE 
! Benchmarks: les programmes Java 
BugAssist: l'outil de localisation d'erreurs pour 
l'approche BugAssist 
! Le solveur MaxSAT MSUnCore2 
! Benchmarks: les programmes ANSI-C 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 14/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Les programmes construits 
Programmes simples 
! AbsMinus, Minmax, Mid (programmes illustratifs) 
! Maxmin6var (programme sans points de jonction) 
! Tritype, TriPerimetre (programmes avec points de 
jonction) 
! Plusieurs versions erronees pour chaque programme 
Exemple: TriPerimetre ! TriPerimetreKO, 
TriPerimetreKO2, TriPerimetreKO3 
Un benchmark realiste TCAS (Trac Collision 
Avoidance System) 
! 1608 cas de tests , sauf les cas de debordement du 
tableau PositiveRAAltThresh 
! TcasKO . . . TcasKO41 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 15/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Les programmes construits 
Programmes simples 
! AbsMinus, Minmax, Mid (programmes illustratifs) 
! Maxmin6var (programme sans points de jonction) 
! Tritype, TriPerimetre (programmes avec points de 
jonction) 
! Plusieurs versions erronees pour chaque programme 
Exemple: TriPerimetre ! TriPerimetreKO, 
TriPerimetreKO2, TriPerimetreKO3 
Un benchmark realiste TCAS (Trac Collision 
Avoidance System) 
! 1608 cas de tests , sauf les cas de debordement du 
tableau PositiveRAAltThresh 
! TcasKO . . . TcasKO41 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 15/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Resultats (MCS identi
es) 
Programme Contre-exemple 
LocFaults 
= 0  1  2  3 BugAssist 
AbsMinusKO3 fi = 0; j = 1g f20g 
f16g,f14g,f12g f16g,f14g,f12g f16g,f14g,f12g 
f20g f20g f20g f16; 20g 
MinmaxKO 
fin1 = 2; in2 = 1; 
f10g,f19g 
f18g,f10g f18g,f10g f18g,f10g 
f18; 19; 22g in3 = 3g f10g,f19g f10g,f19g f10g,f19g 
MidKO fa = 2; b = 1; c = 3g f19g f19g f19g 
f14; 23; 26g 
f19g f14; 19; 30g 
Maxmin6varKO4 
fa = 1; b = 3; c = 4; 
f116g f116g f116g 
f12; 15; 19g 
d = 2; e = 1; f = 2g f116g f12; 166g 
TritypeKO2 fi = 2; j = 2; k = 4g f54g 
f21g f21g f21g 
f26g f26g f26g f21; 26; 27; 
f35g,f27g,f25gf29; 57g,f30g,f27g,f29; 57g,f30g,f27g, 29; 30; 32; 
f53g,f25g,f27g f25g f25g 33; 35; 36; 
53; 68g 
f54g 
f32; 44g,f33g,f25g,f32; 44g,f33g,f25g, 
f27g f27g 
f35g,f27g,f25g f35g,f27g,f25g 
f53g,f25g,f27g f53g,f25g,f27g 
f54g f54g 
TritypeKO4 fi = 2; j = 3; k = 3g f46g 
f45g,f33g,f25g f26; 32g f26; 32g 
f26; 27; 29; 
f46g 
f29; 32g f29; 32g 
f45g,f33g,f25g f32; 35; 49g,f25g 30; 32; 33; 
35; 45; 49; 
f46g 
f32; 35; 53g,f25g 
f32; 35; 57g,f25g 68g 
f45g,f33g,f25g 
f46g 
TriPerimetreKO fi = 2; j = 1; k = 2g f58g 
f31g f31g f31g f28; 29; 31; 
f37g,f32g,f27g f37g,f32g,f27g f37g,f32g,f27g 32; 35; 37; 
f58g f58g f58g 65; 72g 
LocFaults fournit une localisation plus informative et plus explicative 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 16/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Resultats (Temps de calcul) 
Programme 
LocFaults BugAssist 
P 
L 
P L 
= 0  1  2  3 
AbsMinusKO3 0; 479s 0; 076s 0; 113s 0; 357s 0; 336s 0; 02s 0; 04s 
MinmaxKO 0; 528s 0; 243s 0; 318s 0; 965s 1; 016s 0; 01s 0; 09s 
MidKO 0; 524s 0; 065s 0; 078s 0; 052s 0; 329s 0; 02s 0; 08s 
Maxmin6varKO4 0; 538s 0; 06s 0; 07s 0; 075s 0; 56s 0; 04s 0; 78s 
TritypeKO2 0; 51s 0; 023s 0; 25s 2; 083s 3; 864s 0; 02s 0; 69s 
TritypeKO4 0; 497s 0; 023s 0; 095s 0; 295s 5; 127s 0; 02s 0; 21s 
TriPerimetreKO 0; 518s 0; 047s 0; 126s 1; 096s 2; 389s 0; 03s 0; 64s 
Les temps de LocFaults sont proches des temps de BugAssist 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 17/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Evaluation experimentale 
Resultats (Nombre d'erreurs localisees pour TCAS) 
Programme Nb E Nb CE 
LF 
BA 
 1  2 
TcasKO 1 131 131 131 131 
TcasKO2 2 67 67 134 67 
TcasKO3 1 23 2 2 23 
TcasKO4 1 20 16 20 20 
TcasKO5 1 10 10 10 10 
TcasKO6 3 12 36 36 24 
TcasKO7 1 36 23 36 0 
TcasKO8 1 1 1 1 0 
TcasKO9 1 7 7 7 7 
TcasKO10 6 14 16 65 84 
TcasKO11 6 14 16 34 46 
TcasKO12 1 70 52 52 70 
TcasKO13 1 4 3 3 4 
TcasKO14 1 50 6 6 51 
TcasKO16 1 70 22 70 0 
TcasKO17 1 35 22 35 0 
TcasKO18 1 29 21 28 0 
TcasKO19 1 19 13 19 0 
TcasKO20 1 18 18 18 18 
TcasKO21 1 16 16 16 16 
TcasKO22 1 11 11 11 11 
TcasKO23 1 41 41 41 41 
TcasKO24 1 7 7 7 7 
TcasKO25 1 3 0 3 3 
TcasKO26 1 11 11 11 11 
TcasKO27 1 10 10 10 10 
TcasKO28 2 75 74 148 121 
TcasKO29 2 18 17 35 0 
TcasKO30 2 57 57 114 0 
TcasKO34 1 77 77 77 77 
TcasKO35 4 75 74 148 115 
TcasKO36 1 122 120 120 0 
TcasKO37 4 94 110 235 236 
TcasKO39 1 3 0 3 3 
TcasKO40 2 122 0 103 120 
TcasKO41 1 20 17 20 20 
LocFaults se compare tres favorablement 
a BugAssist 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 18/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Conclusion 
Approche de localisation d'erreurs bornee 
Exploration DFS bornee 
Calcul des MCS borne 
! Pour emp^echer l'explosion combinatoire 
Basee sur l'utilisation des solveurs de contraintes 
LocFaults fournit des resultats plus precis et plus 
pertinents par rapport a BugAssist 
! Les temps des deux outils sont similaires 
LocFaults localise frequemment les erreurs pour les 
programmes TCAS 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Conclusion 
Approche de localisation d'erreurs bornee 
Exploration DFS bornee 
Calcul des MCS borne 
! Pour emp^echer l'explosion combinatoire 
Basee sur l'utilisation des solveurs de contraintes 
LocFaults fournit des resultats plus precis et plus 
pertinents par rapport a BugAssist 
! Les temps des deux outils sont similaires 
LocFaults localise frequemment les erreurs pour les 
programmes TCAS 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Conclusion 
Approche de localisation d'erreurs bornee 
Exploration DFS bornee 
Calcul des MCS borne 
! Pour emp^echer l'explosion combinatoire 
Basee sur l'utilisation des solveurs de contraintes 
LocFaults fournit des resultats plus precis et plus 
pertinents par rapport a BugAssist 
! Les temps des deux outils sont similaires 
LocFaults localise frequemment les erreurs pour les 
programmes TCAS 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Conclusion 
Approche de localisation d'erreurs bornee 
Exploration DFS bornee 
Calcul des MCS borne 
! Pour emp^echer l'explosion combinatoire 
Basee sur l'utilisation des solveurs de contraintes 
LocFaults fournit des resultats plus precis et plus 
pertinents par rapport a BugAssist 
! Les temps des deux outils sont similaires 
LocFaults localise frequemment les erreurs pour les 
programmes TCAS 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Perspectives 
Nouvelle version incrementale de l'algorithme 
Traiter des programmes avec boucles 
Etendre notre implementation pour supporter les 
instructions non-lineaires plus complexes par l'usage des 
solveurs specialises 
Experimenter plus de programmes reels 
Traiter les instructions avec calcul sur les 
ottants 
! Utiliser des solveurs specialises sur les 
ottants 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives 
Perspectives 
Nouvelle version incrementale de l'algorithme 
Traiter des programmes avec boucles 
Etendre notre implementation pour supporter les 
instructions non-lineaires plus complexes par l'usage des 
solveurs specialises 
Experimenter plus de programmes reels 
Traiter les instructions avec calcul sur les 
ottants 
! Utiliser des solveurs specialises sur les 
ottants 
Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23

Contenu connexe

Similaire à LocFaults, une approche bornée à base de contraintes pour l'aide à la localisation d'erreurs

ppt derniere version Driouech Ikram_2023.pptx
ppt derniere version Driouech Ikram_2023.pptxppt derniere version Driouech Ikram_2023.pptx
ppt derniere version Driouech Ikram_2023.pptxikramdr1
 
Automatisation des tests des essais systématiques des compteurs
Automatisation des tests des essais systématiques des compteursAutomatisation des tests des essais systématiques des compteurs
Automatisation des tests des essais systématiques des compteursZAYANI Med Anwer
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...Yassine Selmi
 
Fascicule mémoiresienac09 ihm11
Fascicule mémoiresienac09 ihm11Fascicule mémoiresienac09 ihm11
Fascicule mémoiresienac09 ihm11uvohucyz
 
Rapport_oral_final
Rapport_oral_finalRapport_oral_final
Rapport_oral_finalJean Ibarz
 
Compte rendu de tp de commande numerique
Compte rendu de tp de commande numeriqueCompte rendu de tp de commande numerique
Compte rendu de tp de commande numeriqueELMEHDYELWARDY
 
M04 analyse de circuits à c.c. ge esa
M04 analyse de circuits à c.c. ge esaM04 analyse de circuits à c.c. ge esa
M04 analyse de circuits à c.c. ge esacoursofppt
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueMohamed Lahby
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 

Similaire à LocFaults, une approche bornée à base de contraintes pour l'aide à la localisation d'erreurs (16)

Et4 4 testinformel
Et4 4 testinformelEt4 4 testinformel
Et4 4 testinformel
 
ppt derniere version Driouech Ikram_2023.pptx
ppt derniere version Driouech Ikram_2023.pptxppt derniere version Driouech Ikram_2023.pptx
ppt derniere version Driouech Ikram_2023.pptx
 
Presentation
PresentationPresentation
Presentation
 
Automatisation des tests des essais systématiques des compteurs
Automatisation des tests des essais systématiques des compteursAutomatisation des tests des essais systématiques des compteurs
Automatisation des tests des essais systématiques des compteurs
 
2-Algo.ppt
2-Algo.ppt2-Algo.ppt
2-Algo.ppt
 
Ds2 informatique
Ds2 informatiqueDs2 informatique
Ds2 informatique
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
 
Pfa2
Pfa2 Pfa2
Pfa2
 
Fascicule mémoiresienac09 ihm11
Fascicule mémoiresienac09 ihm11Fascicule mémoiresienac09 ihm11
Fascicule mémoiresienac09 ihm11
 
Rapport_oral_final
Rapport_oral_finalRapport_oral_final
Rapport_oral_final
 
Cours1.pptx
Cours1.pptxCours1.pptx
Cours1.pptx
 
Compte rendu de tp de commande numerique
Compte rendu de tp de commande numeriqueCompte rendu de tp de commande numerique
Compte rendu de tp de commande numerique
 
M04 analyse de circuits à c.c. ge esa
M04 analyse de circuits à c.c. ge esaM04 analyse de circuits à c.c. ge esa
M04 analyse de circuits à c.c. ge esa
 
Chap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmiqueChap1 introduction à l'algoritmique
Chap1 introduction à l'algoritmique
 
Tests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnitTests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnit
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 

LocFaults, une approche bornée à base de contraintes pour l'aide à la localisation d'erreurs

  • 1. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Localisation d'erreurs Une approche bornee a base de contraintes pour l'aide a la localisation d'erreurs Bekkouche Mohammed, Collavizza Helene, Rueher Michel Univ. Nice Sophia Antipolis, CNRS, I3S, UMR 7271 06900 Sophia Antipolis, France JFPC 2014 June 19, 2014 Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 1/23
  • 2. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Plan 1 Introduction 2 Approche 3 Exemple 4 Etat de l'art 5 Experimentation 6 Conclusion et perspectives Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 2/23
  • 3. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Motivation Les outils de BMC(Bounded Model Checking) et de test generent un ou plusieurs contre-exemples Un contre-exemple fournit une trace d'execution La trace du contre-exemple est souvent longue et compliquee a comprendre L'identi
  • 4. cation des portions erronees du code est complexe pour le programmeur ! Necessite de mettre en place des outils de localisation pour assister le developpeur dans cette t^ache Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 3/23
  • 5. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Motivation Les outils de BMC(Bounded Model Checking) et de test generent un ou plusieurs contre-exemples Un contre-exemple fournit une trace d'execution La trace du contre-exemple est souvent longue et compliquee a comprendre L'identi
  • 6. cation des portions erronees du code est complexe pour le programmeur ! Necessite de mettre en place des outils de localisation pour assister le developpeur dans cette t^ache Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 3/23
  • 7. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Le probleme Entrees Un programme non conforme vis-a-vis de sa speci
  • 8. cation : la postcondition POST violee Un contre-exemple CE fourni par un outil BMC Sorties Un ensemble reduit d'instructions suspectes permettant au programmeur de comprendre l'origine de ses erreurs Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 4/23
  • 9. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Le probleme Entrees Un programme non conforme vis-a-vis de sa speci
  • 10. cation : la postcondition POST violee Un contre-exemple CE fourni par un outil BMC Sorties Un ensemble reduit d'instructions suspectes permettant au programmeur de comprendre l'origine de ses erreurs Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 4/23
  • 11. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Les idees 1 Le programme est modelise en un CFG en forme DSA 2 Le programme et sa speci
  • 12. cation sont traduits en contraintes numeriques 3 CE un contre-exemple, PATH un chemin errone 4 Le CSP C = CE [ PATH [ POST est inconsistant Points cles Quelles sont les instructions erronees dans PATH qui rendent C inconsistant ? Quels sous-ensembles retirer pour que C devienne faisable ? Quels chemins explorer ? ! chemin du CE, deviations a partir du CE Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
  • 13. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Les idees 1 Le programme est modelise en un CFG en forme DSA 2 Le programme et sa speci
  • 14. cation sont traduits en contraintes numeriques 3 CE un contre-exemple, PATH un chemin errone 4 Le CSP C = CE [ PATH [ POST est inconsistant Points cles Quelles sont les instructions erronees dans PATH qui rendent C inconsistant ? Quels sous-ensembles retirer pour que C devienne faisable ? Quels chemins explorer ? ! chemin du CE, deviations a partir du CE Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
  • 15. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Les idees 1 Le programme est modelise en un CFG en forme DSA 2 Le programme et sa speci
  • 16. cation sont traduits en contraintes numeriques 3 CE un contre-exemple, PATH un chemin errone 4 Le CSP C = CE [ PATH [ POST est inconsistant Points cles Quelles sont les instructions erronees dans PATH qui rendent C inconsistant ? Quels sous-ensembles retirer pour que C devienne faisable ? Quels chemins explorer ? ! chemin du CE, deviations a partir du CE Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
  • 17. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Introduction Les idees 1 Le programme est modelise en un CFG en forme DSA 2 Le programme et sa speci
  • 18. cation sont traduits en contraintes numeriques 3 CE un contre-exemple, PATH un chemin errone 4 Le CSP C = CE [ PATH [ POST est inconsistant Points cles Quelles sont les instructions erronees dans PATH qui rendent C inconsistant ? Quels sous-ensembles retirer pour que C devienne faisable ? Quels chemins explorer ? ! chemin du CE, deviations a partir du CE Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 5/23
  • 19. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Les MCS: Minimal Correction Subset MCS: De
  • 20. nition Soit C un ensemble de contraintes infaisable M C est un MCS , 8 : M C Sol( X; CnM;D )6= ; @C00 M : Sol( X; CnC00;D ) = ; MCS: Exemple C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 0 _ i6= 0) ^ (v 0) ^ (w 0))g est inconsistant C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
  • 21. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Les MCS: Minimal Correction Subset MCS: De
  • 22. nition Soit C un ensemble de contraintes infaisable M C est un MCS , 8 : M C Sol( X; CnM;D )6= ; @C00 M : Sol( X; CnC00;D ) = ; MCS: Exemple C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 0 _ i6= 0) ^ (v 0) ^ (w 0))g est inconsistant C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
  • 23. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Les MCS: Minimal Correction Subset MCS: De
  • 24. nition Soit C un ensemble de contraintes infaisable M C est un MCS , 8 : M C Sol( X; CnM;D )6= ; @C00 M : Sol( X; CnC00;D ) = ; MCS: Exemple C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 0 _ i6= 0) ^ (v 0) ^ (w 0))g est inconsistant C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
  • 25. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Les MCS: Minimal Correction Subset MCS: De
  • 26. nition Soit C un ensemble de contraintes infaisable M C est un MCS , 8 : M C Sol( X; CnM;D )6= ; @C00 M : Sol( X; CnC00;D ) = ; MCS: Exemple C = fc1 : i = 0; c2 : v = 5; c3 : w = 6; c4 : z = i + v + w; c5 : ((z = 0 _ i6= 0) ^ (v 0) ^ (w 0))g est inconsistant C a 4 MCS: fc1g, fc4g, fc5g,fc2; c3g Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 6/23
  • 27. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme (LocFaults) Calcul des MCS sur le chemin du CE Exploration DFS du CFG en propageant CE et en deviant au plus k instructions conditionnelles c1; ::; ck P: contraintes de propagation issues du CE (de la forme variable = constante) C: contraintes du chemin jusqu'a ck Si P satisfait POST: * f:c1; ::;:ckg est une correction, * Les MCS de C [ f:c1; ::;:ckg sont des corrections Borne pour les MCS calcules et les conditions deviees Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 7/23
  • 28. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme (LocFaults) Calcul des MCS sur le chemin du CE Exploration DFS du CFG en propageant CE et en deviant au plus k instructions conditionnelles c1; ::; ck P: contraintes de propagation issues du CE (de la forme variable = constante) C: contraintes du chemin jusqu'a ck Si P satisfait POST: * f:c1; ::;:ckg est une correction, * Les MCS de C [ f:c1; ::;:ckg sont des corrections Borne pour les MCS calcules et les conditions deviees Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 7/23
  • 29. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Calcul de la valeur absolue de i-j 1 c l a s s AbsMinus f 2 / r e t u r n s j ij j , the a b s o l u t e v a l u e o f i minus j / 3 /@ e n s u r e s 4 @ ( r e s u l t==j ij j ) ; 5 @/ 6 i n t AbsMinus ( i n t i , i n t j ) f 7 i n t r e s u l t ; 8 i n t k = 0 ; 9 i f ( i = j ) f 10 k = k+2; // e r r o r : k = k+2 i n s t e a d o f k=k+1 11 g 12 i f ( k == 1 i != j ) f 13 r e s u l t = ji ; 14 g 15 e l s e f 16 r e s u l t = ij ; 17 g 18 r e t u r n r e s u l t ; 19 g 20 g k0 = 0 i0 j0 If Else k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 8/23
  • 30. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Calcul de la valeur absolue de i-j 1 c l a s s AbsMinus f 2 / r e t u r n s j ij j , the a b s o l u t e v a l u e o f i minus j / 3 /@ e n s u r e s 4 @ ( r e s u l t==j ij j ) ; 5 @/ 6 i n t AbsMinus ( i n t i , i n t j ) f 7 i n t r e s u l t ; 8 i n t k = 0 ; 9 i f ( i = j ) f 10 k = k+2; // e r r o r : k = k+2 i n s t e a d o f k=k+1 11 g 12 i f ( k == 1 i != j ) f 13 r e s u l t = ji ; 14 g 15 e l s e f 16 r e s u l t = ij ; 17 g 18 r e t u r n r e s u l t ; 19 g 20 g k0 = 0 i0 j0 If Else k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 8/23
  • 31. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin du contre-exemple POST:fr1 == ji jjg fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; r1 = i0 j0; r1 = ji jjg est inconsistant Unique MCS dans le chemin: fr1 = i0 j0g CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 9/23
  • 32. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin obtenu en deviant la condition i0 j0 Condition deviee: fi0 j0g P = fi0 = 0; j0 = 1; k0 = 0; k1 = 0; r1 = 1g P [ fr1 = ji jjg est inconsistant La deviation fi0 j0g ne corrige pas le programme CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else (deviation) k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg is UNSAT Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 10/23
  • 33. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin en deviant la condition k1 = 1 ^ i0! = j0 Condition deviee: f(k1 = 1 ^ i0! = j0)g P = fi0 = 0; j0 = 1; k0 = 0; k1 = 2; r1 = 1g P [ fr1 = ji jjg est consistant La deviation f(k1 = 1 ^ i0! = j0)g corrige le programme C = fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; :(k1 = 1 ^ i0! = j0)g C est inconsistant MCS dans le chemin: fk0 = 0g, fk1 = k0 +2g CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If (deviation) Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg is SAT Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 11/23
  • 34. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin en deviant la condition k1 = 1 ^ i0! = j0 Condition deviee: f(k1 = 1 ^ i0! = j0)g P = fi0 = 0; j0 = 1; k0 = 0; k1 = 2; r1 = 1g P [ fr1 = ji jjg est consistant La deviation f(k1 = 1 ^ i0! = j0)g corrige le programme C = fi0 = 0; j0 = 1; k0 = 0; k1 = k0 + 2; :(k1 = 1 ^ i0! = j0)g C est inconsistant MCS dans le chemin: fk0 = 0g, fk1 = k0 +2g CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If (deviation) Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg is SAT Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 11/23
  • 35. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Etat de l'art Approches basees sur le test systematique Tarantula, Delta Debugging Classement des instructions suspectes detectees lors de l'execution d'une batterie de tests + Approches simples { Besoin de beaucoup de cas de tests Des approches qui requierent l'existence d'un oracle ! Decider si le resultat de dizaines de milliers de test est juste Notre cadre est moins exigeant ! Bounded Model Checking Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
  • 36. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Etat de l'art Approches basees sur le test systematique Tarantula, Delta Debugging Classement des instructions suspectes detectees lors de l'execution d'une batterie de tests + Approches simples { Besoin de beaucoup de cas de tests Des approches qui requierent l'existence d'un oracle ! Decider si le resultat de dizaines de milliers de test est juste Notre cadre est moins exigeant ! Bounded Model Checking Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
  • 37. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Etat de l'art Approches basees sur le test systematique Tarantula, Delta Debugging Classement des instructions suspectes detectees lors de l'execution d'une batterie de tests + Approches simples { Besoin de beaucoup de cas de tests Des approches qui requierent l'existence d'un oracle ! Decider si le resultat de dizaines de milliers de test est juste Notre cadre est moins exigeant ! Bounded Model Checking Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 12/23
  • 38. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Etat de l'art Methodes basees sur la traduction booleenne du programme BugAssist Une methode de BMC, comme la notre Dierences majeures: ! Elle transforme la totalite du programme en une formule SAT ! Elle est basee sur l'utilisation des solveurs MaxSAT + Approche globale { Le complement de MaxSAT ne correspond pas necessairement a des instructions sur un m^eme chemin ! Achage de l'union de ces complements Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 13/23
  • 39. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Etat de l'art Methodes basees sur la traduction booleenne du programme BugAssist Une methode de BMC, comme la notre Dierences majeures: ! Elle transforme la totalite du programme en une formule SAT ! Elle est basee sur l'utilisation des solveurs MaxSAT + Approche globale { Le complement de MaxSAT ne correspond pas necessairement a des instructions sur un m^eme chemin ! Achage de l'union de ces complements Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 13/23
  • 40. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Outils utilises LocFaults: notre implementation ! Le solveur MIP de IBM ILOG CPLEX ! L'outil CPBPV pour generer le CFG et CE ! Benchmarks: les programmes Java BugAssist: l'outil de localisation d'erreurs pour l'approche BugAssist ! Le solveur MaxSAT MSUnCore2 ! Benchmarks: les programmes ANSI-C Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 14/23
  • 41. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Les programmes construits Programmes simples ! AbsMinus, Minmax, Mid (programmes illustratifs) ! Maxmin6var (programme sans points de jonction) ! Tritype, TriPerimetre (programmes avec points de jonction) ! Plusieurs versions erronees pour chaque programme Exemple: TriPerimetre ! TriPerimetreKO, TriPerimetreKO2, TriPerimetreKO3 Un benchmark realiste TCAS (Trac Collision Avoidance System) ! 1608 cas de tests , sauf les cas de debordement du tableau PositiveRAAltThresh ! TcasKO . . . TcasKO41 Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 15/23
  • 42. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Les programmes construits Programmes simples ! AbsMinus, Minmax, Mid (programmes illustratifs) ! Maxmin6var (programme sans points de jonction) ! Tritype, TriPerimetre (programmes avec points de jonction) ! Plusieurs versions erronees pour chaque programme Exemple: TriPerimetre ! TriPerimetreKO, TriPerimetreKO2, TriPerimetreKO3 Un benchmark realiste TCAS (Trac Collision Avoidance System) ! 1608 cas de tests , sauf les cas de debordement du tableau PositiveRAAltThresh ! TcasKO . . . TcasKO41 Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 15/23
  • 43. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Resultats (MCS identi
  • 44. es) Programme Contre-exemple LocFaults = 0 1 2 3 BugAssist AbsMinusKO3 fi = 0; j = 1g f20g f16g,f14g,f12g f16g,f14g,f12g f16g,f14g,f12g f20g f20g f20g f16; 20g MinmaxKO fin1 = 2; in2 = 1; f10g,f19g f18g,f10g f18g,f10g f18g,f10g f18; 19; 22g in3 = 3g f10g,f19g f10g,f19g f10g,f19g MidKO fa = 2; b = 1; c = 3g f19g f19g f19g f14; 23; 26g f19g f14; 19; 30g Maxmin6varKO4 fa = 1; b = 3; c = 4; f116g f116g f116g f12; 15; 19g d = 2; e = 1; f = 2g f116g f12; 166g TritypeKO2 fi = 2; j = 2; k = 4g f54g f21g f21g f21g f26g f26g f26g f21; 26; 27; f35g,f27g,f25gf29; 57g,f30g,f27g,f29; 57g,f30g,f27g, 29; 30; 32; f53g,f25g,f27g f25g f25g 33; 35; 36; 53; 68g f54g f32; 44g,f33g,f25g,f32; 44g,f33g,f25g, f27g f27g f35g,f27g,f25g f35g,f27g,f25g f53g,f25g,f27g f53g,f25g,f27g f54g f54g TritypeKO4 fi = 2; j = 3; k = 3g f46g f45g,f33g,f25g f26; 32g f26; 32g f26; 27; 29; f46g f29; 32g f29; 32g f45g,f33g,f25g f32; 35; 49g,f25g 30; 32; 33; 35; 45; 49; f46g f32; 35; 53g,f25g f32; 35; 57g,f25g 68g f45g,f33g,f25g f46g TriPerimetreKO fi = 2; j = 1; k = 2g f58g f31g f31g f31g f28; 29; 31; f37g,f32g,f27g f37g,f32g,f27g f37g,f32g,f27g 32; 35; 37; f58g f58g f58g 65; 72g LocFaults fournit une localisation plus informative et plus explicative Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 16/23
  • 45. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Resultats (Temps de calcul) Programme LocFaults BugAssist P L P L = 0 1 2 3 AbsMinusKO3 0; 479s 0; 076s 0; 113s 0; 357s 0; 336s 0; 02s 0; 04s MinmaxKO 0; 528s 0; 243s 0; 318s 0; 965s 1; 016s 0; 01s 0; 09s MidKO 0; 524s 0; 065s 0; 078s 0; 052s 0; 329s 0; 02s 0; 08s Maxmin6varKO4 0; 538s 0; 06s 0; 07s 0; 075s 0; 56s 0; 04s 0; 78s TritypeKO2 0; 51s 0; 023s 0; 25s 2; 083s 3; 864s 0; 02s 0; 69s TritypeKO4 0; 497s 0; 023s 0; 095s 0; 295s 5; 127s 0; 02s 0; 21s TriPerimetreKO 0; 518s 0; 047s 0; 126s 1; 096s 2; 389s 0; 03s 0; 64s Les temps de LocFaults sont proches des temps de BugAssist Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 17/23
  • 46. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Evaluation experimentale Resultats (Nombre d'erreurs localisees pour TCAS) Programme Nb E Nb CE LF BA 1 2 TcasKO 1 131 131 131 131 TcasKO2 2 67 67 134 67 TcasKO3 1 23 2 2 23 TcasKO4 1 20 16 20 20 TcasKO5 1 10 10 10 10 TcasKO6 3 12 36 36 24 TcasKO7 1 36 23 36 0 TcasKO8 1 1 1 1 0 TcasKO9 1 7 7 7 7 TcasKO10 6 14 16 65 84 TcasKO11 6 14 16 34 46 TcasKO12 1 70 52 52 70 TcasKO13 1 4 3 3 4 TcasKO14 1 50 6 6 51 TcasKO16 1 70 22 70 0 TcasKO17 1 35 22 35 0 TcasKO18 1 29 21 28 0 TcasKO19 1 19 13 19 0 TcasKO20 1 18 18 18 18 TcasKO21 1 16 16 16 16 TcasKO22 1 11 11 11 11 TcasKO23 1 41 41 41 41 TcasKO24 1 7 7 7 7 TcasKO25 1 3 0 3 3 TcasKO26 1 11 11 11 11 TcasKO27 1 10 10 10 10 TcasKO28 2 75 74 148 121 TcasKO29 2 18 17 35 0 TcasKO30 2 57 57 114 0 TcasKO34 1 77 77 77 77 TcasKO35 4 75 74 148 115 TcasKO36 1 122 120 120 0 TcasKO37 4 94 110 235 236 TcasKO39 1 3 0 3 3 TcasKO40 2 122 0 103 120 TcasKO41 1 20 17 20 20 LocFaults se compare tres favorablement a BugAssist Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 18/23
  • 47. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Conclusion Approche de localisation d'erreurs bornee Exploration DFS bornee Calcul des MCS borne ! Pour emp^echer l'explosion combinatoire Basee sur l'utilisation des solveurs de contraintes LocFaults fournit des resultats plus precis et plus pertinents par rapport a BugAssist ! Les temps des deux outils sont similaires LocFaults localise frequemment les erreurs pour les programmes TCAS Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
  • 48. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Conclusion Approche de localisation d'erreurs bornee Exploration DFS bornee Calcul des MCS borne ! Pour emp^echer l'explosion combinatoire Basee sur l'utilisation des solveurs de contraintes LocFaults fournit des resultats plus precis et plus pertinents par rapport a BugAssist ! Les temps des deux outils sont similaires LocFaults localise frequemment les erreurs pour les programmes TCAS Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
  • 49. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Conclusion Approche de localisation d'erreurs bornee Exploration DFS bornee Calcul des MCS borne ! Pour emp^echer l'explosion combinatoire Basee sur l'utilisation des solveurs de contraintes LocFaults fournit des resultats plus precis et plus pertinents par rapport a BugAssist ! Les temps des deux outils sont similaires LocFaults localise frequemment les erreurs pour les programmes TCAS Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
  • 50. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Conclusion Approche de localisation d'erreurs bornee Exploration DFS bornee Calcul des MCS borne ! Pour emp^echer l'explosion combinatoire Basee sur l'utilisation des solveurs de contraintes LocFaults fournit des resultats plus precis et plus pertinents par rapport a BugAssist ! Les temps des deux outils sont similaires LocFaults localise frequemment les erreurs pour les programmes TCAS Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 19/23
  • 51. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Perspectives Nouvelle version incrementale de l'algorithme Traiter des programmes avec boucles Etendre notre implementation pour supporter les instructions non-lineaires plus complexes par l'usage des solveurs specialises Experimenter plus de programmes reels Traiter les instructions avec calcul sur les ottants ! Utiliser des solveurs specialises sur les ottants Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
  • 52. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Perspectives Nouvelle version incrementale de l'algorithme Traiter des programmes avec boucles Etendre notre implementation pour supporter les instructions non-lineaires plus complexes par l'usage des solveurs specialises Experimenter plus de programmes reels Traiter les instructions avec calcul sur les ottants ! Utiliser des solveurs specialises sur les ottants Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
  • 53. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Perspectives Nouvelle version incrementale de l'algorithme Traiter des programmes avec boucles Etendre notre implementation pour supporter les instructions non-lineaires plus complexes par l'usage des solveurs specialises Experimenter plus de programmes reels Traiter les instructions avec calcul sur les ottants ! Utiliser des solveurs specialises sur les ottants Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
  • 54. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Perspectives Nouvelle version incrementale de l'algorithme Traiter des programmes avec boucles Etendre notre implementation pour supporter les instructions non-lineaires plus complexes par l'usage des solveurs specialises Experimenter plus de programmes reels Traiter les instructions avec calcul sur les ottants ! Utiliser des solveurs specialises sur les ottants Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
  • 55. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Perspectives Nouvelle version incrementale de l'algorithme Traiter des programmes avec boucles Etendre notre implementation pour supporter les instructions non-lineaires plus complexes par l'usage des solveurs specialises Experimenter plus de programmes reels Traiter les instructions avec calcul sur les ottants ! Utiliser des solveurs specialises sur les ottants Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 20/23
  • 56. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Merci pour votre attention. Quelles sont vos questions ? Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 21/23
  • 57. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin d'une deviation non minimale: fi0 j0; k1 = 1 ^ i0! = j0g Conditions deviees: fi0 j0; (k1 = 1 ^ i0! = j0)g P = fi0 = 0; j0 = 1; k0 = 0; k1 = 0; r1 = 1g P [ fr1 = ji jjg est consistant La deviation n'est pas minimale CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else (deviation) k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If (deviation) Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg is SAT Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 22/23
  • 58. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Exemple Le chemin d'une deviation non minimale: fi0 j0; k1 = 1 ^ i0! = j0g Conditions deviees: fi0 j0; (k1 = 1 ^ i0! = j0)g P = fi0 = 0; j0 = 1; k0 = 0; k1 = 0; r1 = 1g P [ fr1 = ji jjg est consistant La deviation n'est pas minimale CE:f(i0 == 0) ^ (j0 == 1)g k0 = 0 i0 j0 If Else (deviation) k1 = k0 + 2 Error k1 = k0 k1 = 1 ^ i0! = j0 If (deviation) Else r1 = j0 i0 r1 = i0 j0 POST:fr1 == ji jjg is SAT Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 22/23
  • 59. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 60. n 13
  • 61. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 62. n 18 k k + 1 19
  • 63. n 20 retourner MCS 21
  • 64. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 65. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 66. n 13
  • 67. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 68. n 18 k k + 1 19
  • 69. n 20 retourner MCS 21
  • 70. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 71. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 72. n 13
  • 73. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 74. n 18 k k + 1 19
  • 75. n 20 retourner MCS 21
  • 76. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 77. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 78. n 13
  • 79. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 80. n 18 k k + 1 19
  • 81. n 20 retourner MCS 21
  • 82. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 83. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 84. n 13
  • 85. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 86. n 18 k k + 1 19
  • 87. n 20 retourner MCS 21
  • 88. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 89. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 90. n 13
  • 91. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 92. n 18 k k + 1 19
  • 93. n 20 retourner MCS 21
  • 94. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23
  • 95. Introduction Approche Exemple Etat de l'art Experimentation Conclusion et perspectives Approche Algorithme de Liton et Sakallah pour calculer les MCS 1 Fonction MCS(C,MCSb) Entrees: C: Ensemble de contraintes infaisable, MCSb: Entier Sorties: MCS: Liste de MCS de C de cardinalite inferieure a MCSb 2 debut 3 C0 AddYVars(C); MCS ;; k 1; 4 tant que SAT(C0) ^ k MCSb faire 5 C0 k C0 ^ AtMost(f:y1; :y2; :::; :yng,k) 6 tant que SAT(C0 k ) faire 7 newMCS ; 8 pour chaque indicateur yi faire 9 Soit yi l'indicateur de la contrainte ci 2 C, et val(yi ) la valeur de yi dans la solution calculee de C0 k . 10 si val(yi ) = 0 alors 11 newMCS newMCS [ fci g. 12
  • 96. n 13
  • 97. n 14 MCS:add(newMCS). 15 C0 k C0 k ^ BlockingClause(newMCS) 16 C0 C0 ^ BlockingClause(newMCS) 17
  • 98. n 18 k k + 1 19
  • 99. n 20 retourner MCS 21
  • 100. n Bekkouche Mohammed, Collavizza Helene, Rueher Michel | Localisation d'erreurs 23/23