TitleWhich configuration option should I change?
Publication TypeConference Paper
Year of Publication2014
AuthorsZhang S, Ernst MD
Conference NameICSE 2014, Proceedings of the 36th International Conference on Software Engineering
Pagination152–163
Date or Month PublishedJune
Conference LocationHyderabad, India
AbstractModern software often exposes configuration options that enable users to customize its behavior. During software evolution, developers may change how the configuration options behave. When upgrading to a new software version, users may need to re-configure the software by changing the values of certain configuration options. \par This paper addresses the following question during the evolution of a configurable software system: which configuration options should a user change to maintain the software's desired behavior? This paper presents a technique (and its tool implementation, called ConfSuggester) to troubleshoot configuration errors caused by software evolution. ConfSuggester uses dynamic profiling, execution trace comparison, and static analysis to link the undesired behavior to its root cause –- a configuration option whose value can be changed to produce desired behavior from the new software version. \par We evaluated ConfSuggester on 8 configuration errors from 6 configurable software systems written in Java. For 6 errors, the root-cause configuration option was ConfSuggester's first suggestion. For 1 error, the root cause was ConfSuggester's third suggestion. The root cause of the remaining error was ConfSuggester's sixth suggestion. Overall, ConfSuggester produced significantly better results than two existing techniques. ConfSuggester runs in just a few minutes, making it an attractive alternative to manual debugging.
Downloadshttps://github.com/zhang-sai/config-errors ConfSuggester implementation https://homes.cs.washington.edu/~mernst/pubs/confsuggester-icse2014.pdf PDF https://homes.cs.washington.edu/~mernst/pubs/confsuggester-icse2014-slid... slides (PDF)
Citation KeyZhangE2014