Abstract
Recent studies indicate that multiple patches to software are found in a hefty portion of resolved bugs. It is also known that bugs that require multiple patches take longer to resolve, that their severity tends to be higher than the average and that they induce programmers to engage more in bug discussions. This work is concerned with the ability of programmers to predict a bug will be of this sort, and in particular that it may require future patches and greater refixing effort at the time the bug is fixed at the first time. A mathematical model is developed for a retrospective analysis of bugs maintenance history. In this model we compute the impact of an array of bug properties on the likelihood that a specific bug is chosen, among all open bugs, to receive its first fix. The studies we conduct on a sizable portion of the history of the Eclipse code base indicate that programmers tend to attend first to bugs which are easier to fix. The results further suggest that some of the criteria that programmers apply (probably unknowingly) to determine whether a bug is easy to fix, is the number of future patches it would require, and the amount of work involved in these patches. This is despite the fact that this information is not supposed to be available to the programmers at the time the first fix is made. It is anticipated that the method of analysis introduced in this work would have other applications in software engineering, but also outside of computer science.
- J. Andersen and J. Lawall. Generic patch inference. In Proc. of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE'08), page 337--346. IEEE Computer Society, Sept. 2008. Google ScholarDigital Library
- K. Arnold, J. Gosling, and D. Holmes. The Java programming language, volume 2. Addison-wesley Reading, 1996. Google ScholarDigital Library
- N. Bettenburg, S. Just, A. Schröter, C. Weiss, R. Premraj, and T. Zimmermann. What makes a good bug report? In Proc. of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, SIGSOFT '08/FSE-16, pages 308--318, Atlanta, Georgia, 2008. Google ScholarDigital Library
- T. Cohen and J. Gil. Self-calibration of metrics of java methods. In Proceedings. 37th International Conference on Technology of Object-Oriented Languages and Systems, 2000. TOOLS-Pacific 2000, pages 94--106. IEEE, 2000.Google ScholarCross Ref
- M. Fischer, M. Pinzger, and H. Gall. Populating a release history database from version control and bug tracking systems. In Proc. of the International Conference on Software Maintenance, ICSM'03, pages 23--32, Amsterdam, Netherlands, 2003. IEEE Comput. Soc. Google ScholarDigital Library
- E. Giger, M. Pinzger, and H. Gall. Predicting the fix time of bugs. In Proc. of the 2nd International Workshop on Recommendation Systems for Software Engineering, RSSE '10, pages 52--56, Cape Town, South Africa, 2010. Google ScholarDigital Library
- Z. Gu, E. T. Barr, D. J. Hamilton, and Z. Su. Has the bug really been fixed? In the 32nd ACM/IEEE International Conference on Software Engineering, volume 1 of ICSE'10, page 55--64, 2010. Google ScholarDigital Library
- A. E. Hassan and R. C. Holt. Predicting change propagation in software systems. In the 20th IEEE International Conference on Software Maintenance, ICSM'04, page 284--293. IEEE Computer Society, 2004. Google ScholarDigital Library
- M. Kim, S. Sinha, C. GoIL andrg, H. Shah, M. Harrold, and M. Nanda. Automated bug neighborhood analysis for identifying incomplete bug fixes. In the 3th International Conference on Software Testing, Verification and Validation (ICST'10), pages 383--392. IEEE Computer Society, Apr. 2010. Google ScholarDigital Library
- S. Kim and E. J. Whitehead, Jr. How long did it take to fix bugs? In Proc. of the 3rd International Workshop on Mining software Repositories, MSR'06, pages 173--174, Shanghai, China, 2006. Google ScholarDigital Library
- M. E. J. Newman. Power laws, pareto distributions and zipf's law. Contemporary physics, 46(5):323--351, 2005.Google ScholarCross Ref
- T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. Al-Kofahi, and T. N. Nguyen. Recurring bug fixes in object-oriented programs. In Proc. of the 32nd ACM/IEEE International Conference on Software Engineering, volume 1 of ICSE '10, pages 315--324, Cape Town, South Africa, 2010. Google ScholarDigital Library
- L. D. Panjer. Predicting Eclipse bug lifetimes. In Proc. of the 4th International Workshop on Mining Software Repositories, MSR'07, pages 29--32, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- J. Park, M. Kim, B. Ray, and D.-H. Bae. An empirical study of supplementary bug fixes. In Proc. of the 9th Working Conference on Mining Software Repositories, MSR'12, pages 40--49, Zürich, Switzerland, June 2012. IEEE. Google ScholarDigital Library
- R. Purushothaman and D. E. Perry. Toward understanding the rhetoric of small source code changes. IEEE Transactions on Software Engineering, 31(6):511--526, 2005. Google ScholarDigital Library
- M. P. Robillard. Automatic generation of suggestions for program investigation. In the 10th European Software Engineering Conference (ESEC'05), page 11--20, 2005. Google ScholarDigital Library
- S. Valverde, R. F. Cancho, and R. V. Sole. Scale-free networks from optimal design. EPL (Europhysics Letters), 60(4):512, 2002.Google Scholar
- D. Cubranić and G. C. Murphy. Hipikat: recommending pertinent software development artifacts. In Proc. of the 25th International Conference on Software Engineering, ICSE '03, pages 408--418, Portland, OR, USA, 2003. IEEE Computer Society. Google ScholarDigital Library
- C. Weiss, R. Premraj, T. Zimmermann, and A. Zeller. How long will it take to fix this bug? In Proc. of the 4th International Workshop on Mining Software Repositories, MSR'07, pages 1--8, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- R. Wheeldon and S. Counsell. Power law distributions in class relationships. In Third IEEE International Workshop on Source Code Analysis and Manipulation, 2003. Proceedings., pages 45--54. IEEE, 2003.Google ScholarCross Ref
- D. L. X. Wang, J. Cheng, L. Zhang, H. Mei, and J. X. Yu. Matching dependence-related queries in the system dependence graph. In the IEEE/ACM international conference on Automated software engineering (ASE'10), page 457--466, 2010. Google ScholarDigital Library
- J. L. Y. Padioleau, R. R. Hansen, and G. Muller. Documenting and automating collateral evolutions in linux device drivers. In the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems (EUROSYS'08), page 247--260, 2008. Google ScholarDigital Library
- X. Zhang, S. Tallam, N. Gupta, and R. Gupta. Towards locating execution omission errors. In the 2007 ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI'07), page 415--424, 2007. Google ScholarDigital Library
- T. Zimmermann and P. Weissgerber. Preprocessing CVS data for fine-grained analysis. In Proc. of the 1st International Workshop on Mining Software Repositories, MSR'04, 2004.Google ScholarCross Ref
Recommendations
Memories of bug fixes
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineeringThe change history of a software project contains a rich collection of code changes that record previous development experience. Changes that fix bugs are especially interesting, since they record both the old buggy code and the new fixed code. This ...
Supplementary Bug Fixes vs. Re-opened Bugs
SCAM '14: Proceedings of the 2014 IEEE 14th International Working Conference on Source Code Analysis and ManipulationA typical bug fixing cycle involves the reporting of a bug, the triaging of the report, the production and verification of a fix, and the closing of the bug. However, previous work has studied two phenomena where more than one fix are associated with ...
Automated Bug Neighborhood Analysis for Identifying Incomplete Bug Fixes
ICST '10: Proceedings of the 2010 Third International Conference on Software Testing, Verification and ValidationAlthough many static-analysis techniques have been developed for automatically detecting bugs, such as null dereferences, fewer automated approaches have been presented for analyzing whether and how such bugs are fixed. Attempted bug fixes may be ...
Comments