Recent News
UNM student creates game-changing in-seat food delivery service
April 1, 2025
Dissertation defense, April 7: Ala Jararweh
March 31, 2025
Dissertation defense, April 4: John Ringer
March 31, 2025
Computer Science Colloquium will discuss the use of AI in cyber-physical systems
March 27, 2025
News Archives
[Colloquium] Predicting Bugs by Analyzing Software History
February 12, 2008
- Date: Tuesday, February 12, 2008
- Time: 11 am — 12:15 pm
- Place: ME 218
Sunghun Kim
Postdoctoral Associate
MIT
Abstract: Almost all software contains undiscovered bugs, ones that have not yet been exposed by testing or by users. What is the location of these bugs? This talk presents two approaches for predicting the location of bugs by analyzing software history. First, the bug cache contains 10% of the files in a software project. Through an analysis of the software’s development history and the location of bugs, files are added and removed from the cache based on four bug localities: temporal, spatial, changed-entity, and new-entity locality. After processing, files in the bug cache contain 73-95% of undiscovered bugs. Second, to further improve the localization of predicted bugs, automatic change classification uses information from the configuration management commit transactions. Using machine learning techniques (Bayes Net, Support Vector Machines), we classify commits as being likely to have a fault, or unlikely to have a fault. The best precision and recall figures for each project are typically in the mid-70′s. Hence, it is possible for a configuration management system to inform a developer, post-commit, that they have just created a bug (with approximately 94% likelihood).
Bio: Sunghun Kim is a postdoctoral associate at MIT and a member of the Program Analysis Group. He completed his Ph.D. in the Computer Science Department at the University of California, Santa Cruz in 2006. He was a Chief Technical Officer (CTO), and led a 25-person team at the Nara Vision Co. Ltd, a leading Internet software company in Korea for six years. His core research area is Software Engineering, focusing on software evolution, program analysis, and empirical studies.