SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere Àhnliche Inhalte

Was ist angesagt?

Qa mockup interview for automation testing
Qa mockup interview for automation testingQa mockup interview for automation testing
Qa mockup interview for automation testingKadharBashaJ
 
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 Debuggingsvilen.ivanov
 
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)Yuriy Tymchuk
 
[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 DevelopmentRakuten Group, Inc.
 
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 testerSAP SE
 
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 TeamTechWell
 
Misconceptions Of Unit Testing
Misconceptions Of Unit TestingMisconceptions Of Unit Testing
Misconceptions Of Unit TestingTerry Yin
 
How to apply AI to Testing
How to apply AI to TestingHow to apply AI to Testing
How to apply AI to TestingSAP SE
 
.Net Debugging Techniques
.Net Debugging Techniques.Net Debugging Techniques
.Net Debugging TechniquesBala Subra
 
Testing Philosphies
Testing PhilosphiesTesting Philosphies
Testing PhilosphiesRob Kaufman
 
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 - 11BDDazza
 
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...TechTalks
 
Software Testing 1/5
Software Testing 1/5Software Testing 1/5
Software Testing 1/5Damian T. Gordon
 
Automation testing interview pdf org
Automation testing interview pdf orgAutomation testing interview pdf org
Automation testing interview pdf orgTestbytes
 
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...LongNguyen973
 
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 testingKai Lepler
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testingPhilip Johnson
 

Was ist angesagt? (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
 

Ähnlich wie Are Automated Debugging Techniques Actually Helping Programmers

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 StuntzQA or the Highway
 
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 StuntzQA or the Highway
 
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 TestingPeter Presnell
 
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 unachievablePVS-Studio
 
0136 ideal static_analyzer
0136 ideal static_analyzer0136 ideal static_analyzer
0136 ideal static_analyzerPVS-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 ReportsSALT Lab @ UBC
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersAndrey Karpov
 
Programming Fundamentals using C++
Programming Fundamentals using C++Programming Fundamentals using C++
Programming Fundamentals using C++ALI RAZA
 
The Art of Debugging.pptx
The Art of Debugging.pptxThe Art of Debugging.pptx
The Art of Debugging.pptxKarthigaiSelviS3
 
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)Andrey Karpov
 
S D D Program Development Tools
S D D  Program  Development  ToolsS D D  Program  Development  Tools
S D D Program Development Toolsgavhays
 
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-TestingMary 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 TestingRachel Davis
 
White box testing
White box testingWhite box testing
White box testingAbdul Basit
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesAron Ahmadia
 

Ähnlich wie 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
 

Mehr von Chris Parnin

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...Chris Parnin
 
DESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESSDESIGNING FOR INTERRUPTION AND LIVENESS
DESIGNING FOR INTERRUPTION AND LIVENESSChris Parnin
 
Programmer Information Needs After Memory Failure
Programmer Information Needs After Memory FailureProgrammer Information Needs After Memory Failure
Programmer Information Needs After Memory FailureChris Parnin
 
Building usage contexts from interaction history
Building usage contexts from interaction historyBuilding usage contexts from interaction history
Building usage contexts from interaction historyChris Parnin
 
A Catalogue of Code Smell Visualizations
A Catalogue of Code Smell VisualizationsA Catalogue of Code Smell Visualizations
A Catalogue of Code Smell VisualizationsChris Parnin
 
Resumption strategies
Resumption strategiesResumption strategies
Resumption strategiesChris Parnin
 
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 DevelopersChris Parnin
 
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 IgnoredChris 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 TAsksChris Parnin
 
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 EngineersChris Parnin
 

Mehr von 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
 

KĂŒrzlich hochgeladen

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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...apidays
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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?Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

KĂŒrzlich hochgeladen (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

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

Hinweis der Redaktion

  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)