SlideShare uma empresa Scribd logo
1 de 38
Evaluating the Usefulness
of IR-Based Fault
Localization Techniques
Qianqian Wang* Chris Parnin** Alessandro Orso*
* Georgia Institute of Technology, USA
** North Carolina State University, USA
Debugging is Difficult
Debugging is Difficult
Let’s&see…&
Over&50&years&of&research&
on&automated&debugging.&
Debugging is Difficult
Let’s&see…&
Over&50&years&of&research&
on&automated&debugging.&
1962.&Symbolic&Debugging&(UNIVAC&FLIT)&
1981.%Weiser.%Program%Slicing%
1999.$Delta$Debugging$
2001.%Sta)s)cal%Debugging%
�����������������������������
Debugging is Difficult
Let’s&see…&
Over&50&years&of&research&
on&automated&debugging.&
1962.&Symbolic&Debugging&(UNIVAC&FLIT)&
1981.%Weiser.%Program%Slicing%
1999.$Delta$Debugging$
2001.%Sta)s)cal%Debugging%
�����������������������������
STILL
IR-Based FL Techniques
• How do they work?
• Rank source files based on their lexical similarity to bug
reports

• How well do they work?
Top 1 Top 5 Top 10
Percentage 35% 58% 69%
Source code file: CTabFolder.java
public class CTabFolder extends Composite {
// tooltip
int [] toolTipEvents = new int[] {SWT.MouseExit,
SWT.MouseHover, SWT.MouseMove,
SWT.MouseDown, SWT.DragDetect};
Listener toolTipListener;
…
/ * Returns <code>true</code> if the CTabFolder
only displys the selected tab
* and <code>false</code> if the CTabFolder
displays multiple tabs.
*/
…void onMouseHover(Event event) {
showToolTip(event.x, event.y);
}
void onDispose() {
inDispose = true;
hideToolTip();
…
}
}
Understanding IR-based FL Techniques
Bug ID: 90018
Summary: Native tooltips left around on
CTabFolder.
Description: Hover over the PartStack
CTabFolder inside eclipse until some native
tooltip is displayed. For example, the
maximize button. When the tooltip appears,
change perspectives using the keybinding.
the CTabFolder gets hidden, but its tooltip
is permanently displayed and never goes
away. Even if that CTabFolder is disposed
(I'm assuming) when the perspective is
closed.
--------------------------------------------------------------------------
Source code file: CTabFolder.java
public class CTabFolder extends Composite {
// tooltip
int [] toolTipEvents = new int[] {SWT.MouseExit,
SWT.MouseHover, SWT.MouseMove,
SWT.MouseDown, SWT.DragDetect};
Listener toolTipListener;
…
/ * Returns <code>true</code> if the CTabFolder
only displys the selected tab
* and <code>false</code> if the CTabFolder
displays multiple tabs.
*/
…void onMouseHover(Event event) {
showToolTip(event.x, event.y);
}
void onDispose() {
inDispose = true;
hideToolTip();
…
}
}
Understanding IR-based FL Techniques
Bug ID: 90018
Summary: Native tooltips left around on
CTabFolder.
Description: Hover over the PartStack
CTabFolder inside eclipse until some native
tooltip is displayed. For example, the
maximize button. When the tooltip appears,
change perspectives using the keybinding.
the CTabFolder gets hidden, but its tooltip
is permanently displayed and never goes
away. Even if that CTabFolder is disposed
(I'm assuming) when the perspective is
closed.
--------------------------------------------------------------------------
• Does the presence of technical information affect the fault
localization results?
• How often do bug reports contain such information?
• Is such information enough for developers to find the faulty
files easily?
Assessing IR-based FL Techniques
Analytical Study User Study
• Q1: Does technical information affect fault
localization results?
• Q2: How often do bug reports contain
technical information?
Analytical Study
Subjects
Project # Bugs #Source file
AspectJ 286 6k
SWT 98 0.5k
ZXing 20 0.4k
Jodatime 9 0.2k
• Categorize bug reports
• Stack traces/test cases/program entity names/natural
language descriptions
• Generate ranked lists
• BugLocator - IR-based fault localization tool
• Perform statistical analysis
Q1: Method
Q1: Results
Program
entity
Stack
trace
Test case
Results √ X X
• Does bug report information affect fault
localization results?
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Q1: Results
Program
entity
Stack
trace
Test case
Results √ X X
• Does bug report information affect fault
localization results?
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Q1: Results
Program
entity
Stack
trace
Test case
Results √ X X
• Does bug report information affect fault
localization results?
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Bug report characteristics affect IR-based
fault localization results
• How often bug reports contain technical
information?
• Select 10,000 bug reports from SWT Bugzilla
• Check presence of technical information:
• Stack traces
• Test cases
• Program entity names
Q2: Method
• How often bug reports contain technical
information?
Q2: Results
Stack traces Test cases
Program
entity
Percentage 10% 3% 32%
• How often bug reports contain technical
information?
Q2: Results
Stack traces Test cases
Program
entity
Percentage 10% 3% 32%
• How often bug reports contain technical
information?
Q2: Results
Stack traces Test cases
Program
entity
Percentage 10% 3% 32%
The majority bug reports do not contain
enough information
Additional finding
“Optimistic” Evaluation Approach
• Assumption: Changed files = faulty files
• Reality:
• 40% bugs contain multiple changed files
• Not all changed files contain bugs
• Best-ranked files may not be faulty
Additional finding
“Optimistic” Evaluation Approach
• Assumption: Changed files = faulty files
• Reality:
• 40% bugs contain multiple changed files
• Not all changed files contain bugs
• Best-ranked files may not be faulty
Results of existing studies might be
worse than what reported
• Q3: Does bug report information affect
developers’ performance?
• Q4: Do IR-based techniques help developers’
performance?
User Study
Experiment Protocol: Setup
Participants:
70 developers
Graduate Students
Software subject:
• Eclipse SWT
• 2 bugs for each developer
Task: find and fix the bug
Tools:
• Eclipse plug-in
• Integrating ranked lists
• Logging
…"
1)"
2)"
3)"
4)"
✔
✔
✔
Experimental Protocol: Variables
Bug related
Tool related
Experimental Protocol: Variables
1) ———
2) ———
3) ———
4) ———
…
1) ———
2) ———
3) ———
4) ———
…
Good/bad ranked list
Good/bad bug report
With/without a ranked list
Bug related
Tool related
(i.e., with/without the tool)
Experimental Protocol: Evaluation Metrics
Time
• To find the faulty file
• To locate the bug
Debugging score
Q3: Results
Time used to find
the faulty file
Time used to locate
the bug
Debugging score
√ X √
Compared the performance of 2 groups:

1. without tool, good bug reports

2. without tool, bad bug reports
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Q3: Results
Time used to find
the faulty file
Time used to locate
the bug
Debugging score
√ X √
Compared the performance of 2 groups:

1. without tool, good bug reports

2. without tool, bad bug reports
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Q3: Results
Time used to find
the faulty file
Time used to locate
the bug
Debugging score
√ X √
Compared the performance of 2 groups:

1. without tool, good bug reports

2. without tool, bad bug reports
Good bug reports (i.e., with entity names) allow
developers to shorten the time to find the
faulty file and help them find better fixes
√ Statistically significant difference: p < 0.05
X No statistically significant difference: p >= 0.05
Q4: Results
Condition
Debugging
score
Time to find
the file
Time to locate
the bug
X X X
X √ X
X X X
X X X
Compared the performance of 2 groups under 4 conditions:

1. without tool, {good|bad} bug reports, {good|bad} ranked list

2. with tool, {good|bad} bug reports, {good|bad} ranked list
Q4: Results
Condition
Debugging
score
Time to find
the file
Time to locate
the bug
X X X
X √ X
X X X
X X X
Compared the performance of 2 groups under 4 conditions:

1. without tool, {good|bad} bug reports, {good|bad} ranked list

2. with tool, {good|bad} bug reports, {good|bad} ranked list
Good ranked

list
Bad ranked

list
Good bug

report
Bad bug

report
X Not statist, sign.
√ Statist. significant
Q4: Results
Condition
Debugging
score
Time to find
the file
Time to locate
the bug
X X X
X √ X
X X X
X X X
Compared the performance of 2 groups under 4 conditions:

1. without tool, {good|bad} bug reports, {good|bad} ranked list

2. with tool, {good|bad} bug reports, {good|bad} ranked list
Good ranked

list
Bad ranked

list
Good bug

report
Bad bug

report
X Not statist, sign.
√ Statist. significant
Q4: Results
Condition
Debugging
score
Time to find
the file
Time to locate
the bug
X X X
X √ X
X X X
X X X
Compared the performance of 2 groups under 4 conditions:

1. without tool, {good|bad} bug reports, {good|bad} ranked list

2. with tool, {good|bad} bug reports, {good|bad} ranked list
Good ranked

list
Bad ranked

list
Good bug

report
Bad bug

report
X Not statist, sign.
√ Statist. significant
Only perfect ranked lists help when users
can not get enough hints from bug reports
Q4: Results
Condition
Debugging
score
Time to find
the file
Time to locate
the bug
X X X
X √ X
X X X
X X X
Compared the performance of 2 groups under 4 conditions:

1. without tool, {good|bad} bug reports, {good|bad} ranked list

2. with tool, {good|bad} bug reports, {good|bad} ranked list
Good ranked

list
Bad ranked

list
Good bug

report
Bad bug

report
X Not statist, sign.
√ Statist. significant
Only perfect ranked lists help when users
can not get enough hints from bug reports
The tool only helps find the faulty file, but
developers spend much more time locating
the bug in the faulty file than finding such file
Additional Observations
• Developers used program entity names in the
bug report as search keywords.
• Ranked lists generated by IR-based techniques
affected users’ debugging behavior
• Gave a starting point
• Gave them confidence
Summary
• Studied the practical usefulness of IR-based FL techniques
• Performed both an analytical study and a user study
• Main findings
• Bug report characteristics affect IR-based fault localization results
• Results of existing studies might be worse than what reported
• The majority of bug reports do not contain enough information
• “Good” bug reports allow developers to shorten the time to find the
faulty file and help them find better fixes
• Only perfect ranked lists help when users can not get enough hints from
bug reports
• The tool only helps find the faulty file, but developers spend much more
time locating the bug in the faulty file than finding such file
Implications
• Better bug reports are needed
• Automated debugging techniques should focus
on improving results for bug reports with little
information
• Automated debugging techniques should
provide finer-grained information and context
• More user studies and realistic evaluations are
needed

Mais conteúdo relacionado

Mais procurados

Mais procurados (11)

Transferring Software Testing Tools to Practice (AST 2017 Keynote)
Transferring Software Testing Tools to Practice (AST 2017 Keynote)Transferring Software Testing Tools to Practice (AST 2017 Keynote)
Transferring Software Testing Tools to Practice (AST 2017 Keynote)
 
Binary Analysis - Luxembourg
Binary Analysis - LuxembourgBinary Analysis - Luxembourg
Binary Analysis - Luxembourg
 
Reproducibility for IR evaluation
Reproducibility for IR evaluationReproducibility for IR evaluation
Reproducibility for IR evaluation
 
Sporar
SporarSporar
Sporar
 

Query Performance Prediction by Means of Intent-Aware Metrics in Systematic ...

Query Performance Prediction by Means of Intent-Aware Metrics in Systematic ...
Query Performance Prediction by Means of Intent-Aware Metrics in Systematic ...

Query Performance Prediction by Means of Intent-Aware Metrics in Systematic ...
 
Quantifying the Value of Static Analysis
Quantifying the Value of Static AnalysisQuantifying the Value of Static Analysis
Quantifying the Value of Static Analysis
 
Barga Data Science lecture 8
Barga Data Science lecture 8Barga Data Science lecture 8
Barga Data Science lecture 8
 
Barga Data Science lecture 3
Barga Data Science lecture 3Barga Data Science lecture 3
Barga Data Science lecture 3
 
Log-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test CasesLog-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test Cases
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...
 
20181106 arie van_deursen_testday2018
20181106 arie van_deursen_testday201820181106 arie van_deursen_testday2018
20181106 arie van_deursen_testday2018
 

Destaque

ACO_Recommandation Letter 2015
ACO_Recommandation Letter 2015ACO_Recommandation Letter 2015
ACO_Recommandation Letter 2015
Aurelie Mongrard
 
A single phase grid-connected fuel cell system based on a boost-inverter
A single phase grid-connected fuel cell system based on a boost-inverterA single phase grid-connected fuel cell system based on a boost-inverter
A single phase grid-connected fuel cell system based on a boost-inverter
Ecwayt
 
Sinclair.macro economicforecasting
Sinclair.macro economicforecastingSinclair.macro economicforecasting
Sinclair.macro economicforecasting
Tara Sinclair
 

Destaque (14)

ACO_Recommandation Letter 2015
ACO_Recommandation Letter 2015ACO_Recommandation Letter 2015
ACO_Recommandation Letter 2015
 
Intro to Pecha Kucha
Intro to Pecha KuchaIntro to Pecha Kucha
Intro to Pecha Kucha
 
A single phase grid-connected fuel cell system based on a boost-inverter
A single phase grid-connected fuel cell system based on a boost-inverterA single phase grid-connected fuel cell system based on a boost-inverter
A single phase grid-connected fuel cell system based on a boost-inverter
 
Viewpoint_Issue_9
Viewpoint_Issue_9Viewpoint_Issue_9
Viewpoint_Issue_9
 
Srinaga_Kalapatapu_Updated
Srinaga_Kalapatapu_UpdatedSrinaga_Kalapatapu_Updated
Srinaga_Kalapatapu_Updated
 
Mcq6 ac-mosfet-amplifier
Mcq6 ac-mosfet-amplifierMcq6 ac-mosfet-amplifier
Mcq6 ac-mosfet-amplifier
 
presentation
presentationpresentation
presentation
 
Java fx ap is
Java fx ap isJava fx ap is
Java fx ap is
 
Field Failure Reproduction Using Symbolic Execution and Genetic Programming
Field Failure Reproduction Using Symbolic Execution and Genetic ProgrammingField Failure Reproduction Using Symbolic Execution and Genetic Programming
Field Failure Reproduction Using Symbolic Execution and Genetic Programming
 
Nash Equilibrium
Nash EquilibriumNash Equilibrium
Nash Equilibrium
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
An engineers guide 2012 making maintenance matter, pruftechnik
An engineers guide 2012 making maintenance matter, pruftechnikAn engineers guide 2012 making maintenance matter, pruftechnik
An engineers guide 2012 making maintenance matter, pruftechnik
 
How to Get My Paper Accepted at Top Software Engineering Conferences
How to Get My Paper Accepted at Top Software Engineering ConferencesHow to Get My Paper Accepted at Top Software Engineering Conferences
How to Get My Paper Accepted at Top Software Engineering Conferences
 
Sinclair.macro economicforecasting
Sinclair.macro economicforecastingSinclair.macro economicforecasting
Sinclair.macro economicforecasting
 

Semelhante a Evaluating the Usefulness of IR-Based Fault LocalizationTechniques

Soft And Handling
Soft And HandlingSoft And Handling
Soft And Handling
hiratufail
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
Philip Johnson
 
Key Measurements For Testers
Key Measurements For TestersKey Measurements For Testers
Key Measurements For Testers
Gopi Raghavendra
 
software testing types jxnvlbnLCBNFVjnl/fknblb
software testing types jxnvlbnLCBNFVjnl/fknblbsoftware testing types jxnvlbnLCBNFVjnl/fknblb
software testing types jxnvlbnLCBNFVjnl/fknblb
jeyasrig
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
keturahhazelhurst
 

Semelhante a Evaluating the Usefulness of IR-Based Fault LocalizationTechniques (20)

Practitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault LocalizationPractitioners’ Expectations on Automated Fault Localization
Practitioners’ Expectations on Automated Fault Localization
 
Patterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug ReportsPatterns for Extracting High Level Information from Bug Reports
Patterns for Extracting High Level Information from Bug Reports
 
Software testing foundation
Software testing foundationSoftware testing foundation
Software testing foundation
 
testing
testingtesting
testing
 
Testing Metrics and why Managers like them
Testing Metrics and why Managers like themTesting Metrics and why Managers like them
Testing Metrics and why Managers like them
 
Practical Tools for Measurement Systems Analysis
Practical Tools for Measurement Systems AnalysisPractical Tools for Measurement Systems Analysis
Practical Tools for Measurement Systems Analysis
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)
 
Combinatorial testing ppt
Combinatorial testing pptCombinatorial testing ppt
Combinatorial testing ppt
 
Soft And Handling
Soft And HandlingSoft And Handling
Soft And Handling
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
 
Metrics That Matter
Metrics That MatterMetrics That Matter
Metrics That Matter
 
Key Measurements For Testers
Key Measurements For TestersKey Measurements For Testers
Key Measurements For Testers
 
Orthogonal array approach a case study
Orthogonal array approach   a case studyOrthogonal array approach   a case study
Orthogonal array approach a case study
 
software testing types jxnvlbnLCBNFVjnl/fknblb
software testing types jxnvlbnLCBNFVjnl/fknblbsoftware testing types jxnvlbnLCBNFVjnl/fknblb
software testing types jxnvlbnLCBNFVjnl/fknblb
 
VIP Workshop: Effective Habits of Development Teams
VIP Workshop: Effective Habits of Development TeamsVIP Workshop: Effective Habits of Development Teams
VIP Workshop: Effective Habits of Development Teams
 
Chapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docxChapter 10 Testing and Quality Assurance1Unders.docx
Chapter 10 Testing and Quality Assurance1Unders.docx
 
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
 
Anton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQBAnton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQB
 

Último

Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Sérgio Sacani
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Sérgio Sacani
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
PirithiRaju
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Sérgio Sacani
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
Sérgio Sacani
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
PirithiRaju
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
Areesha Ahmad
 

Último (20)

VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICESAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
 

Evaluating the Usefulness of IR-Based Fault LocalizationTechniques

  • 1. Evaluating the Usefulness of IR-Based Fault Localization Techniques Qianqian Wang* Chris Parnin** Alessandro Orso* * Georgia Institute of Technology, USA ** North Carolina State University, USA
  • 6. IR-Based FL Techniques • How do they work? • Rank source files based on their lexical similarity to bug reports
 • How well do they work? Top 1 Top 5 Top 10 Percentage 35% 58% 69%
  • 7. Source code file: CTabFolder.java public class CTabFolder extends Composite { // tooltip int [] toolTipEvents = new int[] {SWT.MouseExit, SWT.MouseHover, SWT.MouseMove, SWT.MouseDown, SWT.DragDetect}; Listener toolTipListener; … / * Returns <code>true</code> if the CTabFolder only displys the selected tab * and <code>false</code> if the CTabFolder displays multiple tabs. */ …void onMouseHover(Event event) { showToolTip(event.x, event.y); } void onDispose() { inDispose = true; hideToolTip(); … } } Understanding IR-based FL Techniques Bug ID: 90018 Summary: Native tooltips left around on CTabFolder. Description: Hover over the PartStack CTabFolder inside eclipse until some native tooltip is displayed. For example, the maximize button. When the tooltip appears, change perspectives using the keybinding. the CTabFolder gets hidden, but its tooltip is permanently displayed and never goes away. Even if that CTabFolder is disposed (I'm assuming) when the perspective is closed. --------------------------------------------------------------------------
  • 8. Source code file: CTabFolder.java public class CTabFolder extends Composite { // tooltip int [] toolTipEvents = new int[] {SWT.MouseExit, SWT.MouseHover, SWT.MouseMove, SWT.MouseDown, SWT.DragDetect}; Listener toolTipListener; … / * Returns <code>true</code> if the CTabFolder only displys the selected tab * and <code>false</code> if the CTabFolder displays multiple tabs. */ …void onMouseHover(Event event) { showToolTip(event.x, event.y); } void onDispose() { inDispose = true; hideToolTip(); … } } Understanding IR-based FL Techniques Bug ID: 90018 Summary: Native tooltips left around on CTabFolder. Description: Hover over the PartStack CTabFolder inside eclipse until some native tooltip is displayed. For example, the maximize button. When the tooltip appears, change perspectives using the keybinding. the CTabFolder gets hidden, but its tooltip is permanently displayed and never goes away. Even if that CTabFolder is disposed (I'm assuming) when the perspective is closed. --------------------------------------------------------------------------
  • 9. • Does the presence of technical information affect the fault localization results? • How often do bug reports contain such information? • Is such information enough for developers to find the faulty files easily? Assessing IR-based FL Techniques
  • 11. • Q1: Does technical information affect fault localization results? • Q2: How often do bug reports contain technical information? Analytical Study
  • 12. Subjects Project # Bugs #Source file AspectJ 286 6k SWT 98 0.5k ZXing 20 0.4k Jodatime 9 0.2k
  • 13. • Categorize bug reports • Stack traces/test cases/program entity names/natural language descriptions • Generate ranked lists • BugLocator - IR-based fault localization tool • Perform statistical analysis Q1: Method
  • 14. Q1: Results Program entity Stack trace Test case Results √ X X • Does bug report information affect fault localization results? √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05
  • 15. Q1: Results Program entity Stack trace Test case Results √ X X • Does bug report information affect fault localization results? √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05
  • 16. Q1: Results Program entity Stack trace Test case Results √ X X • Does bug report information affect fault localization results? √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05 Bug report characteristics affect IR-based fault localization results
  • 17. • How often bug reports contain technical information? • Select 10,000 bug reports from SWT Bugzilla • Check presence of technical information: • Stack traces • Test cases • Program entity names Q2: Method
  • 18. • How often bug reports contain technical information? Q2: Results Stack traces Test cases Program entity Percentage 10% 3% 32%
  • 19. • How often bug reports contain technical information? Q2: Results Stack traces Test cases Program entity Percentage 10% 3% 32%
  • 20. • How often bug reports contain technical information? Q2: Results Stack traces Test cases Program entity Percentage 10% 3% 32% The majority bug reports do not contain enough information
  • 21. Additional finding “Optimistic” Evaluation Approach • Assumption: Changed files = faulty files • Reality: • 40% bugs contain multiple changed files • Not all changed files contain bugs • Best-ranked files may not be faulty
  • 22. Additional finding “Optimistic” Evaluation Approach • Assumption: Changed files = faulty files • Reality: • 40% bugs contain multiple changed files • Not all changed files contain bugs • Best-ranked files may not be faulty Results of existing studies might be worse than what reported
  • 23. • Q3: Does bug report information affect developers’ performance? • Q4: Do IR-based techniques help developers’ performance? User Study
  • 24. Experiment Protocol: Setup Participants: 70 developers Graduate Students Software subject: • Eclipse SWT • 2 bugs for each developer Task: find and fix the bug Tools: • Eclipse plug-in • Integrating ranked lists • Logging …" 1)" 2)" 3)" 4)" ✔ ✔ ✔
  • 25. Experimental Protocol: Variables Bug related Tool related
  • 26. Experimental Protocol: Variables 1) ——— 2) ——— 3) ——— 4) ——— … 1) ——— 2) ——— 3) ——— 4) ——— … Good/bad ranked list Good/bad bug report With/without a ranked list Bug related Tool related (i.e., with/without the tool)
  • 27. Experimental Protocol: Evaluation Metrics Time • To find the faulty file • To locate the bug Debugging score
  • 28. Q3: Results Time used to find the faulty file Time used to locate the bug Debugging score √ X √ Compared the performance of 2 groups:
 1. without tool, good bug reports
 2. without tool, bad bug reports √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05
  • 29. Q3: Results Time used to find the faulty file Time used to locate the bug Debugging score √ X √ Compared the performance of 2 groups:
 1. without tool, good bug reports
 2. without tool, bad bug reports √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05
  • 30. Q3: Results Time used to find the faulty file Time used to locate the bug Debugging score √ X √ Compared the performance of 2 groups:
 1. without tool, good bug reports
 2. without tool, bad bug reports Good bug reports (i.e., with entity names) allow developers to shorten the time to find the faulty file and help them find better fixes √ Statistically significant difference: p < 0.05 X No statistically significant difference: p >= 0.05
  • 31. Q4: Results Condition Debugging score Time to find the file Time to locate the bug X X X X √ X X X X X X X Compared the performance of 2 groups under 4 conditions:
 1. without tool, {good|bad} bug reports, {good|bad} ranked list
 2. with tool, {good|bad} bug reports, {good|bad} ranked list
  • 32. Q4: Results Condition Debugging score Time to find the file Time to locate the bug X X X X √ X X X X X X X Compared the performance of 2 groups under 4 conditions:
 1. without tool, {good|bad} bug reports, {good|bad} ranked list
 2. with tool, {good|bad} bug reports, {good|bad} ranked list Good ranked
 list Bad ranked
 list Good bug
 report Bad bug
 report X Not statist, sign. √ Statist. significant
  • 33. Q4: Results Condition Debugging score Time to find the file Time to locate the bug X X X X √ X X X X X X X Compared the performance of 2 groups under 4 conditions:
 1. without tool, {good|bad} bug reports, {good|bad} ranked list
 2. with tool, {good|bad} bug reports, {good|bad} ranked list Good ranked
 list Bad ranked
 list Good bug
 report Bad bug
 report X Not statist, sign. √ Statist. significant
  • 34. Q4: Results Condition Debugging score Time to find the file Time to locate the bug X X X X √ X X X X X X X Compared the performance of 2 groups under 4 conditions:
 1. without tool, {good|bad} bug reports, {good|bad} ranked list
 2. with tool, {good|bad} bug reports, {good|bad} ranked list Good ranked
 list Bad ranked
 list Good bug
 report Bad bug
 report X Not statist, sign. √ Statist. significant Only perfect ranked lists help when users can not get enough hints from bug reports
  • 35. Q4: Results Condition Debugging score Time to find the file Time to locate the bug X X X X √ X X X X X X X Compared the performance of 2 groups under 4 conditions:
 1. without tool, {good|bad} bug reports, {good|bad} ranked list
 2. with tool, {good|bad} bug reports, {good|bad} ranked list Good ranked
 list Bad ranked
 list Good bug
 report Bad bug
 report X Not statist, sign. √ Statist. significant Only perfect ranked lists help when users can not get enough hints from bug reports The tool only helps find the faulty file, but developers spend much more time locating the bug in the faulty file than finding such file
  • 36. Additional Observations • Developers used program entity names in the bug report as search keywords. • Ranked lists generated by IR-based techniques affected users’ debugging behavior • Gave a starting point • Gave them confidence
  • 37. Summary • Studied the practical usefulness of IR-based FL techniques • Performed both an analytical study and a user study • Main findings • Bug report characteristics affect IR-based fault localization results • Results of existing studies might be worse than what reported • The majority of bug reports do not contain enough information • “Good” bug reports allow developers to shorten the time to find the faulty file and help them find better fixes • Only perfect ranked lists help when users can not get enough hints from bug reports • The tool only helps find the faulty file, but developers spend much more time locating the bug in the faulty file than finding such file
  • 38. Implications • Better bug reports are needed • Automated debugging techniques should focus on improving results for bug reports with little information • Automated debugging techniques should provide finer-grained information and context • More user studies and realistic evaluations are needed