@inproceedings{bhagwan2021learning, author = {Bhagwan, Ranjita and Mehta, Sonu and Radhakrishna, Arjun and Garg, Sahil}, title = {Learning Patterns in Configuration}, booktitle = {2021 Automated Software Engineering}, year = {2021}, month = {November}, abstract = {Large services depend on correct configuration to run efficiently and seamlessly. Checking such configuration for correctness is important because services use a large and continuously increasing number of configuration files and parameters. Yet, very few such tools exist because the permissible values for a configuration parameter are seldom specified or documented, existing at best as tribal knowledge among a few domain experts. In this paper, we address the problem of configuration pattern mining: learning configuration rules from examples. Using program synthesis and a novel string profiling algorithm, we show that we can use file contents and histories of commits to learn patterns in configuration. We have built a tool called ConfMiner that implements configuration pattern mining and have evaluated it on four large repositories containing configuration for a large-scale enterprise service. Our evaluation shows that ConfMiner learns a large variety of configuration rules with high precision and is very useful in flagging anomalous configuration.}, url = {http://approjects.co.za/?big=en-us/research/publication/learning-patterns-in-configuration/}, }