Herodotos: A Tool to Expose Bugs' Lives
Speaker(s) : Nicolas Palix
Software is continually evolving, to improve performance, correct errors, and add new features. Code modifications, however, inevitably lead to the introduction of defects. To prevent the introduction of defects, one has to understand why they occur. Thus, it is important to develop tools and practices that aid in defect finding, tracking and prevention. For instance, one may want to determine when defects are introduced and removed to infer good developing practices.
We have developed a methodology and its associated tool, Herodotos, to study defects over time. Herodotos semi-automatically tracks defects over multiple versions of a software project, independently of other changes in the source files. To do so, it relies on a static code analyzer, e.g. Coccinelle, and the diff tool. Once the defects are correlated across versions, Herodotos builds a graphical history of each defect, outlines their evolution, and gives some statistics on the defects. To generate accurate information, the user may identify false positives during the process.
In this talk, we present our methodology, and an evaluation of Herodotos on the history of four open source projects over the last three years. For each project, we explore several kinds of defects and analyze the generated results to compare the selected software projects and defect kinds.
Nicolas Palix is a post-doc in the APL group at the University of Copenhagen (DIKU). During his PhD, he worked on two domain-specific languages for communication services, namely SPL and Pantaxou. These languages rely on associated middlewares based on the SIP protocol, a IETF protocol initially designed for IP telephony. He has been working
on the Coccinelle project since October 2008 and is investigating new usages for the spatch tool beyond software evolutions and bug fixing.
He especially studies defect histories and collaborative development of semantic patches.
More information can be found on http://www.diku.dk/~npalix/
Lamia.Benmouffok (at) null