Testing Configuration Changes in Context to Prevent Production Failures
Testing Configuration Changes in Context to Prevent Production Failures
复制标题
DOI:
--
复制
发表时间:
2020
期刊:
影响因子:
--
通讯作者:
Xudong Sun;Runxiang Cheng;Jianyan Chen;Elaine Ang;Owolabi Legunsen;Tianyin Xu
中科院分区:
文献类型:
--
作者:
Xudong Sun;Runxiang Cheng;Jianyan Chen;Elaine Ang;Owolabi Legunsen;Tianyin Xu
Large-scale cloud services deploy hundreds of configuration changes to production systems daily. At such velocity, configuration changes have inevitably become prevalent causes of production failures. Existing misconfiguration detection and configuration validation techniques only check configuration values. These techniques cannot detect common types of failure-inducing configuration changes, such as those that cause code to fail or those that violate hidden constraints. We present ctests, a new type of tests for detecting failureinducing configuration changes to prevent production failures. The idea behind ctests is simple—connecting production system configurations to software tests so that configuration changes can be tested in the context of code affected by the changes. So, ctests can detect configuration changes that expose dormant software bugs and diverse misconfigurations. We show how to generate ctests by transforming the many existing tests in mature systems. The key challenge that we address is the automated identification of test logic and oracles that can be reused in ctests. We generated thousands of ctests from the existing tests in five cloud systems. Our results show that ctests are effective in detecting failure-inducing configuration changes before deployment. We evaluate ctests on real-world failure-inducing configuration changes, injected misconfigurations, and deployed configuration files from public Docker images. Ctests effectively detect real-world failure-inducing configuration changes, diverse injected misconfigurations and misconfigurations in the deployed files.