SlideShare una empresa de Scribd logo
1 de 42
Are Automated Debugging Techniques Actually Helping Programmers? Chris Parnin     Georgia Tech @chrisparnin (twitter) Alessandro (Alex) Orso Georgia Tech @alexorso(twitter)
Finding bugs can be hard…
Automated debugging to the rescue! I’ll help you find location of bug!
How it works (Ranking-Based) I have calculated most likely location of bug! Give me a failing program. Calculating… Here is your ranked list of statements.
How it works (Ranking-Based) I have calculated most likely location of bug! Give me input. But how does a programmer usea ranked list of statements? Calculating… Here is your rankedlist of statements.
Conceptual Model 1) 2) 3) 4) … Here is a list of places to check out Ok, I will check out your suggestions one by one.
Conceptual Model 1) 2) 3) 4) … Found the bug!
A Skeptic Does the conceptual model make sense? Have we evaluated it?
Let’s see… Over 50 years of researchonautomated debugging. 2001. Statistical Debugging 1999. Delta Debugging 1981. Weiser. Program Slicing 1962. Symbolic Debugging (UNIVAC FLIT)
 Did you see anything?
Only 5 papers have evaluated  automated debugging techniques  with actual programmers. ,[object Object]
Most done on programs < 100 LOC,[object Object]
Assumption #1: Perfect bug understanding must also exist when using automated tool. Do you see a bug?
Assumption #2 Programmer inspects statements linearly and exhaustively until finding bug. Is this realistic?
How can we evaluate the conceptual model? How could we measure the benefit of an automated tool?
Conceptual model: What if gave a developer a list of statements to inspect? How would they use the list? Would they be able to see the bug after visiting it? Is ranking important?
Benefit: What if we evaluate programmers with and without automated debuggers? > ? We also could observe what works and what doesn’t.
Study Setup 34 Developers 2 Debugging Tasks Automated debugging tool
Study Setup Participants: 34 developers MS/Phd Students Different levels of expertise 	(low,medium,high)
Study Setup Software subjects: Tetris (2.5 kloc) NanoXML (4.5 kloc)
Study Setup 21 Tools: 	Traditional debugger  	Eclipse ranking plugin (logged activity)
Study Setup Tasks: 	Debugging fault 	30 minutes per task Questionnaire at end
Bugs Bug #1: Pressing rotate key causes  square figure to move up!
Bugs When running the NanoXML program (main is in class Parser1_vw_v1), the following exception is thrown: Exception in thread "main" net.n3.nanoxml.XMLParseException:  XML Not Well-Formed at Line 19: Closing tag does not match opening tag: `ns:Bar' != `:Bar' at net.n3.nanoxml.XMLUtil.errorWrongClosingTag(XMLUtil.java:497) at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:438) 	at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202) 	at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:453) 	at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202) 	at net.n3.nanoxml.StdXMLParser.scanData(StdXMLParser.java:159) 	at net.n3.nanoxml.StdXMLParser.parse(StdXMLParser.java:133) 	at net.n3.nanoxml.Parser1_vw_v1.main(Parser1_vw_v1.java:50)   The input, testvm_22.xml, contains the following input xml document: <Foo a=”test”>    <ns:Bar>      <Blah x=”1” ns:x=”2”/>   </ns:Bar> </Foo> Bug #2: Exception on input xml document.
Study Setup: Groups
Study Setup: Groups 26 A B
Study Setup: Groups C D Rank Rank
Results
How do developers use a ranked list? Lowperformers did follow list. Survey says searched through statements. 37% of visits jumped avg. 10. Navigation pattern zig-zagged (avg. 10 zigzags)
Is perfect bug understanding realistic? Only 1 out of 10 programmers who clicked on bug stopped investigation. The others spent on average ten minutes continuing investigation.
Are automated toolsspeeding up debugging? = Traditional Automated group No ✘
Are automated toolsspeeding up debugging? No ✘ = Traditional Automated group Rank No = ✘ Traditional Automated group
Are automated toolsspeeding up debugging? = Traditional Automated group No ✘
But… Stratifying Participants High Performers Medium Performers Low Performers ✔ ✔ ✘ ✔ ✘ ✘
Significant difference for “experts” High Performers On average, 5 minutes faster ✔ ✔
Are automated toolsspeeding up debugging? No ✘ = Traditional Automated group Yes! ✔ Experts Experts > Traditional Automated group
Observations Developers searched through statements. Developers without tool fixed symptoms (not problem). Developers wanted explanations rather than recommendations.
Future directions
Moving beyond fault space reduction 39 We can keep building better tools. But we can’t keep abstracting away the human.
Performing further studies Does different granularity work better for inspection?  Documents?  Methods? How does different interfaces or visualizations impact technique? Do other automated debugging techniques fare any better? 40
How do developers use a ranked list? Is perfect bug understanding realistic? Are Automated Debugging Tools Helpful? Human studies, human studies, human studies!
64,000,000 miles 800,000 miles 35 years of  Scientific Progress 1969 2004 42

Más contenido relacionado

La actualidad más candente

RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
dcieslak
 
The Art Of Debugging
The Art Of DebuggingThe Art Of Debugging
The Art Of Debugging
svilen.ivanov
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
Philip Johnson
 

La actualidad más candente (20)

Qa mockup interview for automation testing
Qa mockup interview for automation testingQa mockup interview for automation testing
Qa mockup interview for automation testing
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
The Art Of Debugging
The Art Of DebuggingThe Art Of Debugging
The Art Of Debugging
 
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
 
Unit testing-patterns
Unit testing-patternsUnit testing-patterns
Unit testing-patterns
 
[Rakuten TechConf2014] [G-4] Beyond Agile Testing to Lean Development
[Rakuten TechConf2014] [G-4] Beyond Agile Testing to Lean Development[Rakuten TechConf2014] [G-4] Beyond Agile Testing to Lean Development
[Rakuten TechConf2014] [G-4] Beyond Agile Testing to Lean Development
 
When will ai take my job as a tester
When will ai take my job as a testerWhen will ai take my job as a tester
When will ai take my job as a tester
 
Seven Fundamentals of a Successful Testing Team
Seven Fundamentals of a Successful Testing TeamSeven Fundamentals of a Successful Testing Team
Seven Fundamentals of a Successful Testing Team
 
Misconceptions Of Unit Testing
Misconceptions Of Unit TestingMisconceptions Of Unit Testing
Misconceptions Of Unit Testing
 
How to apply AI to Testing
How to apply AI to TestingHow to apply AI to Testing
How to apply AI to Testing
 
.Net Debugging Techniques
.Net Debugging Techniques.Net Debugging Techniques
.Net Debugging Techniques
 
Testing Philosphies
Testing PhilosphiesTesting Philosphies
Testing Philosphies
 
ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11ISTQB Certified Tester Exam Question Papers and Answers - 11
ISTQB Certified Tester Exam Question Papers and Answers - 11
 
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
 
Software Testing 1/5
Software Testing 1/5Software Testing 1/5
Software Testing 1/5
 
Automation testing interview pdf org
Automation testing interview pdf orgAutomation testing interview pdf org
Automation testing interview pdf org
 
Debugging
DebuggingDebugging
Debugging
 
Your Tests Lack Vision: Adding Eyes to Your Automation Framework - Angie Jone...
Your Tests Lack Vision: Adding Eyes to Your Automation Framework - Angie Jone...Your Tests Lack Vision: Adding Eyes to Your Automation Framework - Angie Jone...
Your Tests Lack Vision: Adding Eyes to Your Automation Framework - Angie Jone...
 
Meetup of test mini conference on ai in testing
Meetup of test mini conference  on ai in testingMeetup of test mini conference  on ai in testing
Meetup of test mini conference on ai in testing
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
 

Similar a Are Automated Debugging Techniques Actually Helping Programmers

I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
Peter Presnell
 
0136 ideal static_analyzer
0136 ideal static_analyzer0136 ideal static_analyzer
0136 ideal static_analyzer
PVS-Studio
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
SALT Lab @ UBC
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
Rathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
Rathna Priya
 
Programming Fundamentals using C++
Programming Fundamentals using C++Programming Fundamentals using C++
Programming Fundamentals using C++
ALI RAZA
 
S D D Program Development Tools
S D D  Program  Development  ToolsS D D  Program  Development  Tools
S D D Program Development Tools
gavhays
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
Kinshuk Adhikary
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
Rachel Davis
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
Aron Ahmadia
 

Similar a Are Automated Debugging Techniques Actually Helping Programmers (20)

The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
The Limits of Unit Testing by Craig Stuntz
The Limits of Unit Testing by Craig StuntzThe Limits of Unit Testing by Craig Stuntz
The Limits of Unit Testing by Craig Stuntz
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Debugging
DebuggingDebugging
Debugging
 
An ideal static analyzer, or why ideals are unachievable
An ideal static analyzer, or why ideals are unachievableAn ideal static analyzer, or why ideals are unachievable
An ideal static analyzer, or why ideals are unachievable
 
0136 ideal static_analyzer
0136 ideal static_analyzer0136 ideal static_analyzer
0136 ideal static_analyzer
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
 
Programming Fundamentals using C++
Programming Fundamentals using C++Programming Fundamentals using C++
Programming Fundamentals using C++
 
The Art of Debugging.pptx
The Art of Debugging.pptxThe Art of Debugging.pptx
The Art of Debugging.pptx
 
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
How to Fix Hundreds of Bugs in Legacy Code and Not Die (Unreal Engine 4)
 
midterm_fa07.pdf
midterm_fa07.pdfmidterm_fa07.pdf
midterm_fa07.pdf
 
S D D Program Development Tools
S D D  Program  Development  ToolsS D D  Program  Development  Tools
S D D Program Development Tools
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
 
White box testing
White box testingWhite box testing
White box testing
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 

Más de Chris Parnin

DESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESSDESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESS
Chris Parnin
 
Evaluating Cues for Resuming Interrupted Programming TAsks
Evaluating Cues for Resuming Interrupted Programming TAsksEvaluating Cues for Resuming Interrupted Programming TAsks
Evaluating Cues for Resuming Interrupted Programming TAsks
Chris Parnin
 

Más de Chris Parnin (11)

Crowd Documentation - How Programmer Social Communities are Flipping Software...
Crowd Documentation - How Programmer Social Communities are Flipping Software...Crowd Documentation - How Programmer Social Communities are Flipping Software...
Crowd Documentation - How Programmer Social Communities are Flipping Software...
 
DESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESSDESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESS
 
Programmer Information Needs After Memory Failure
Programmer Information Needs After Memory FailureProgrammer Information Needs After Memory Failure
Programmer Information Needs After Memory Failure
 
Building usage contexts from interaction history
Building usage contexts from interaction historyBuilding usage contexts from interaction history
Building usage contexts from interaction history
 
A Catalogue of Code Smell Visualizations
A Catalogue of Code Smell VisualizationsA Catalogue of Code Smell Visualizations
A Catalogue of Code Smell Visualizations
 
Resumption strategies
Resumption strategiesResumption strategies
Resumption strategies
 
Subvocalization -- Towards Hearing the Inner Thoughts of Developers
Subvocalization -- Towards Hearing the Inner Thoughts of DevelopersSubvocalization -- Towards Hearing the Inner Thoughts of Developers
Subvocalization -- Towards Hearing the Inner Thoughts of Developers
 
Java Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or IgnoredJava Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or Ignored
 
Evaluating Cues for Resuming Interrupted Programming TAsks
Evaluating Cues for Resuming Interrupted Programming TAsksEvaluating Cues for Resuming Interrupted Programming TAsks
Evaluating Cues for Resuming Interrupted Programming TAsks
 
Cognitive Neuroscience of Memory for Software Engineers
Cognitive Neuroscience of Memory for Software EngineersCognitive Neuroscience of Memory for Software Engineers
Cognitive Neuroscience of Memory for Software Engineers
 
Code Pad
Code PadCode Pad
Code Pad
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Are Automated Debugging Techniques Actually Helping Programmers

  • 1. Are Automated Debugging Techniques Actually Helping Programmers? Chris Parnin Georgia Tech @chrisparnin (twitter) Alessandro (Alex) Orso Georgia Tech @alexorso(twitter)
  • 2. Finding bugs can be hard…
  • 3. Automated debugging to the rescue! I’ll help you find location of bug!
  • 4. How it works (Ranking-Based) I have calculated most likely location of bug! Give me a failing program. Calculating… Here is your ranked list of statements.
  • 5. How it works (Ranking-Based) I have calculated most likely location of bug! Give me input. But how does a programmer usea ranked list of statements? Calculating… Here is your rankedlist of statements.
  • 6. Conceptual Model 1) 2) 3) 4) … Here is a list of places to check out Ok, I will check out your suggestions one by one.
  • 7. Conceptual Model 1) 2) 3) 4) … Found the bug!
  • 8. A Skeptic Does the conceptual model make sense? Have we evaluated it?
  • 9. Let’s see… Over 50 years of researchonautomated debugging. 2001. Statistical Debugging 1999. Delta Debugging 1981. Weiser. Program Slicing 1962. Symbolic Debugging (UNIVAC FLIT)
  • 10. Did you see anything?
  • 11.
  • 12.
  • 13. Assumption #1: Perfect bug understanding must also exist when using automated tool. Do you see a bug?
  • 14. Assumption #2 Programmer inspects statements linearly and exhaustively until finding bug. Is this realistic?
  • 15. How can we evaluate the conceptual model? How could we measure the benefit of an automated tool?
  • 16. Conceptual model: What if gave a developer a list of statements to inspect? How would they use the list? Would they be able to see the bug after visiting it? Is ranking important?
  • 17. Benefit: What if we evaluate programmers with and without automated debuggers? > ? We also could observe what works and what doesn’t.
  • 18. Study Setup 34 Developers 2 Debugging Tasks Automated debugging tool
  • 19. Study Setup Participants: 34 developers MS/Phd Students Different levels of expertise (low,medium,high)
  • 20. Study Setup Software subjects: Tetris (2.5 kloc) NanoXML (4.5 kloc)
  • 21. Study Setup 21 Tools: Traditional debugger Eclipse ranking plugin (logged activity)
  • 22. Study Setup Tasks: Debugging fault 30 minutes per task Questionnaire at end
  • 23. Bugs Bug #1: Pressing rotate key causes square figure to move up!
  • 24. Bugs When running the NanoXML program (main is in class Parser1_vw_v1), the following exception is thrown: Exception in thread "main" net.n3.nanoxml.XMLParseException: XML Not Well-Formed at Line 19: Closing tag does not match opening tag: `ns:Bar' != `:Bar' at net.n3.nanoxml.XMLUtil.errorWrongClosingTag(XMLUtil.java:497) at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:438) at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202) at net.n3.nanoxml.StdXMLParser.processElement(StdXMLParser.java:453) at net.n3.nanoxml.StdXMLParser.scanSomeTag(StdXMLParser.java:202) at net.n3.nanoxml.StdXMLParser.scanData(StdXMLParser.java:159) at net.n3.nanoxml.StdXMLParser.parse(StdXMLParser.java:133) at net.n3.nanoxml.Parser1_vw_v1.main(Parser1_vw_v1.java:50)   The input, testvm_22.xml, contains the following input xml document: <Foo a=”test”> <ns:Bar> <Blah x=”1” ns:x=”2”/> </ns:Bar> </Foo> Bug #2: Exception on input xml document.
  • 27. Study Setup: Groups C D Rank Rank
  • 29. How do developers use a ranked list? Lowperformers did follow list. Survey says searched through statements. 37% of visits jumped avg. 10. Navigation pattern zig-zagged (avg. 10 zigzags)
  • 30. Is perfect bug understanding realistic? Only 1 out of 10 programmers who clicked on bug stopped investigation. The others spent on average ten minutes continuing investigation.
  • 31. Are automated toolsspeeding up debugging? = Traditional Automated group No ✘
  • 32. Are automated toolsspeeding up debugging? No ✘ = Traditional Automated group Rank No = ✘ Traditional Automated group
  • 33. Are automated toolsspeeding up debugging? = Traditional Automated group No ✘
  • 34. But… Stratifying Participants High Performers Medium Performers Low Performers ✔ ✔ ✘ ✔ ✘ ✘
  • 35. Significant difference for “experts” High Performers On average, 5 minutes faster ✔ ✔
  • 36. Are automated toolsspeeding up debugging? No ✘ = Traditional Automated group Yes! ✔ Experts Experts > Traditional Automated group
  • 37. Observations Developers searched through statements. Developers without tool fixed symptoms (not problem). Developers wanted explanations rather than recommendations.
  • 39. Moving beyond fault space reduction 39 We can keep building better tools. But we can’t keep abstracting away the human.
  • 40. Performing further studies Does different granularity work better for inspection? Documents? Methods? How does different interfaces or visualizations impact technique? Do other automated debugging techniques fare any better? 40
  • 41. How do developers use a ranked list? Is perfect bug understanding realistic? Are Automated Debugging Tools Helpful? Human studies, human studies, human studies!
  • 42. 64,000,000 miles 800,000 miles 35 years of Scientific Progress 1969 2004 42
  • 43. 352 LOC (median 8 programs) 63.5 LOC (median 4 programs) 30 years 30 years of Scientific Progress 1981 2011 43

Notas del editor

  1. Just ask this guy.
  2. Maybe you have some questions…
  3. Maybe you have some questions…
  4. Cons
  5. 58,300 papers on automated debugging…  1,170 this year! (google scholar)
  6. Both linear and exhaustive?
  7. Do two things
  8. Intutively, mental model etc
  9. 37% of the visits jumped more than one position and, on average, each jump skipped 10 positionsEach participant zigzagged, with an average of 10.3 zigzags,with an overall range between 1 and 36 zigzags.would scan the ranked list to find a statement that might confirm theirhypothesis about the cause of the failure, whereas othertimes they skipped statements that did not appear relevant.
  10. Or are we blind to the bugs in front of us.
  11. Info graphics, N=X
  12. Can we leveragehypothesises
  13. Does perfect bug understanding exist?Are Automated Debugging Tools Faster?
  14. Siemens 138346299297402483512SIR 62 subjects (229)