SlideShare a Scribd company logo
ASE 2014 
An Empirical Study on Reducing 
Omission Errors in Practice 
Jihun Park1, Miryung Kim2, Doo-Hwan Bae1 
1. KAIST, South Korea 
2. University of California, Los Angeles (UCLA), USA
Predicting co-changed entities 
2 
A.java 
B.java 
C.java 
… … 
Revision 7365 Version history 
Can we predict an additional change location in 
a transaction? 
• Change coupling (mining SW repositories): Zimmermann et al., 
Ying et al., Hassan and Holt, Herzig and Zeller 
• Structural dependency: Robillard, Saul et al. 
• Cloning-based relationship: Nguyen et al.
Predicting omission errors 
Version history 
3 
… 
Initial change Supplementary change 
A.java 
B.java 
C.java 
Revision 101 
A.java 
D.java 
E.java 
Revision 125 
… … 
Log: Fix bug #10000 Log: Patch bug #10000 
A developer missed to update D and E (omission error) 
Can we predict the supplementary change location, 
given the initial change location?
Key contributions 
• To systematically investigate a real-world supplementary 
patch data set, we suggest a graph representation 
change relationship graph (CRG). 
1. While a single trait is inadequate, combining multiple 
4 
traits is limited as well. 
2. A boosting approach does not significantly improve the 
accuracy. 
3. There is no package or developer specific pattern. 
4. There is no repeated mistake.
Change Relationship Graph (CRG) 
Study subjects: Eclipse JDT core, Eclipse SWT, and Equinox p2 
5 
• Graph Nodes 
• Classes 
• Methods 
• Graph Edges 
• Extends 
• Contains 
• Method invocation 
(calls, called by) 
• Historical 
co-change 
• Code clone 
• Name similarity 
Class Class 
contains contains 
Method 
Code clone 
calls 
Method 
Method 
An initial change location 
The supplementary change location 
* Saha et al. A graph-based framework for reasoning about 
relationships among software modifications. TR 2014
Observation 1: While a single trait is inadequate, 
combining multiple traits is limited as well. 
• Only 10% to 20% of supplementary change locations 
can be connected with one edge from their initial 
change location. 
• Combining multiple traits as a prediction rule shows 
at most 10% accuracy 
Code clone edge, and calls edge: Suggest locations that are called by 
some location X, and the content of X is similar to the initial 
change location 
6 
Initial X 
(arbitrary) 
Combining multiple traits does not predict 
supplementary change locations accurately 
Supplem 
entary 
Code clone calls
Observation 2: A boosting approach does not 
improve the accuracy. 
• We design a boosting approach that sums up the trained 
accuracy of rules connecting initial and supplementary 
change locations to calculate a prediction score 
calls, called by 
Initial Candidate 
Sums up the trained accuracy of these rules. 
Suggest locations which have 
high prediction scores 
• This approach cannot accurately predict supplementary 
change location (at most 7% precision). 
7 
Method 1 Method 2 
Co-change 
Supplementary 
A Prediction score 
for method 2 
A boosting approach based on the past prediction accuracy 
also cannot accurately predict supplementary change locations.
Observation 3: There is no package or developer 
specific pattern. 
• We filter prediction rules based on package or 
developer specific information. 
Package A 
Accuracy of code clone: 40% 
Accuracy of co-change: 10% 
• We make boosting approaches based on the package 
and developer specific prediction rules. 
• The improvements are negligible; the highest 
accuracy improvement is only 1.2% 
8 
No package or developer specific pattern between initial and 
supplementary change locations exists.
Observation 4: There is no repeated mistake. 
• We investigate whether repeated patterns between 
initial and supplementary change locations exist. 
Initial Supplementary 
… … A.java 
• 78% to 96% of the discovered patterns appear only once. 
• 69% to 84% of initial change locations appear only once. 
9 
Developers rarely make repeated 
mistakes at the same location 
Version history 
A.java B.java 
Initial 
Rev. 100 Rev. 109 Rev. 200
Conclusion 
• We systematically study omission errors using a real-world 
10 
supplementary patch data set. 
• Version history based pattern mining cannot be 
accurate at finding supplementary change locations. 
• Past prediction accuracy, and package or developer 
specific information do not help. 
• We share our skepticism that reducing real-world 
omission errors is inherently challenging.
ASE 2014 
Thank you for listening 
An Empirical Study on Reducing 
Omission Errors in Practice 
Jihun Park1, Miryung Kim2, Doo-Hwan Bae1 
1. KAIST, South Korea 
2. University of California, Los Angeles (UCLA), USA

More Related Content

PPTX
Review Mining of Products of Amazon.com
PDF
Search-based testing of procedural programs:iterative single-target or multi-...
PPTX
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
PDF
Model-Driven Run-Time Enforcement of Complex Role-Based Access Control Policies
PDF
A Introduction To A-B Test
PPT
evaluation rules
PPT
Experiments on Design Pattern Discovery
PPT
Using Developer Information as a Prediction Factor
Review Mining of Products of Amazon.com
Search-based testing of procedural programs:iterative single-target or multi-...
On Parameter Tuning in Search-Based Software Engineering: A Replicated Empiri...
Model-Driven Run-Time Enforcement of Complex Role-Based Access Control Policies
A Introduction To A-B Test
evaluation rules
Experiments on Design Pattern Discovery
Using Developer Information as a Prediction Factor

What's hot (20)

PDF
On the application of SAT solvers for Search Based Software Testing
PDF
Instance Space Analysis for Search Based Software Engineering
PDF
Bug or Not? Bug Report Classification using N-Gram Idf
PPTX
Software testing using genetic algorithms
PPTX
Optimizing SPARQL Query Processing On Dynamic and Static Data Based on Query ...
PDF
Poster: Improving Bug Localization with Report Quality Dynamics and Query Ref...
PDF
Can we predict the quality of spectrum-based fault localization?
PDF
Metamorphic Security Testing for Web Systems
PDF
Experimental design
PDF
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
PPTX
The Tester’s Dashboard: Release Decision Support
PDF
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
PDF
Speeding-up Software Testing With Computational Intelligence
PDF
Testing Machine Learning-enabled Systems: A Personal Perspective
PPT
Orthogonal array testing
PPTX
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
PPTX
SPoC: search-based pseudocode to code
PDF
Towards a Better Understanding of the Impact of Experimental Components on De...
PDF
Software bug prediction
DOCX
A PARTICLE SWARM OPTIMIZATION TECHNIQUE FOR GENERATING PAIRWISE TEST CASES
On the application of SAT solvers for Search Based Software Testing
Instance Space Analysis for Search Based Software Engineering
Bug or Not? Bug Report Classification using N-Gram Idf
Software testing using genetic algorithms
Optimizing SPARQL Query Processing On Dynamic and Static Data Based on Query ...
Poster: Improving Bug Localization with Report Quality Dynamics and Query Ref...
Can we predict the quality of spectrum-based fault localization?
Metamorphic Security Testing for Web Systems
Experimental design
AUTOMATIC GENERATION AND OPTIMIZATION OF TEST DATA USING HARMONY SEARCH ALGOR...
The Tester’s Dashboard: Release Decision Support
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Speeding-up Software Testing With Computational Intelligence
Testing Machine Learning-enabled Systems: A Personal Perspective
Orthogonal array testing
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
SPoC: search-based pseudocode to code
Towards a Better Understanding of the Impact of Experimental Components on De...
Software bug prediction
A PARTICLE SWARM OPTIMIZATION TECHNIQUE FOR GENERATING PAIRWISE TEST CASES
Ad

Viewers also liked (12)

PDF
Object Detection and Recognition
PPTX
Object Detection Methods using Deep Learning
PPTX
Q Learning과 CNN을 이용한 Object Localization
PDF
20140131 R-CNN
PPTX
CNN Presentation
PPTX
Object Recognition
PPT
Moving object detection
PPTX
論文紹介: Fast R-CNN&Faster R-CNN
PPTX
쫄지말자딥러닝2 - CNN RNN 포함버전
PPTX
Faster rcnn
PDF
Faster R-CNN: Towards real-time object detection with region proposal network...
PDF
Deep Learning for Computer Vision: Object Detection (UPC 2016)
Object Detection and Recognition
Object Detection Methods using Deep Learning
Q Learning과 CNN을 이용한 Object Localization
20140131 R-CNN
CNN Presentation
Object Recognition
Moving object detection
論文紹介: Fast R-CNN&Faster R-CNN
쫄지말자딥러닝2 - CNN RNN 포함버전
Faster rcnn
Faster R-CNN: Towards real-time object detection with region proposal network...
Deep Learning for Computer Vision: Object Detection (UPC 2016)
Ad

Similar to [ASE2014] An Empirical Study on Reducing Omission Errors in Practice (20)

PDF
Ensemble Techniques for Software Change Prediction: A Preliminary Investigation
ZIP
Test Driven Development
PDF
iOS Test-Driven Development
PDF
The Last Line Effect
PDF
Sustainable TDD
PPT
PhD Proposal
PDF
Property based tests and where to find them - Andrzej Jóźwiak - TomTom Webina...
PDF
Unit Test using Test Driven Development Approach to Support Reusability
PPTX
Test Driven Development: Why I hate it; but secretly love it.
PPTX
Thesis Talk
PDF
Regression Optimizer
PDF
Have Java Production Methods Co-Evolved With Test Methods Properly?: A Fine-G...
PPTX
Test driven development
KEY
Reliability Vs. Testing
PDF
Keeping code clean
PDF
Junit Recipes - Elementary tests (2/2)
PPTX
Test driven development
PDF
Introducción a TDD
PPTX
Tomasz Polanski - Droidcon Berlin 2016
PDF
Mining Source Code Improvement Patterns from Similar Code Review Works
Ensemble Techniques for Software Change Prediction: A Preliminary Investigation
Test Driven Development
iOS Test-Driven Development
The Last Line Effect
Sustainable TDD
PhD Proposal
Property based tests and where to find them - Andrzej Jóźwiak - TomTom Webina...
Unit Test using Test Driven Development Approach to Support Reusability
Test Driven Development: Why I hate it; but secretly love it.
Thesis Talk
Regression Optimizer
Have Java Production Methods Co-Evolved With Test Methods Properly?: A Fine-G...
Test driven development
Reliability Vs. Testing
Keeping code clean
Junit Recipes - Elementary tests (2/2)
Test driven development
Introducción a TDD
Tomasz Polanski - Droidcon Berlin 2016
Mining Source Code Improvement Patterns from Similar Code Review Works

Recently uploaded (20)

PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Geodesy 1.pptx...............................................
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
PPT on Performance Review to get promotions
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Digital Logic Computer Design lecture notes
PPTX
Safety Seminar civil to be ensured for safe working.
PPT
introduction to datamining and warehousing
PPTX
additive manufacturing of ss316l using mig welding
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
web development for engineering and engineering
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
CH1 Production IntroductoryConcepts.pptx
Geodesy 1.pptx...............................................
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Model Code of Practice - Construction Work - 21102022 .pdf
R24 SURVEYING LAB MANUAL for civil enggi
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT on Performance Review to get promotions
Embodied AI: Ushering in the Next Era of Intelligent Systems
Operating System & Kernel Study Guide-1 - converted.pdf
Digital Logic Computer Design lecture notes
Safety Seminar civil to be ensured for safe working.
introduction to datamining and warehousing
additive manufacturing of ss316l using mig welding
CYBER-CRIMES AND SECURITY A guide to understanding
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
web development for engineering and engineering
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...

[ASE2014] An Empirical Study on Reducing Omission Errors in Practice

  • 1. ASE 2014 An Empirical Study on Reducing Omission Errors in Practice Jihun Park1, Miryung Kim2, Doo-Hwan Bae1 1. KAIST, South Korea 2. University of California, Los Angeles (UCLA), USA
  • 2. Predicting co-changed entities 2 A.java B.java C.java … … Revision 7365 Version history Can we predict an additional change location in a transaction? • Change coupling (mining SW repositories): Zimmermann et al., Ying et al., Hassan and Holt, Herzig and Zeller • Structural dependency: Robillard, Saul et al. • Cloning-based relationship: Nguyen et al.
  • 3. Predicting omission errors Version history 3 … Initial change Supplementary change A.java B.java C.java Revision 101 A.java D.java E.java Revision 125 … … Log: Fix bug #10000 Log: Patch bug #10000 A developer missed to update D and E (omission error) Can we predict the supplementary change location, given the initial change location?
  • 4. Key contributions • To systematically investigate a real-world supplementary patch data set, we suggest a graph representation change relationship graph (CRG). 1. While a single trait is inadequate, combining multiple 4 traits is limited as well. 2. A boosting approach does not significantly improve the accuracy. 3. There is no package or developer specific pattern. 4. There is no repeated mistake.
  • 5. Change Relationship Graph (CRG) Study subjects: Eclipse JDT core, Eclipse SWT, and Equinox p2 5 • Graph Nodes • Classes • Methods • Graph Edges • Extends • Contains • Method invocation (calls, called by) • Historical co-change • Code clone • Name similarity Class Class contains contains Method Code clone calls Method Method An initial change location The supplementary change location * Saha et al. A graph-based framework for reasoning about relationships among software modifications. TR 2014
  • 6. Observation 1: While a single trait is inadequate, combining multiple traits is limited as well. • Only 10% to 20% of supplementary change locations can be connected with one edge from their initial change location. • Combining multiple traits as a prediction rule shows at most 10% accuracy Code clone edge, and calls edge: Suggest locations that are called by some location X, and the content of X is similar to the initial change location 6 Initial X (arbitrary) Combining multiple traits does not predict supplementary change locations accurately Supplem entary Code clone calls
  • 7. Observation 2: A boosting approach does not improve the accuracy. • We design a boosting approach that sums up the trained accuracy of rules connecting initial and supplementary change locations to calculate a prediction score calls, called by Initial Candidate Sums up the trained accuracy of these rules. Suggest locations which have high prediction scores • This approach cannot accurately predict supplementary change location (at most 7% precision). 7 Method 1 Method 2 Co-change Supplementary A Prediction score for method 2 A boosting approach based on the past prediction accuracy also cannot accurately predict supplementary change locations.
  • 8. Observation 3: There is no package or developer specific pattern. • We filter prediction rules based on package or developer specific information. Package A Accuracy of code clone: 40% Accuracy of co-change: 10% • We make boosting approaches based on the package and developer specific prediction rules. • The improvements are negligible; the highest accuracy improvement is only 1.2% 8 No package or developer specific pattern between initial and supplementary change locations exists.
  • 9. Observation 4: There is no repeated mistake. • We investigate whether repeated patterns between initial and supplementary change locations exist. Initial Supplementary … … A.java • 78% to 96% of the discovered patterns appear only once. • 69% to 84% of initial change locations appear only once. 9 Developers rarely make repeated mistakes at the same location Version history A.java B.java Initial Rev. 100 Rev. 109 Rev. 200
  • 10. Conclusion • We systematically study omission errors using a real-world 10 supplementary patch data set. • Version history based pattern mining cannot be accurate at finding supplementary change locations. • Past prediction accuracy, and package or developer specific information do not help. • We share our skepticism that reducing real-world omission errors is inherently challenging.
  • 11. ASE 2014 Thank you for listening An Empirical Study on Reducing Omission Errors in Practice Jihun Park1, Miryung Kim2, Doo-Hwan Bae1 1. KAIST, South Korea 2. University of California, Los Angeles (UCLA), USA

Editor's Notes

  • #2: Good afternoon, I’m Jihun Park, from KAIST, South Korea. This work is advised by Professor Miryung Kim at UCLA and Professor Doo-Hwan Bae at KAIST. Today, I will be presenting an Empirical Study on Reducing Omission Errors in Practice
  • #3: Before I go into the main part of the talk, let me briefly summarize the motivation for our study. Over the past decade, many change recommendation systems have been proposed to identify additional change locations using change coupling, structural dependency, and cloning-based relationship. These approaches, however, only concentrated on predicting co-changed program entities. For example, given a program entity in a transaction, they predicted remaining entities of the transaction.
  • #4: To study a real-world omission errors, we create a supplementary patch data set. We parse commit logs to get bug IDs corresponding to each revision, then we find that some bugs are fixed more than once. When a developer fixes the same bug multiple times, this means that the first commit is either incomplete or incorrect, requiring supplementary patches to fix the bug completely.  We define this type of error as omission errors. We also define the first commit as initial change, and the following commits as supplementary changes or supplementary patches. The goal of this paper is empirically studying the feasibility whether we can reduce these omission errors by predicting supplementary change locations given an initial change location.
  • #5: Let me briefly describe our approach and key contributions, before I discuss in detail. To systematically investigate a real-world omission errors, based on the supplementary patch data set, we suggest a graph representation called Change Relationship Graph (CRG) based on program entities and the relationships between them. We found four observations. First, while a single prediction method is not enough, combining multiple prediction methods is inaccurate as well. Second, a machine learning technique based on past prediction accuracy information, boosting, does not significantly improve the prediction accuracy. Third, filtering prediction based on package or developer specific information do not improve the accuracy. Fourth, developers rarely make the same mistake on the same location. As a result, we would like to share our skepticism that reducing real-world omission errors is inherently challenging.
  • #6: To represent the relationship between initial and supplementary change locations, we develop a graph representation called change relationship graph. Change relationship graph is defined by graph nodes and graph edges. We use program entities as graph nodes, such as classes and methods. Graph edges represents the relationship between the program entities. They include structural dependencies, such as extends, contains, and method invocations. Graph edges also include historical co-change, code clone, and name similarity relationships. We use Eclipse JDT core, Eclipse SWT, and Equinox p2 as our study subjects. Our goal is identifying the supplementary change location, give an initial change location.
  • #7: As the first observation, We investigate the relationship between initial and supplementary change locations. We find that only 10 to 20% of supplementary change location can be connected with one edge from their initial change location. This result indicates that existing change recommendation systems can predict only a small portion of supplementary change locations. We use single or multiple edges as prediction rule. For example, a code clone edge and a calls edge can represent a prediction rule that suggesting candidate supplementary change locations that are connected by these two types of edges from the initial change location. Please note that there is an arbitrary node between the relationship edges, if it consists of multiple relationship edges. We identify every prediction rule connecting initial and corresponding supplementary change locations. We then investigate the accuracy of them when they are applied to the initial change locations to predict supplementary change locations. We found that the accuracies of the prediction rules are at most 10% in terms of f-score, which is very low. This result indicates that there is no repeated relationship between initial and supplementary change locations. A sub-conclusion here is that combining multiple traits does not predict supplementary change locations accurately.
  • #8: For the second observation, We hypothesis that the past accuracy information may improve the accuracy of the future prediction. We divide our supplementary patch data set into a training set and an evaluation set. We use a boosting approach based on the accuracy information in the training set. Boosting is originally a machine learning technique, that combines weak learners to make a strong learner. It assumes that a method which showed high accuracy in the past, will also show high accuracy in the future. We calculate a prediction score by summing up trained accuracy of rules connecting initial and candidate supplementary change locations. For example, in this figure, we sums up trained accuracy of these two rules to get the prediction score for method 2. After that, we rank locations in the order of the prediction score, to suggest supplementary change locations. Our investigation result, however, showed that the precision of this approach is only 7% at most, even we suggest only three nodes as candidate supplementary change locations. We conclude here that boosting approach based on the past prediction accuracy also cannot accurately predict supplementary change locations.
  • #9: As the third observation, We filter prediction rules based on package or developer specific information, because a similar pattern of relationship would be repeated in a specific package or by the same developer. For example, a specific relationship, code-clone relationship in this example, would be more common and more accurate in a specific package than the other relationships. We make boosting approaches, similar to the previous slide, based on package and developer specific prediction rules. We find that, however, the improvement are very negligible, or even the accuracy of the boosting approaches based on package or developer specific rules are even lower than the accuracy of a boosting approach based on regular rules in some cases. We find that no package or developer specific pattern between initial and supplementary change locations exists.
  • #10: As the fourth observation, We investigate whether repeated patterns between initial and supplementary change locations exist. For example, if there is a pattern that initial change on file A implies a supplementary patch in file B, then we can suggest file B as the supplementary change location for the change on file A in the future. We investigate how many of the patterns are repeated in the version history. Our investigation result shows that the majority of patterns, 78% to 96% of them, appear only once in the version history. In addition, about 70 to 80% of initial change locations appear only once in the version history. These results indicate that developers rarely make the same mistake on the same location
  • #11: In conclusion.. We systematically study omission errors using a real-world supplementary patch data set, and we also create a graph representation called change relationship graph based on the data set to represent the relationship between program entities. We found that version history based pattern mining cannot be accurate at finding supplementary change locations, because there is no repeated single relationship and combined relationships, and developers do not make the similar mistake again. In addition, past prediction accuracy information based machine learning technique, and filtering prediction based on package and developer specific information also do not improve the accuracy of the prediction. We would like to share our skepticism that reducing real-world omission errors is very difficult and inherently challenging.
  • #12: Thank you for listening, I’m Jihun Park, from KAIST, South Korea. Thank you.