Framing program comprehension as fault localization. Issue 10 (20th July 2016) - Perez, Alexandre; Abreu, Rui
Abstract: Program comprehension is a time‐consuming task performed during the process of reusing, reengineering, and enhancing existing systems. There are tools to assist comprehension by means of dynamic analysis, but most cannot identify the topology and the interactions of certain functionality in need of change. We propose an approach, coined Spectrum‐based Feature Comprehension (SFC), that borrows techniques from software‐fault localization that were proven to be effective even when debugging large applications. SFC analyses the program by exploiting run‐time information from test case executions to identify the components that are important for a given feature, helping software engineers to understand how a program is structured and each of the functionality's dependencies are. We present a toolset, coined PANGOLIN, that implements SFC and displays its report to the user using an intuitive visualization. A user study presented demonstrating PANGOLIN's efficiency in locating components that should be inspected when changing a certain functionality. Participants using SFC spent a median of 50 min locating the feature with greater accuracy, whereas participants using coverage tools took 60 min. Finally, we also detail the Participatory Feature Detection approach, where user interactions with the system are captured; removing the hindrance of requiring pre‐existing automated tests. Copyright © 2016 John Wiley & Sons, Ltd.