SlideShare una empresa de Scribd logo
1 de 22
Vibha Singhal Sinha, Senthil Mani and Debdoot Mukherjee
IBM Research - India
23rd
October 2012, SPLASH-Wavefront, Tucson, AZ, USA
2
Can Text
Search help in
Debugging?
3
1. Search within past bug reports
• Find similar bug reports and identify patches
linked to them
1. Search within source – code
• Search comments, method names, variable
names etc to identify code regions with high
text overlap 4
 No dependence on program sizes, programming
languages, types of faults or the presence of
passing & failing test inputs; unlike existing
program-analysis based approaches:
 Program slicing
 Statistical debugging / spectra-based techniques
 Delta debugging / mutation based approaches
 Can be readily applied to jumpstart debugging
Possible Tactic: Identify a small set of files with text
search and feed that as input to a program analysis
based technique to localize to a set of lines
5
 IR systems proposed in different areas of software
maintenance to recommend relevant artifacts in context of
developer tasks
 Hipikat, Lassie, DebugAdvisor
 Efficacy of different language models have been evaluated for
fault localization (Rao et al, Marcus et al, Cleary et al)
 Vector Space Model, Latent Semantic Indexing, Latent Dirichlet
Allocation, Cluster Based Decision Making
 Rao and Kak suggest that IR-based bug localization is at least
as effective as static and dynamic analysis techniques
 Enslen proposed Identifier-Splitting to increase vocabulary
overlap between bug reports and code base
 E.g., a code word TextFieldTool is split into three words: text, field,
tool. 6
Index
Creator
Index
Creator
Query
Creator
Query
Creator
From repository of past
Resolved Bugs
Search For {query}
Search On {created indices}
Incoming Bug
Past Resolved
Bugs and linked
Code repository
Search Results:
Ranked list of files
Bug Index
(BI)
Bug Index
(BI)
Code Index
(CI)
Code Index
(CI)
From code repository
Meta Index
(MI)
Meta Index
(MI)
From code repository –
processed through
identifier splitting
Search
Module
Search
Module
Results
Collator
Results
Collator
Collate Title &
Description (A)
Collate Title &
Description (A)
Boost weight of
Title Words
Boost weight of
Title Words
Boost weight of
Code Words
Boost weight of
Code Words
Indexing Strategies
Querying Strategies
7
 RQ1 : How do the following search approaches
compare in terms of efficacy? Are they any better than
chance?
 Search on past bug reports – Bug Index (BI)
 Search on code repository – Code Index (CI)
 Search on processed code repository– Meta Index (MI)
 RQ2 : Can we combine them to increase efficacy?
 RQ3 : How do different features of the source code and
the bugs available in a project impact the effectiveness
of search? 8
 4 open source subjects
 BIRT, Datatools (Eclipse)
 Derby, Hadoop (Apache)
 Linking bug reports to change-sets
 Mined from references to bug-ids in
commit comments
 Tracing JIRA links
 Test set has bug reports with at
least one source file associated
with them
 1177 bugs in test set
 35% of total bugs in chosen releases
 3-4% of the bug repositories
9
 Average Precision, Recall and F1-Score
 For each bug in the test set taken as a query, we
calculate precision, recall and F1-score and then
average across the test-set.
 Bug Coverage
 Percentage of bugs in the test set for which the
search returns at least one file in the
recommendation set matches the ground truth.
10
 RQ1 : How do the following search approaches
compare in terms of efficacy? Are they any better than
chance?
 Search on past bug reports – Bug Index (BI)
 Search on code repository – Code Index (CI)
 Search on processed code repository– Meta Index (MI)
 RQ2 : Can we combine them to increase efficacy?
 RQ3 : How do different features of the source code and
the bugs available in a project impact the effectiveness
11
CI:A
MI:A
BI:A
PRECISION RECALL F1-SCORE
Increase in recall much slower than drop in precision; so F-score dips beyond result-set size of 3Increase in recall much slower than drop in precision; so F-score dips beyond result-set size of 3
Suggests that search techniques may NOT help in identifying ALL files that needs to be fixedSuggests that search techniques may NOT help in identifying ALL files that needs to be fixed
BIRT DATATOOLS
DERBY HADOOP
Bug Coverage Increases with Increase in Result-set SizeBug Coverage Increases with Increase in Result-set Size
None of the techniques emerge as the clear winnerNone of the techniques emerge as the clear winner
MI isn’t any better than CI. Sometimes it performs worseMI isn’t any better than CI. Sometimes it performs worse
Hadoop gives much better results than other 3 subjectsHadoop gives much better results than other 3 subjects
13
 Compare with efficacy of a user who randomly selects source
files from the code repository as the files to be fixed to resolve
a bug
 Think of the code repository as a bin of black and white balls, where the
files that need fix for a bug resolution are white balls; rest are black
balls.
 The hyper-geometric distribution gives the probability of choosing
white balls without replacement
 probability p of getting at least x files that require a fix by choosing k
files at random from the repository:
 If p < 0.05, reject the null hypothesis that search technique is no better
than chance. Do FDR test for multiple hypothesis testing.
14
 Even if one correct result is returned for a bug, then the
result is usually significant.
 Datatools has many queries failing the FDR test
 Certain queries have a large number of fixed files (e.g., 491 in 2 bugs)
 Record the average number of files in the repository at which
the techniques break even with chance: p >= 0.05
 Ranges from 66 in Derby (MI:A) to 158 in Datatools (CI:A)
15
 RQ1 : How do the following search approaches
compare in terms of efficacy? Are they any better than
chance?
 Search on past bug reports – Bug Index (BI)
 Search on code repository – Code Index (CI)
 Search on processed code repository– Meta Index (MI)
 RQ2 : Can we combine them to increase efficacy?
 RQ3 : How do different features of the source code and
the bugs available in a project impact the effectiveness
16
 Fleiss’ Kappa analysis to measure the degree of agreement
amongst the three techniques
 Each technique rates a bug: Yes, if technique covers the bug; else No
 Code based techniques (CI, MI) are similar, they are quite different
from the bug based technique (BI)
 Combine bug based and code based to get better results ?? 17
 Fire the same query on the 3 different indices and choose
the top X search results using the following ranking
schemes:
 RankScore: Rank using the absolute search similarity scores
returned by the search engine
 NormScore: Rank using a normalized similarity score - fraction
of maximum score returned by the query
 AggregateScore: Rank on the basis of sum of scores from
different techniques
 Sample: Pick the top 2*(X/5) search results from the results of
BI:A and CI:A, and the remaining X/5 results from MI:A.
18
 RankScore works better than the best of the
individual techniques across all subjects
 Improvement in bug coverage ranges from 1% to 46%
19
 RQ1 : How do the following search approaches
compare in terms of efficacy? Are they any better than
chance?
 Search on past bug reports – Bug Index (BI)
 Search on code repository – Code Index (CI)
 Search on processed code repository– Meta Index (MI)
 RQ2 : Can we combine them to increase efficacy?
 RQ3 : How do different features of the source code and
the bugs available in a project impact the effectiveness
20
 Since query sizes can become very large, there may
be a need for artificially boosting important words –
TitleWords, CodeWords
 TitleBoost helps improve bug coverage
 Except in Hadoop where the fraction of titleWords that
come up significant is already high even without boost.
MI MI
MI MI
BI CI BI
BI CI
CI
BI CI
21
 Compare the efficacy of techniques that directly search
the code repository with those that search over past bug
reports
 No clear winner is observed
 Bug coverage ranges from 20 to 60% across 4 subjects
 Techniques are better than chance
 Identifier splitting does not yield much benefit
 The techniques are complementary
 Bug coverage improves by 1% - 46% by combining them
 Favoring title-words help in most cases
24

Más contenido relacionado

La actualidad más candente

Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a surveyNakul Sharma
 
Machine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeMachine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeAndrey Karpov
 
OpenAI’s GPT 3 Language Model - guest Steve Omohundro
OpenAI’s GPT 3 Language Model - guest Steve OmohundroOpenAI’s GPT 3 Language Model - guest Steve Omohundro
OpenAI’s GPT 3 Language Model - guest Steve OmohundroNumenta
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowMassimiliano Di Penta
 
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
 
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...Riccardo Coppola
 
Implications of GPT-3
Implications of GPT-3Implications of GPT-3
Implications of GPT-3Raven Jiang
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsIRJET Journal
 
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...Ekta Grover
 
A brief primer on OpenAI's GPT-3
A brief primer on OpenAI's GPT-3A brief primer on OpenAI's GPT-3
A brief primer on OpenAI's GPT-3Ishan Jain
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mappingijseajournal
 
Building a Dynamic Bidding system for a location based Display advertising Pl...
Building a Dynamic Bidding system for a location based Display advertising Pl...Building a Dynamic Bidding system for a location based Display advertising Pl...
Building a Dynamic Bidding system for a location based Display advertising Pl...Ekta Grover
 
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case Study
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case StudyFinding Zero-Days Before The Attackers: A Fortune 500 Red Team Case Study
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case StudyDevOps.com
 
Software Engineering Domain Knowledge to Identify Duplicate Bug Reports
Software Engineering Domain Knowledge to Identify Duplicate Bug ReportsSoftware Engineering Domain Knowledge to Identify Duplicate Bug Reports
Software Engineering Domain Knowledge to Identify Duplicate Bug ReportsIJCERT
 
Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...IJECEIAES
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryTim Menzies
 
A Novel Approach for Code Clone Detection Using Hybrid Technique
A Novel Approach for Code Clone Detection Using Hybrid TechniqueA Novel Approach for Code Clone Detection Using Hybrid Technique
A Novel Approach for Code Clone Detection Using Hybrid TechniqueINFOGAIN PUBLICATION
 

La actualidad más candente (17)

Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
Machine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeMachine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source Code
 
OpenAI’s GPT 3 Language Model - guest Steve Omohundro
OpenAI’s GPT 3 Language Model - guest Steve OmohundroOpenAI’s GPT 3 Language Model - guest Steve Omohundro
OpenAI’s GPT 3 Language Model - guest Steve Omohundro
 
Put Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and HowPut Your Hands in the Mud: What Technique, Why, and How
Put Your Hands in the Mud: What Technique, Why, and How
 
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)
 
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...
Characterizing the transition to Kotlin of Android Apps: A Study on F-Droid, ...
 
Implications of GPT-3
Implications of GPT-3Implications of GPT-3
Implications of GPT-3
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript Programs
 
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...
PyCon 2013 - Experiments in data mining, entity disambiguation and how to thi...
 
A brief primer on OpenAI's GPT-3
A brief primer on OpenAI's GPT-3A brief primer on OpenAI's GPT-3
A brief primer on OpenAI's GPT-3
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mapping
 
Building a Dynamic Bidding system for a location based Display advertising Pl...
Building a Dynamic Bidding system for a location based Display advertising Pl...Building a Dynamic Bidding system for a location based Display advertising Pl...
Building a Dynamic Bidding system for a location based Display advertising Pl...
 
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case Study
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case StudyFinding Zero-Days Before The Attackers: A Fortune 500 Red Team Case Study
Finding Zero-Days Before The Attackers: A Fortune 500 Red Team Case Study
 
Software Engineering Domain Knowledge to Identify Duplicate Bug Reports
Software Engineering Domain Knowledge to Identify Duplicate Bug ReportsSoftware Engineering Domain Knowledge to Identify Duplicate Bug Reports
Software Engineering Domain Knowledge to Identify Duplicate Bug Reports
 
Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...Automated server-side model for recognition of security vulnerabilities in sc...
Automated server-side model for recognition of security vulnerabilities in sc...
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
 
A Novel Approach for Code Clone Detection Using Hybrid Technique
A Novel Approach for Code Clone Detection Using Hybrid TechniqueA Novel Approach for Code Clone Detection Using Hybrid Technique
A Novel Approach for Code Clone Detection Using Hybrid Technique
 

Destacado

Determining QoS of WS-BPEL Compositions
Determining QoS of WS-BPEL CompositionsDetermining QoS of WS-BPEL Compositions
Determining QoS of WS-BPEL CompositionsDebdoot Mukherjee
 
Which Work-Item Updates Need Your Response?
Which Work-Item Updates Need Your Response?Which Work-Item Updates Need Your Response?
Which Work-Item Updates Need Your Response?Debdoot Mukherjee
 
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Debdoot Mukherjee
 
Electrocardiography,cvp,blood pressure
Electrocardiography,cvp,blood pressureElectrocardiography,cvp,blood pressure
Electrocardiography,cvp,blood pressuresugamadex
 

Destacado (9)

Determining QoS of WS-BPEL Compositions
Determining QoS of WS-BPEL CompositionsDetermining QoS of WS-BPEL Compositions
Determining QoS of WS-BPEL Compositions
 
Naelektriziranost na telata
Naelektriziranost na telataNaelektriziranost na telata
Naelektriziranost na telata
 
Latihan thn 1
Latihan thn 1Latihan thn 1
Latihan thn 1
 
Which Work-Item Updates Need Your Response?
Which Work-Item Updates Need Your Response?Which Work-Item Updates Need Your Response?
Which Work-Item Updates Need Your Response?
 
Scc talk
Scc talkScc talk
Scc talk
 
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
 
Womm
WommWomm
Womm
 
Electrocardiography,cvp,blood pressure
Electrocardiography,cvp,blood pressureElectrocardiography,cvp,blood pressure
Electrocardiography,cvp,blood pressure
 
Mobile computing
Mobile computingMobile computing
Mobile computing
 

Similar a Is Text Search an Effective Approach for Fault Localization: A Practitioners Perspective

Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsThe University of Adelaide
 
Productivity Factors in Software Development for PC Platform
Productivity Factors in Software Development for PC PlatformProductivity Factors in Software Development for PC Platform
Productivity Factors in Software Development for PC PlatformIJERA Editor
 
Machine programming
Machine programmingMachine programming
Machine programmingDESMOND YUEN
 
Application of Genetic Algorithm in Software Engineering: A Review
Application of Genetic Algorithm in Software Engineering: A ReviewApplication of Genetic Algorithm in Software Engineering: A Review
Application of Genetic Algorithm in Software Engineering: A ReviewIRJESJOURNAL
 
A New Metric for Code Readability
A New Metric for Code ReadabilityA New Metric for Code Readability
A New Metric for Code ReadabilityIOSR Journals
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Mumbai Academisc
 
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
 
Computer Science Related Questions
Computer Science Related QuestionsComputer Science Related Questions
Computer Science Related QuestionsBravoLulu1
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniquesijseajournal
 
Bug Triage: An Automated Process
Bug Triage: An Automated ProcessBug Triage: An Automated Process
Bug Triage: An Automated ProcessIRJET Journal
 
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...DevOps for Enterprise Systems
 
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...PRQA
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical DebtHayim Makabee
 
Web Macros
Web MacrosWeb Macros
Web Macroscscaffid
 
Replication and Benchmarking in Software Analytics
Replication and Benchmarking in Software AnalyticsReplication and Benchmarking in Software Analytics
Replication and Benchmarking in Software AnalyticsUniversity of Zurich
 
Statistical debuging for programs written in dynamic programming language ruby
Statistical debuging for programs written in dynamic programming language   rubyStatistical debuging for programs written in dynamic programming language   ruby
Statistical debuging for programs written in dynamic programming language rubyAdeel Akhter
 

Similar a Is Text Search an Effective Approach for Fault Localization: A Practitioners Perspective (20)

Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
 
Productivity Factors in Software Development for PC Platform
Productivity Factors in Software Development for PC PlatformProductivity Factors in Software Development for PC Platform
Productivity Factors in Software Development for PC Platform
 
Machine programming
Machine programmingMachine programming
Machine programming
 
Application of Genetic Algorithm in Software Engineering: A Review
Application of Genetic Algorithm in Software Engineering: A ReviewApplication of Genetic Algorithm in Software Engineering: A Review
Application of Genetic Algorithm in Software Engineering: A Review
 
J034057065
J034057065J034057065
J034057065
 
Test PDF file
Test PDF fileTest PDF file
Test PDF file
 
A New Metric for Code Readability
A New Metric for Code ReadabilityA New Metric for Code Readability
A New Metric for Code Readability
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...
 
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 ...
 
Computer Science Related Questions
Computer Science Related QuestionsComputer Science Related Questions
Computer Science Related Questions
 
Rankingtherefactoring techniques
Rankingtherefactoring techniquesRankingtherefactoring techniques
Rankingtherefactoring techniques
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Bug Triage: An Automated Process
Bug Triage: An Automated ProcessBug Triage: An Automated Process
Bug Triage: An Automated Process
 
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...
InterConnect 2017 : Cognitive DevOps: Get Rid of the Guesswork to Improve Sof...
 
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical Debt
 
Web Macros
Web MacrosWeb Macros
Web Macros
 
Replication and Benchmarking in Software Analytics
Replication and Benchmarking in Software AnalyticsReplication and Benchmarking in Software Analytics
Replication and Benchmarking in Software Analytics
 
Statistical debuging for programs written in dynamic programming language ruby
Statistical debuging for programs written in dynamic programming language   rubyStatistical debuging for programs written in dynamic programming language   ruby
Statistical debuging for programs written in dynamic programming language ruby
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Is Text Search an Effective Approach for Fault Localization: A Practitioners Perspective

  • 1. Vibha Singhal Sinha, Senthil Mani and Debdoot Mukherjee IBM Research - India 23rd October 2012, SPLASH-Wavefront, Tucson, AZ, USA
  • 2. 2
  • 3. Can Text Search help in Debugging? 3
  • 4. 1. Search within past bug reports • Find similar bug reports and identify patches linked to them 1. Search within source – code • Search comments, method names, variable names etc to identify code regions with high text overlap 4
  • 5.  No dependence on program sizes, programming languages, types of faults or the presence of passing & failing test inputs; unlike existing program-analysis based approaches:  Program slicing  Statistical debugging / spectra-based techniques  Delta debugging / mutation based approaches  Can be readily applied to jumpstart debugging Possible Tactic: Identify a small set of files with text search and feed that as input to a program analysis based technique to localize to a set of lines 5
  • 6.  IR systems proposed in different areas of software maintenance to recommend relevant artifacts in context of developer tasks  Hipikat, Lassie, DebugAdvisor  Efficacy of different language models have been evaluated for fault localization (Rao et al, Marcus et al, Cleary et al)  Vector Space Model, Latent Semantic Indexing, Latent Dirichlet Allocation, Cluster Based Decision Making  Rao and Kak suggest that IR-based bug localization is at least as effective as static and dynamic analysis techniques  Enslen proposed Identifier-Splitting to increase vocabulary overlap between bug reports and code base  E.g., a code word TextFieldTool is split into three words: text, field, tool. 6
  • 7. Index Creator Index Creator Query Creator Query Creator From repository of past Resolved Bugs Search For {query} Search On {created indices} Incoming Bug Past Resolved Bugs and linked Code repository Search Results: Ranked list of files Bug Index (BI) Bug Index (BI) Code Index (CI) Code Index (CI) From code repository Meta Index (MI) Meta Index (MI) From code repository – processed through identifier splitting Search Module Search Module Results Collator Results Collator Collate Title & Description (A) Collate Title & Description (A) Boost weight of Title Words Boost weight of Title Words Boost weight of Code Words Boost weight of Code Words Indexing Strategies Querying Strategies 7
  • 8.  RQ1 : How do the following search approaches compare in terms of efficacy? Are they any better than chance?  Search on past bug reports – Bug Index (BI)  Search on code repository – Code Index (CI)  Search on processed code repository– Meta Index (MI)  RQ2 : Can we combine them to increase efficacy?  RQ3 : How do different features of the source code and the bugs available in a project impact the effectiveness of search? 8
  • 9.  4 open source subjects  BIRT, Datatools (Eclipse)  Derby, Hadoop (Apache)  Linking bug reports to change-sets  Mined from references to bug-ids in commit comments  Tracing JIRA links  Test set has bug reports with at least one source file associated with them  1177 bugs in test set  35% of total bugs in chosen releases  3-4% of the bug repositories 9
  • 10.  Average Precision, Recall and F1-Score  For each bug in the test set taken as a query, we calculate precision, recall and F1-score and then average across the test-set.  Bug Coverage  Percentage of bugs in the test set for which the search returns at least one file in the recommendation set matches the ground truth. 10
  • 11.  RQ1 : How do the following search approaches compare in terms of efficacy? Are they any better than chance?  Search on past bug reports – Bug Index (BI)  Search on code repository – Code Index (CI)  Search on processed code repository– Meta Index (MI)  RQ2 : Can we combine them to increase efficacy?  RQ3 : How do different features of the source code and the bugs available in a project impact the effectiveness 11
  • 12. CI:A MI:A BI:A PRECISION RECALL F1-SCORE Increase in recall much slower than drop in precision; so F-score dips beyond result-set size of 3Increase in recall much slower than drop in precision; so F-score dips beyond result-set size of 3 Suggests that search techniques may NOT help in identifying ALL files that needs to be fixedSuggests that search techniques may NOT help in identifying ALL files that needs to be fixed
  • 13. BIRT DATATOOLS DERBY HADOOP Bug Coverage Increases with Increase in Result-set SizeBug Coverage Increases with Increase in Result-set Size None of the techniques emerge as the clear winnerNone of the techniques emerge as the clear winner MI isn’t any better than CI. Sometimes it performs worseMI isn’t any better than CI. Sometimes it performs worse Hadoop gives much better results than other 3 subjectsHadoop gives much better results than other 3 subjects 13
  • 14.  Compare with efficacy of a user who randomly selects source files from the code repository as the files to be fixed to resolve a bug  Think of the code repository as a bin of black and white balls, where the files that need fix for a bug resolution are white balls; rest are black balls.  The hyper-geometric distribution gives the probability of choosing white balls without replacement  probability p of getting at least x files that require a fix by choosing k files at random from the repository:  If p < 0.05, reject the null hypothesis that search technique is no better than chance. Do FDR test for multiple hypothesis testing. 14
  • 15.  Even if one correct result is returned for a bug, then the result is usually significant.  Datatools has many queries failing the FDR test  Certain queries have a large number of fixed files (e.g., 491 in 2 bugs)  Record the average number of files in the repository at which the techniques break even with chance: p >= 0.05  Ranges from 66 in Derby (MI:A) to 158 in Datatools (CI:A) 15
  • 16.  RQ1 : How do the following search approaches compare in terms of efficacy? Are they any better than chance?  Search on past bug reports – Bug Index (BI)  Search on code repository – Code Index (CI)  Search on processed code repository– Meta Index (MI)  RQ2 : Can we combine them to increase efficacy?  RQ3 : How do different features of the source code and the bugs available in a project impact the effectiveness 16
  • 17.  Fleiss’ Kappa analysis to measure the degree of agreement amongst the three techniques  Each technique rates a bug: Yes, if technique covers the bug; else No  Code based techniques (CI, MI) are similar, they are quite different from the bug based technique (BI)  Combine bug based and code based to get better results ?? 17
  • 18.  Fire the same query on the 3 different indices and choose the top X search results using the following ranking schemes:  RankScore: Rank using the absolute search similarity scores returned by the search engine  NormScore: Rank using a normalized similarity score - fraction of maximum score returned by the query  AggregateScore: Rank on the basis of sum of scores from different techniques  Sample: Pick the top 2*(X/5) search results from the results of BI:A and CI:A, and the remaining X/5 results from MI:A. 18
  • 19.  RankScore works better than the best of the individual techniques across all subjects  Improvement in bug coverage ranges from 1% to 46% 19
  • 20.  RQ1 : How do the following search approaches compare in terms of efficacy? Are they any better than chance?  Search on past bug reports – Bug Index (BI)  Search on code repository – Code Index (CI)  Search on processed code repository– Meta Index (MI)  RQ2 : Can we combine them to increase efficacy?  RQ3 : How do different features of the source code and the bugs available in a project impact the effectiveness 20
  • 21.  Since query sizes can become very large, there may be a need for artificially boosting important words – TitleWords, CodeWords  TitleBoost helps improve bug coverage  Except in Hadoop where the fraction of titleWords that come up significant is already high even without boost. MI MI MI MI BI CI BI BI CI CI BI CI 21
  • 22.  Compare the efficacy of techniques that directly search the code repository with those that search over past bug reports  No clear winner is observed  Bug coverage ranges from 20 to 60% across 4 subjects  Techniques are better than chance  Identifier splitting does not yield much benefit  The techniques are complementary  Bug coverage improves by 1% - 46% by combining them  Favoring title-words help in most cases 24