中文

存在缺陷的基础设施即代码脚本的源代码属性

软件工程 2020-06-03 v1

摘要

背景:在持续部署中,软件和服务通过自动化部署流水线快速部署给最终用户。基础设施即代码(IaC)脚本中的缺陷会妨碍自动化部署流水线的可靠性。我们假设 IaC 源代码的某些属性(如代码行数以及用作配置值的硬编码字符串)与存在缺陷的 IaC 脚本相关。目标:本文的目标是通过一项识别存在缺陷的 IaC 脚本之源代码属性的实证研究,帮助从业者提升基础设施即代码(IaC)脚本的质量。方法:我们对从开源软件仓库中挖掘的缺陷相关提交进行定性分析,以识别与存在缺陷的 IaC 脚本相关的源代码属性。接下来,我们调查从业者以评估从业者对所选属性的认同程度。我们还使用从四个数据集收集的 2,439 个脚本、基于所识别的属性构建了缺陷预测模型。结果:我们识别出 10 个与存在缺陷的 IaC 脚本相关的源代码属性。在已识别的 10 个属性中,我们观察到代码行数和硬编码字符串与存在缺陷的 IaC 脚本表现出最强的相关性。硬编码字符串是指将配置值指定为硬编码字符串的属性。根据我们的调查分析,大多数从业者对两个属性表示认同:include(执行外部模块或脚本的属性)和硬编码字符串。使用所识别的属性,我们构建的缺陷预测模型表现出 0.70~0.78 的精确率和 0.54~0.67 的召回率。

关键词

引用

@article{arxiv.1810.09605,
  title  = {Source Code Properties of Defective Infrastructure as Code Scripts},
  author = {Akond Rahman and Laurie Williams},
  journal= {arXiv preprint arXiv:1810.09605},
  year   = {2020}
}

备注

arXiv admin note: text overlap with arXiv:1809.07937