Predicting Faults from Cached History
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Visual Data Mining in Software Archives to Detect How Developers Work Together
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Mining Workspace Updates in CVS
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Prioritizing Warning Categories by Analyzing Software History
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Which warnings should I fix first?
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
An empirical study on the evolution of design patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Learning from bug-introducing changes to prevent fault prone code
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
A segmentation-based approach for temporal analysis of software version repositories
Journal of Software Maintenance and Evolution: Research and Practice
SZZ revisited: verifying when changes induce fixes
DEFECTS '08 Proceedings of the 2008 workshop on Defects in large software systems
Toward an understanding of bug fix patterns
Empirical Software Engineering
Listening to programmers Taxonomies and characteristics of comments in operating system code
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Change impact graphs: Determining the impact of prior codechanges
Information and Software Technology
Fair and balanced?: bias in bug-fix datasets
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
An analysis method for improving a bug modification process in open source software development
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Identifying static analysis techniques for finding non-fix hunks in fix revisions
Proceedings of the ACM first international workshop on Data-intensive software management and mining
BUGINNINGS: identifying the origins of a bug
Proceedings of the 3rd India software engineering conference
A time-lag analysis for improving communication among OSS developers
JSAI-isAI'09 Proceedings of the 2009 international conference on New frontiers in artificial intelligence
Do time of day and developer experience affect commit bugginess?
Proceedings of the 8th Working Conference on Mining Software Repositories
Assessing programming language impact on development and maintenance: a study on c and c++
Proceedings of the 33rd International Conference on Software Engineering
Dealing with noise in defect prediction
Proceedings of the 33rd International Conference on Software Engineering
Ownership, experience and defects: a fine-grained study of authorship
Proceedings of the 33rd International Conference on Software Engineering
ReLink: recovering links between bugs and changes
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
BugCache for inspections: hit or miss?
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Information and Software Technology
Faster issue resolution with higher technical quality of software
Software Quality Control
Empirical Software Engineering
Bug prediction based on fine-grained module histories
Proceedings of the 34th International Conference on Software Engineering
Is it dangerous to use version control histories to study source code evolution?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Multi-layered approach for recovering links between bug reports and fixes
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
A study of variability spaces in open source software
Proceedings of the 2013 International Conference on Software Engineering
Identifying failure inducing developer pairs within developer networks
Proceedings of the 2013 International Conference on Software Engineering
Linux variability anomalies: what causes them and how do they get fixed?
Proceedings of the 10th Working Conference on Mining Software Repositories
Proceedings of the 10th Working Conference on Mining Software Repositories
Hi-index | 0.00 |
Bug-fixes are widely used for predicting bugs or finding risky parts of software. However, a bug-fix does not contain information about the change that initially introduced a bug. Such bug-introducing changes can help identify important properties of software bugs such as correlated factors or causalities. For example, they reveal which developers or what kinds of source code changes introduce more bugs. In contrast to bug-fixes that are relatively easy to obtain, the extraction of bugintroducing changes is challenging. In this paper, we present algorithms to automatically and accurately identify bug-introducing changes. We remove false positives and false negatives by using annotation graphs, by ignoring non-semantic source code changes, and outlier fixes. Additionally, we validated that the fixes we used are true fixes by a manual inspection. Altogether, our algorithms can remove about 38%~51% of false positives and 14%~15% of false negatives compared to the previous algorithm. Finally, we show applications of bug-introducing changes that demonstrate their value for research.