Time Will Tell: Using Time Spectra for Fault Localization
Program debugging is a process of identifying and fixing bugs. At a high level, it consists of three steps: (1) observing symptoms, (2) identifying root causes, and (3) fixing and testing. Among these steps, identifying the root causes is the hardest, thus the most expensive, step of all. Developers often take a slice of the statements involved in a failure, hypothesize a set of potential causes in an ad hoc manner, and iteratively verify and refine their hypotheses until root causes are located. Obviously, this process can be quite tedious and time-consuming. In this talk, I’ll introduce an automated fault localization approach, called Time Will Tell (TWT), to help developers quickly pinpoint the root causes of failures. The TWT approach leverages time spectra (e.g., traces of method execution times) as abstractions for program executions. Time spectra have been traditionally used for performance debugging to detect “hotspots” in program code. By contrast, I use them in a novel way for functional correctness debugging by identifying pieces of program code that take a “suspicious” amount of time to execute.
Cemal Yılmaz received the BS and MS degrees in computer engineering and information science from Bilkent University, Ankara, Turkey, in 1997 and 1999, respectively. In 2002 and 2005, he received the MS and PhD degrees in computer science from the University of Maryland, College Park, MD, USA. Between 2005 and 2008, Dr. Yılmaz worked at IBM T. J. Watson Research Center, NY, USA. He has been a faculty member at Sabancı University since September 2008. Dr. Yılmaz’s primary research area is software engineering. His broad research interest is on programmer productivity. He invents practical techniques and develops tools to help programmers create cheaper, faster, and more reliable software systems. In particular, Dr. Yılmaz’s research interests include, but not limited to: distributed, continuous quality assurance, automated fault localization, software testing, performance debugging and runtime performance steering, and highly configurable systems.
Dec. 24, 2008, 13:40, FENS L030