Une approche incrémentale combinant les techniques
BMC et un problème CSP pour l’aide à la localisation
d’erreurs
JFPC 201...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
25
Une approche
incrémentale
combinant les
techniques BMC et un
problème CSP pour
l’aide à la localisation
d’erreurs
Moham...
Prochain SlideShare
Chargement dans…5
×

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

11 416 vues

Publié le

Dans cet exposé, nous présentons notre algorithme amélioré de localisation d'erreurs a partir de contre-exemples, LocFaults, basé sur la programmation par contraintes et dirigé par les flots. Cet algorithme analyse les chemins du CFG (Control Flow Graph) du programme erroné pour calculer les sous-ensembles d'instructions suspectes permettant de corriger le programme. En effet, nous générons un système de contraintes pour les chemins du graphe de flot de contrôle pour lesquels au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les MCS (Minimal Correction Set) de taille limitée sur chacun de ces chemins. La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfiable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satis-faisant la postcondition. Pour calculer les MCS, nous étendons l'algorithme générique proposé par Liffiton et Sakallah dans le but de traiter des programmes avec des instructions numériques plus efficace-ment. Nous nous intéressons a présenter l'aspect incrémental de ce nouvel algorithme qui n'est pas encore présenté aux JFPC.

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
11 416
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8 092
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

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

×