Automated Infrastructure as Code Program Testing

被引:1
|
作者
Sokolowski, Daniel [1 ]
Spielmann, David [1 ]
Salvaneschi, Guido [1 ]
机构
[1] Univ St Gallen, CH-9000 St Gallen, Switzerland
基金
瑞士国家科学基金会;
关键词
Testing; Generators; Software; Cloud computing; Engines; Codes; Libraries; Property-based testing; fuzzing; infrastructure as code; DevOps; LANGUAGE;
D O I
10.1109/TSE.2024.3393070
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Infrastructure as Code (IaC) enables efficient deployment and operation, which are crucial to releasing software quickly. As setups can be complex, developers implement IaC programs in general-purpose programming languages like TypeScript and Python, using PL-IaC solutions like Pulumi and AWS CDK. The reliability of such IaC programs is even more relevant than in traditional software because a bug in IaC impacts the whole system. Yet, even though testing is a standard development practice, it is rarely used for IaC programs. For instance, in August 2022, less than 1 % of the public Pulumi IaC programs on GitHub implemented tests. Available IaC program testing techniques severely limit the development velocity or require much development effort. To solve these issues, we propose Automated Configuration Testing (ACT), a methodology to test IaC programs in many configurations quickly and with low effort. ACT automatically mocks all resource definitions in the IaC program and uses generator and oracle plugins for test generation and validation. We implement ACT in ProTI, a testing tool for Pulumi TypeScript with a type-based generator and oracle, and support for application specifications. Our evaluation with 6 081 programs from GitHub and artificial benchmarks shows that ProTI can directly be applied to existing IaC programs, quickly finds bugs where current techniques are infeasible, and enables reusing existing generators and oracles thanks to its pluggable architecture.
引用
收藏
页码:1585 / 1599
页数:15
相关论文
共 50 条
  • [21] The Influence of Code Coverage Metrics on Automated Testing Efficiency in Android
    Dashevskyi, Stanislav
    Gadyatskaya, Olga
    Pilgun, Aleksandr
    Zhauniarovich, Yury
    PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18), 2018, : 2216 - 2218
  • [22] The research and implementation of a general-purpose automated software testing infrastructure
    Wu, XJ
    Zhou, XS
    Gu, JH
    7TH WORLD MULTICONFERENCE ON SYSTEMICS, CYBERNETICS AND INFORMATICS, VOL VI, PROCEEDINGS: INFORMATION SYSTEMS, TECHNOLOGIES AND APPLICATIONS: I, 2003, : 266 - 270
  • [23] AUTOMATED PROGRAM TESTING METHODOLOGY AND ITS IMPLEMENTATION.
    Andrews, Dorothy M.
    Benson, Jeoffrey P.
    1600, IEEE Comput Soc Press, Los Alamitos, Calif
  • [24] Generating input data structures for automated program testing
    Chung, Insang
    Bieman, James A.
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2009, 19 (01): : 3 - 36
  • [25] A comprehensive study of code-removal patches in automated program repair
    Ginelli, Davide
    Martinez, Matias
    Mariani, Leonardo
    Monperrus, Martin
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (04)
  • [26] Code Analysis with Static Application Security Testing for Python Program
    Li Ma
    Huihong Yang
    Jianxiong Xu
    Zexian Yang
    Qidi Lao
    Dong Yuan
    Journal of Signal Processing Systems, 2022, 94 : 1169 - 1182
  • [27] Automated Detection of Code Vulnerabilities Based on Program Analysis and Model Checking
    Wang, Lei
    Zhang, Qiang
    Zhao, PengChao
    EIGHTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2008, : 165 - 173
  • [28] DLFix: Context-based Code Transformation Automated Program Repair
    Li, Yi
    Wang, Shaohua
    Nguyen, Tien N.
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 602 - 614
  • [29] A comprehensive study of code-removal patches in automated program repair
    Davide Ginelli
    Matias Martinez
    Leonardo Mariani
    Martin Monperrus
    Empirical Software Engineering, 2022, 27
  • [30] Automated Program Repair by Using Similar Code Containing Fix Ingredients
    Ji, Tao
    Chen, Liqian
    Mao, Xiaoguang
    Yi, Xin
    PROCEEDINGS 2016 IEEE 40TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE WORKSHOPS, VOL 1, 2016, : 197 - 202