Lorsqu'un programme est non-conforme vis-à-vis de sa spécification ou dit erroné, fournir des informations utiles à la localisation des erreurs est une tâche importante pour débugger le programme mais complexe en même temps. Le but est de fournir un ensemble réduit d'instructions suspectes permettant de comprendre l'origine des erreurs dans le programme. Dans ce papier nous proposons une nouvelle approche basée sur les contraintes pour l'aide à la localisation d'erreurs pour lequel un contre-exemple est disponible, c'est-à-dire que l'on dispose d'un cas de test prouvant la non-conformité.
A partir du contre-exemple, notre approche génère un système de contraintes pour chaque chemin du CFG (Control Flow Graphe) pour lequel au plus k instructions conditionnelles sont suspectées. Après, elle calcule les MCS (Minimal Correction Subsets) d'une taille bornée pour chaque chemin erroné. Le retrait d'un de ces ensemble de contraintes produit un MSS (Maximal Satisfiable Subset), un ensemble qui ne viole plus la postcondition. Nous adaptons pour cela un algorithme générique proposé par Liffiton et Sakallah afin de pouvoir traiter plus efficacement des programmes avec des calculs numériques. Nous présentons les résultats de nos expérimentations qui sont très encourageants.
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
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
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
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
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
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
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
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