Which configuration option should I change?

Download: PDF, slides (PDF), slides (PowerPoint), ConfSuggester implementation.

“Which configuration option should I change?” by Sai Zhang and Michael D. Ernst. In ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, (Hyderabad, India), June 2014, pp. 152-163.

Abstract

Modern 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.

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.

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.

Download: PDF, slides (PDF), slides (PowerPoint), ConfSuggester implementation.

BibTeX entry:

@inproceedings{ZhangE2014,
   author = {Sai Zhang and Michael D. Ernst},
   title = {Which configuration option should {I} change?},
   booktitle = {ICSE 2014, Proceedings of the 36th International
	Conference on Software Engineering},
   pages = {152--163},
   address = {Hyderabad, India},
   month = jun,
   year = {2014}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.