Gang of Eight: A Defect Taxonomy for Infrastructure as Code Scripts

Gang of Eight: A Defect Taxonomy for Infrastructure as Code Scripts
复制标题

DOI:
10.1145/3377811.3380409
复制
发表时间:
2020-06
期刊:
2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE)
影响因子:
--
通讯作者:
A. Rahman;Effat Farhana;Chris Parnin;L. Williams
A. Rahman;Effat Farhana;Chris Parnin;L. Williams
中科院分区:
其他
文献类型:
--
作者:
A. Rahman;Effat Farhana;Chris Parnin;L. Williams

文献摘要

相似文献

基础设施即代码(IaC)脚本中的缺陷可能会产生严重的后果,例如,造成大规模的系统中断。IaC缺陷的分类对于理解缺陷的本质以及确定修复和防止IaC脚本中的缺陷所需的活动非常有用。本文的目标是通过定性分析为IaC脚本开发一个缺陷分类法,帮助从业者提高IaC脚本的质量。我们通过对从Openstack组织的开源软件(OSS)存储库收集的1,448个缺陷相关提交进行定性分析,开发了IaC缺陷的分类。我们对66位从业者进行了一项调查,以评估他们是否同意我们分类法中包含的已识别缺陷类别。我们通过分析从2005年至2019年的291个OSS存储库中收集的80,425个提交来量化已识别缺陷类别的频率。我们针对IaC的缺陷分类包括八个类别,包括一个特定于IaC的类别,称为幂等性(即,当多次执行相同的IaC脚本时,会导致不正确的系统配置的缺陷)。我们观察到接受调查的66名从业者最同意幂等性。最常见的缺陷类别是配置数据,即,在IaC脚本中提供错误的配置数据。我们的分类和量化的频率的缺陷类别可能有助于推进IaC脚本质量的科学。
Defects in infrastructure as code (IaC) scripts can have serious consequences, for example, creating large-scale system outages. A taxonomy of IaC defects can be useful for understanding the nature of defects, and identifying activities needed to fix and prevent defects in IaC scripts. The goal of this paper is to help practitioners improve the quality of infrastructure as code (IaC) scripts by developing a defect taxonomy for IaC scripts through qualitative analysis. We develop a taxonomy of IaC defects by applying qualitative analysis on 1,448 defect-related commits collected from open source software (OSS) repositories of the Openstack organization. We conduct a survey with 66 practitioners to assess if they agree with the identified defect categories included in our taxonomy. We quantify the frequency of identified defect categories by analyzing 80,425 commits collected from 291 OSS repositories spanning across 2005 to 2019. Our defect taxonomy for IaC consists of eight categories, including a category specific to IaC called idempotency (i.e., defects that lead to incorrect system provisioning when the same IaC script is executed multiple times). We observe the surveyed 66 practitioners to agree most with idempotency. The most frequent defect category is configuration data i.e., providing erroneous configuration data in IaC scripts. Our taxonomy and the quantified frequency of the defect categories may help in advancing the science of IaC script quality.