c ues for s cent
play

C UES FOR S CENT I NTENSIFICATION IN D EBUGGING Alexandre Perez and - PowerPoint PPT Presentation

C UES FOR S CENT I NTENSIFICATION IN D EBUGGING Alexandre Perez and Rui Abreu Faculty of Engineering University of Porto, Portugal November 4th 2013, International Workshop on Program Debugging F AULT L OCALIZATION Runs mid() { Suspiciousness


  1. C UES FOR S CENT I NTENSIFICATION IN D EBUGGING Alexandre Perez and Rui Abreu Faculty of Engineering University of Porto, Portugal November 4th 2013, International Workshop on Program Debugging

  2. F AULT L OCALIZATION Runs mid() { Suspiciousness 1 2 3 4 5 6 int x,y,z,m; 0.41 read(“Enter 3 numbers:”,x,y,z); 0.41 m = z; 0.41 if (y<z) { 0.50 if (x<y) 0.0 m = y; 0.58 else if (x<z) 0.71 m = y; // ***BUG*** 0.0 } else { 0.0 if (x>y) 0.0 m = y; 0.0 else if (x>z) 0.0 m = x; 0.0 } 0.41 print(“Middle number is:”,m); } 2

  3. F AULT L OCALIZATION Runs mid() { Suspiciousness 1 2 3 4 5 6 int x,y,z,m; 0.41 read(“Enter 3 numbers:”,x,y,z); 0.41 m = z; Are Automated Debugging Techniques 0.41 if (y<z) { 0.50 if (x<y) Actually Helping Programmers? 0.0 m = y; 0.58 else if (x<z) 0.71 m = y; // ***BUG*** Chris Parnin and Alessandro Orso 0.0 } else { G e o r g i a I n 0.0 if (x>y) s t i t u t e o f T e c C h n o o l l l o e g g e y o f C {chris.parnin|orso}@gatech.edu o m 0.0 m = y; p u t i n g ABSTRACT 0.0 else if (x>z) 0.0 m = x; is notoriously di ffi cult and extremely time con- 0.0 } esearchers have therefore invested a co second activity, fault understandin e ff ort in developi the root caus 0.41 print(“Middle number is:”,m); } 3

  4. I NFORMATION F ORAGING Predator: person debugging the program. Prey: what the predator seeks to know to pinpoint the fault. 4

  5. I NFORMATION F ORAGING Proximal cues: runtime behaviors that suggest information relative to the prey. Information scent: perceived likelihood that a cue will potentially lead to the fault. Topology: is the collection of paths through which the programmer can navigate. 5

  6. I NFORMATION F ORAGING ✓ information gain ◆ choice = max cost 6

  7. S UNBURST 7

  8. S UNBURST 8

  9. S UNBURST 1 Project 1 8

  10. S UNBURST 1 Project 2 Source Folder 1 2 8

  11. S UNBURST 1 Project 2 Source Folder 3 Package 1 2 3 8

  12. S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 2 3 4 8

  13. S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 5 Class 2 3 4 5 8

  14. S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 5 Class 2 3 6 Method 4 5 6 8

  15. S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 5 Class 2 3 6 Method 4 5 6 7 Statement 7 8

  16. S UNBURST High Suspiciousness Low Suspiciousness 9

  17. S UNBURST 10

  18. S UNBURST Root Change 10

  19. 11

  20. Check it out at www.gzoltar.com 11

  21. I NFORMATION F ORAGING ✓ information gain ◆ choice = max cost 12

  22. I NFORMATION F ORAGING color coding and the hierarchical visualization increase information scent ✓ information gain ◆ choice = max cost interaction features can reduce the cost of navigation 12

  23. U SER S TUDY 40 Participants 13

  24. U SER S TUDY Students of the Master in Informatics and Computing Engineering at University of Porto 14

  25. U SER S TUDY 5+ years of Java/JUnit experience 15

  26. (De)serializes Java objects into XML 17 kLOC, 306 classes Participants were unfamiliar with the application http://xstream.codehaus.org/ 16

  27. com.thoughtworks.xstream.mapper.AnnotationMapper 454 final List<Object> parameter = new ArrayList<Object>(); 455 if (targetType == null) { 456 parameter.add(targetType); 457 } 458 final List<Object> arrays = new ArrayList<Object>(); 17

  28. com.thoughtworks.xstream.mapper.AnnotationMapper 454 final List<Object> parameter = new ArrayList<Object>(); 455 if (targetType == null) { 456 parameter.add(targetType); 457 } 458 final List<Object> arrays = new ArrayList<Object>(); == instead of != 17

  29. S ETUP Participants were asked to locate and fix the fault. Metric : time-to-green. Timeout : 30 minutes. 18

  30. C ONTROL G ROUP Find and fix the fault without the aid of GZoltar. 7 out of 20 participants completed the task. 19

  31. C ONTROL G ROUP Average time: 23.4 minutes* *Those that did not find the fault were assigned as taking the maximum time (30 minutes) 20

  32. E XPERIMENTAL G ROUP Find and fix the fault with the aid of GZoltar. All participants completed the task. 21

  33. E XPERIMENTAL G ROUP Average time: 7.9 minutes 22

  34. 23

  35. F AULT L OCALIZATION Runs mid() { Suspiciousness 1 2 3 4 5 6 int x,y,z,m; read(“Enter 3 numbers:”,x,y,z); 0.41 m = z; 0.41 if (y<z) { 0.41 if (x<y) 0.50 m = y; 0.0 else if (x<z) 0.58 0.71 m = y; // ***BUG*** 0.0 } else { 0.0 if (x>y) 0.0 m = y; else if (x>z) 0.0 m = x; 0.0 } 0.0 print(“Middle number is:”,m); 0.41 } 24

  36. F AULT L OCALIZATION I NFORMATION F ORAGING Runs mid() { Proximal cues: runtime behaviors that suggest Suspiciousness 1 2 3 4 5 6 int x,y,z,m; read(“Enter 3 numbers:”,x,y,z); 0.41 information relative to the prey. m = z; 0.41 if (y<z) { 0.41 if (x<y) 0.50 m = y; 0.0 Information scent: perceived likelihood that a cue else if (x<z) 0.58 0.71 m = y; // ***BUG*** will potentially lead to the fault. 0.0 } else { 0.0 if (x>y) 0.0 m = y; else if (x>z) 0.0 m = x; 0.0 Topology: is the collection of paths through which } 0.0 print(“Middle number is:”,m); 0.41 the programmer can navigate. } 24

  37. F AULT L OCALIZATION I NFORMATION F ORAGING Runs mid() { Proximal cues: runtime behaviors that suggest Suspiciousness 1 2 3 4 5 6 int x,y,z,m; read(“Enter 3 numbers:”,x,y,z); 0.41 information relative to the prey. m = z; 0.41 if (y<z) { 0.41 if (x<y) 0.50 m = y; 0.0 Information scent: perceived likelihood that a cue else if (x<z) 0.58 0.71 m = y; // ***BUG*** will potentially lead to the fault. 0.0 } else { 0.0 if (x>y) 0.0 m = y; else if (x>z) 0.0 m = x; 0.0 Topology: is the collection of paths through which } 0.0 print(“Middle number is:”,m); 0.41 the programmer can navigate. } S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 5 Class 2 3 6 Method 4 5 6 7 Statement 7 24

  38. F AULT L OCALIZATION I NFORMATION F ORAGING Runs mid() { Proximal cues: runtime behaviors that suggest Suspiciousness 1 2 3 4 5 6 int x,y,z,m; read(“Enter 3 numbers:”,x,y,z); 0.41 information relative to the prey. m = z; 0.41 if (y<z) { 0.41 if (x<y) 0.50 m = y; 0.0 Information scent: perceived likelihood that a cue else if (x<z) 0.58 0.71 m = y; // ***BUG*** will potentially lead to the fault. 0.0 } else { 0.0 if (x>y) 0.0 m = y; else if (x>z) 0.0 m = x; 0.0 Topology: is the collection of paths through which } 0.0 print(“Middle number is:”,m); 0.41 the programmer can navigate. } S UNBURST 1 Project 2 Source Folder 3 Package 4 File 1 5 Class 2 3 6 Method 4 5 6 7 Statement 7 24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend