SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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

Tendances (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
 

Similaire à 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
 
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
 

Similaire à 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
 

Plus de 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
 

Plus 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
 

Dernier

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

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

Notes de l'éditeur

  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)