SlideShare a Scribd company logo
How Do Developers Toggle Breakpoints?
– Observational Studies –
Fabio Petrillo, Hyan Mandian, Aiko Yamashita, Foutse Khomh, Yann-Gaël Guéhéneuc
Polytechnique Montréal, Canada
UniRitter, Brazil
Oslo and Akershus University College of Applied Sciences, Norway
IEEE International Conference on Software Quality, Reliability and Security (QRS’2017)
Is debugging important?
Developers spend over two-thirds of their time (68%) investigating code,
and the majority of this time is spent debugging code (33%) [LaToza
2010].
LaToza, T. D., & Myers, B. a. (2010). Developers ask reachability questions. 2010 ACM/IEEE 32nd
International Conference on Software Engineering, 1, 185–194.
2
Is debugging important?
● Developers spend over two-thirds of their time (68%) investigating
code, and the majority of this time is spent debugging code (33%)
● 40% of the developers go to debug mode directly after they have
performed a change
● 63% of the developers used dynamic approaches to perform impact
analysis over their changes.
LaToza, T. D., & Myers, B. a. (2010). Developers ask reachability questions. 2010 ACM/IEEE 32nd
International Conference on Software Engineering, 1, 185–194.
S. Jiang, C. McMillan, and R. Santelices, “Do programmers do change impact analysis in debugging?”
Empirical Software Engineering, pp. 1–39, 2016. 3
During interactive debugging, lonely developers
navigate the source code
step into many statements
traverse dozens of method invocations
gain understanding about the system.
However, first, they have to SET a breakpoint.
4
Setting a breakpoint
● Setting a breakpoint is one of the most
frequently used features of IDEs
● To decide where to set a breakpoint, developers:
○ must use their observations
○ recall their experiences with similar tasks
○ formulate hypotheses about the task
5
Setting a breakpoint
● Tiarks and Röhms observed that developers have
difficulties in finding locations for setting the
breakpoints
● Suggesting that this is a difficult activity
Supporting developers to set appropriate
reakpoints could reduce debugging effort
R. Tiarks and T. Rö hm, “Challenges in Program Comprehension,” Softwaretechnik-Trends, vol. 32, no. 2,
pp. 19–20, May 2013. 6
However, no study has been performed on
how developers set breakpoints.
7
Study Design
8
Study design
● We analysed 45 video-recorded debugging
sessions
● Extracting breakpoint data
● 2 independent studies
○ Study 1: JabRef (own videos)
○ Study 2: PdfSam and Raptor (videos from
study Jiang et al. [3]
9
Study 1 - JabRef
● 20 developpers (8 freelancers and 12 students)
● 5 true tasks from JabRef issue system (GitHub)
● Performing debugging to locate the faults
● Maximum limit of one-hour per task
● Debugging data (breakpoints, stepping, method invocations)
were automatically collected by a Eclipse tracing plug-in.
● On-line post-experiment questionnaire to collect information
about the study
10
Study 2 - PdfSam and Raptor
● Re-analysis of 20 videos of debugging sessions available from
a study conducted by Jiang et al. [3]
● Study on change impact analysis
● One defect per system
● Fault correction tasks
11
Summary of Studies
● 3 different systems
● 7 different tasks
○ 5 bug locations
○ 2 bug corrections
● 307 breakpoints
● More than 10 hours of video
12
Results
13
RQ1: What is the effort (time) for setting the first breakpoint in relation to
the total effort for a debugging task?
Study 1 : in average participants spend 27% of the total
task duration to set the first breakpoint (std. Dev. 17%)
Study 2 : in average participants spend 23% of the total
task duration to set the first breakpoint (std. Dev. 17%)
14
We conclude that the effort for setting the first breakpoint takes
near one quarter of the total effort of
a single debugging session. This effort is important
and hints that debugging time could be reduced by
providing tool support for setting breakpoints.
15
RQ2: Is there a correlation between time of first breakpoint
and task’s elapsed time?
● there is a clear correlation (ρ = −0.47)
16
17
If developers toggle breakpoints
carefully, they complete tasks faster
than developers who toggle breakpoints
too quickly
18
RQ3: Are there consistent, common debugging trends to the types of
statements among developers?
19
Study 1 Study 2
Breakpoints per type of statement
RQ3: Are there consistent, common debugging trends to the types of
statements among developers?
20
Study 1 Study 2
Breakpoints per type of statement
Yes, there are trends on developers
chose a breakpoint. 50% of the
breakpoints were set on call statements
while loop statement the least common
(2-4%)
21
RQ4: Are there consistent, common debugging trends for
setting breakpoints on the same line, method, or class,
among developers?
22
23
24
Study 1 - JabRef
Breakpoints in the same line of code
Study 2 - PdfSam
Study 2 - Raptor
25
Study 1 - Breakpoints by class across different tasks
26
Study 1 - Methods with 5 or more breakpoints
Developers do not choose breakpoints lightly, but
there is a rationale in their setting breakpoints,
because different developers set breakpoints on the
same line of code for the same task and
different developers set breakpoints on the same type
or method for different tasks.
27
This results shows the usefulness of collecting and
sharing breakpoints to assist developers during
maintenance tasks, showing an opportunity
to recommend those locations as candidates for new
debugging sessions.
28
● Setting the first breakpoints is hard (~ 25% of task time)
● ~ 50% of the breakpoints were set on call statements
● When developers toggle breakpoints carefully, they complete tasks faster than
developers who toggle breakpoints too quickly
● Different developers set breakpoints on the same line of code for the same task
● Developers need tools that can assist them in locating adequate places to set
breakpoints in the code and our observations suggest the opportunity for a
breakpoint recommendation system
● Our work helps to build a grounded theory on the setting of breakpoints to
improve debuggers and other tool
● fill the gap in the literature about interactive debugging behaviors
● There is a lot of investigating about interactive debugging phenomena!
Final Remarks
29
IEEE International Conference on Software Quality, Reliability and Security (QRS’2017)
Thank you!
@petrillofabio
fabio@petrillo.com

More Related Content

What's hot

Lo 08
Lo 08Lo 08
Lo 08
liankei
 
Formal Versus Agile: Survival of the Fittest? (Paul Boca)
Formal Versus Agile: Survival of the Fittest? (Paul Boca)Formal Versus Agile: Survival of the Fittest? (Paul Boca)
Formal Versus Agile: Survival of the Fittest? (Paul Boca)
AdaCore
 
Open Bugs & Development Stages
Open Bugs & Development StagesOpen Bugs & Development Stages
Open Bugs & Development Stages
Nicolò Paternoster
 
MSR2017-Challenge
MSR2017-ChallengeMSR2017-Challenge
MSR2017-Challenge
Masud Rahman
 
Partitioned Based Regression Verification
Partitioned Based Regression VerificationPartitioned Based Regression Verification
Partitioned Based Regression Verification
Aung Thu Rha Hein
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
Roopesh Jhurani
 
JUnit with_mocking
JUnit with_mockingJUnit with_mocking
JUnit with_mocking
Zeeshan Khan
 
Benchmarking with JMH (riviera dev 2017)
Benchmarking with JMH (riviera dev 2017)Benchmarking with JMH (riviera dev 2017)
Benchmarking with JMH (riviera dev 2017)
Nenad Bogojevic
 
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSQUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
ijseajournal
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPT
suhasreddy1
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
Gail Murphy
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
Yasutaka Kamei
 
Notes on teaching software testing
Notes on teaching software testingNotes on teaching software testing
Notes on teaching software testing
Förderverein Technische Fakultät
 
Foundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justificationFoundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justification
Venera Romanova
 
Fundamentals of Testing 2
Fundamentals of Testing 2Fundamentals of Testing 2
Fundamentals of Testing 2
Hoang Nguyen
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
Thinking in software testing
Thinking in software testingThinking in software testing

What's hot (17)

Lo 08
Lo 08Lo 08
Lo 08
 
Formal Versus Agile: Survival of the Fittest? (Paul Boca)
Formal Versus Agile: Survival of the Fittest? (Paul Boca)Formal Versus Agile: Survival of the Fittest? (Paul Boca)
Formal Versus Agile: Survival of the Fittest? (Paul Boca)
 
Open Bugs & Development Stages
Open Bugs & Development StagesOpen Bugs & Development Stages
Open Bugs & Development Stages
 
MSR2017-Challenge
MSR2017-ChallengeMSR2017-Challenge
MSR2017-Challenge
 
Partitioned Based Regression Verification
Partitioned Based Regression VerificationPartitioned Based Regression Verification
Partitioned Based Regression Verification
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
JUnit with_mocking
JUnit with_mockingJUnit with_mocking
JUnit with_mocking
 
Benchmarking with JMH (riviera dev 2017)
Benchmarking with JMH (riviera dev 2017)Benchmarking with JMH (riviera dev 2017)
Benchmarking with JMH (riviera dev 2017)
 
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONSQUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
QUALITY METRICS OF TEST SUITES IN TESTDRIVEN DESIGNED APPLICATIONS
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPT
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
 
Notes on teaching software testing
Notes on teaching software testingNotes on teaching software testing
Notes on teaching software testing
 
Foundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justificationFoundation level sample_exam_v2.3_answers_and_justification
Foundation level sample_exam_v2.3_answers_and_justification
 
Fundamentals of Testing 2
Fundamentals of Testing 2Fundamentals of Testing 2
Fundamentals of Testing 2
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Thinking in software testing
Thinking in software testingThinking in software testing
Thinking in software testing
 

Similar to Qrs17a.ppt

Icpc16.ppt
Icpc16.pptIcpc16.ppt
Icpc16.ppt
Ptidej Team
 
Icpc16.ppt
Icpc16.pptIcpc16.ppt
Qrs16.ppt
Qrs16.pptQrs16.ppt
Qrs16.ppt
Qrs16.pptQrs16.ppt
Qrs16.ppt
Ptidej Team
 
Software tetsing paper related to industry
Software tetsing paper related to industrySoftware tetsing paper related to industry
Software tetsing paper related to industry
JavedKhan524377
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
Norman K Ma
 
Spm unit v-software maintenance-intro
Spm unit v-software maintenance-introSpm unit v-software maintenance-intro
Spm unit v-software maintenance-intro
Kanchana Devi
 
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
IJET - International Journal of Engineering and Techniques
 
Module 1_software engineering.pptx
Module 1_software engineering.pptxModule 1_software engineering.pptx
Module 1_software engineering.pptx
adityab33
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trends
Vladimir Kotov
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
TanishaKochak
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repository
mustafa sarac
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
RungrojMaipradit1
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks
sadique_ghitm
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
John Lewis
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
DylanTilbury1
 
Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...
IJERA Editor
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
acijjournal
 

Similar to Qrs17a.ppt (20)

Icpc16.ppt
Icpc16.pptIcpc16.ppt
Icpc16.ppt
 
Icpc16.ppt
Icpc16.pptIcpc16.ppt
Icpc16.ppt
 
Qrs16.ppt
Qrs16.pptQrs16.ppt
Qrs16.ppt
 
Qrs16.ppt
Qrs16.pptQrs16.ppt
Qrs16.ppt
 
Software tetsing paper related to industry
Software tetsing paper related to industrySoftware tetsing paper related to industry
Software tetsing paper related to industry
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
 
Spm unit v-software maintenance-intro
Spm unit v-software maintenance-introSpm unit v-software maintenance-intro
Spm unit v-software maintenance-intro
 
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
 
Module 1_software engineering.pptx
Module 1_software engineering.pptxModule 1_software engineering.pptx
Module 1_software engineering.pptx
 
e-Business - SE trends
e-Business - SE trendse-Business - SE trends
e-Business - SE trends
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repository
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
 
Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...Comparison between Test-Driven Development and Conventional Development: A Ca...
Comparison between Test-Driven Development and Conventional Development: A Ca...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
Ptidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
Ptidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
Ptidej Team
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
Ptidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
Ptidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
Ptidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
Ptidej Team
 
MIPA
MIPAMIPA
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
Ptidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
Ptidej Team
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
Ptidej Team
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
Ptidej Team
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
Ptidej Team
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
Ptidej Team
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
Ptidej Team
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
Ptidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 

Recently uploaded (20)

KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 

Qrs17a.ppt

  • 1. How Do Developers Toggle Breakpoints? – Observational Studies – Fabio Petrillo, Hyan Mandian, Aiko Yamashita, Foutse Khomh, Yann-Gaël Guéhéneuc Polytechnique Montréal, Canada UniRitter, Brazil Oslo and Akershus University College of Applied Sciences, Norway IEEE International Conference on Software Quality, Reliability and Security (QRS’2017)
  • 2. Is debugging important? Developers spend over two-thirds of their time (68%) investigating code, and the majority of this time is spent debugging code (33%) [LaToza 2010]. LaToza, T. D., & Myers, B. a. (2010). Developers ask reachability questions. 2010 ACM/IEEE 32nd International Conference on Software Engineering, 1, 185–194. 2
  • 3. Is debugging important? ● Developers spend over two-thirds of their time (68%) investigating code, and the majority of this time is spent debugging code (33%) ● 40% of the developers go to debug mode directly after they have performed a change ● 63% of the developers used dynamic approaches to perform impact analysis over their changes. LaToza, T. D., & Myers, B. a. (2010). Developers ask reachability questions. 2010 ACM/IEEE 32nd International Conference on Software Engineering, 1, 185–194. S. Jiang, C. McMillan, and R. Santelices, “Do programmers do change impact analysis in debugging?” Empirical Software Engineering, pp. 1–39, 2016. 3
  • 4. During interactive debugging, lonely developers navigate the source code step into many statements traverse dozens of method invocations gain understanding about the system. However, first, they have to SET a breakpoint. 4
  • 5. Setting a breakpoint ● Setting a breakpoint is one of the most frequently used features of IDEs ● To decide where to set a breakpoint, developers: ○ must use their observations ○ recall their experiences with similar tasks ○ formulate hypotheses about the task 5
  • 6. Setting a breakpoint ● Tiarks and Röhms observed that developers have difficulties in finding locations for setting the breakpoints ● Suggesting that this is a difficult activity Supporting developers to set appropriate reakpoints could reduce debugging effort R. Tiarks and T. Rö hm, “Challenges in Program Comprehension,” Softwaretechnik-Trends, vol. 32, no. 2, pp. 19–20, May 2013. 6
  • 7. However, no study has been performed on how developers set breakpoints. 7
  • 9. Study design ● We analysed 45 video-recorded debugging sessions ● Extracting breakpoint data ● 2 independent studies ○ Study 1: JabRef (own videos) ○ Study 2: PdfSam and Raptor (videos from study Jiang et al. [3] 9
  • 10. Study 1 - JabRef ● 20 developpers (8 freelancers and 12 students) ● 5 true tasks from JabRef issue system (GitHub) ● Performing debugging to locate the faults ● Maximum limit of one-hour per task ● Debugging data (breakpoints, stepping, method invocations) were automatically collected by a Eclipse tracing plug-in. ● On-line post-experiment questionnaire to collect information about the study 10
  • 11. Study 2 - PdfSam and Raptor ● Re-analysis of 20 videos of debugging sessions available from a study conducted by Jiang et al. [3] ● Study on change impact analysis ● One defect per system ● Fault correction tasks 11
  • 12. Summary of Studies ● 3 different systems ● 7 different tasks ○ 5 bug locations ○ 2 bug corrections ● 307 breakpoints ● More than 10 hours of video 12
  • 14. RQ1: What is the effort (time) for setting the first breakpoint in relation to the total effort for a debugging task? Study 1 : in average participants spend 27% of the total task duration to set the first breakpoint (std. Dev. 17%) Study 2 : in average participants spend 23% of the total task duration to set the first breakpoint (std. Dev. 17%) 14
  • 15. We conclude that the effort for setting the first breakpoint takes near one quarter of the total effort of a single debugging session. This effort is important and hints that debugging time could be reduced by providing tool support for setting breakpoints. 15
  • 16. RQ2: Is there a correlation between time of first breakpoint and task’s elapsed time? ● there is a clear correlation (ρ = −0.47) 16
  • 17. 17
  • 18. If developers toggle breakpoints carefully, they complete tasks faster than developers who toggle breakpoints too quickly 18
  • 19. RQ3: Are there consistent, common debugging trends to the types of statements among developers? 19 Study 1 Study 2 Breakpoints per type of statement
  • 20. RQ3: Are there consistent, common debugging trends to the types of statements among developers? 20 Study 1 Study 2 Breakpoints per type of statement
  • 21. Yes, there are trends on developers chose a breakpoint. 50% of the breakpoints were set on call statements while loop statement the least common (2-4%) 21
  • 22. RQ4: Are there consistent, common debugging trends for setting breakpoints on the same line, method, or class, among developers? 22
  • 23. 23
  • 24. 24 Study 1 - JabRef Breakpoints in the same line of code Study 2 - PdfSam Study 2 - Raptor
  • 25. 25 Study 1 - Breakpoints by class across different tasks
  • 26. 26 Study 1 - Methods with 5 or more breakpoints
  • 27. Developers do not choose breakpoints lightly, but there is a rationale in their setting breakpoints, because different developers set breakpoints on the same line of code for the same task and different developers set breakpoints on the same type or method for different tasks. 27
  • 28. This results shows the usefulness of collecting and sharing breakpoints to assist developers during maintenance tasks, showing an opportunity to recommend those locations as candidates for new debugging sessions. 28
  • 29. ● Setting the first breakpoints is hard (~ 25% of task time) ● ~ 50% of the breakpoints were set on call statements ● When developers toggle breakpoints carefully, they complete tasks faster than developers who toggle breakpoints too quickly ● Different developers set breakpoints on the same line of code for the same task ● Developers need tools that can assist them in locating adequate places to set breakpoints in the code and our observations suggest the opportunity for a breakpoint recommendation system ● Our work helps to build a grounded theory on the setting of breakpoints to improve debuggers and other tool ● fill the gap in the literature about interactive debugging behaviors ● There is a lot of investigating about interactive debugging phenomena! Final Remarks 29
  • 30. IEEE International Conference on Software Quality, Reliability and Security (QRS’2017) Thank you! @petrillofabio fabio@petrillo.com