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] Automated Integration Testing and Verification of a Secured SOA Infrastructure - an Experience Report in eHealth
    Bernhart, Mario
    Artner, Thomas
    Mauczka, Andreas
    Grechenig, Thomas
    22ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING & KNOWLEDGE ENGINEERING (SEKE 2010), 2010, : 198 - 202
  • [22] Infrastructure as Code as a Foundational Technique for Increasing the DevOps Maturity Level: Two Case Studies
    Sacchi e Souza, Isac
    Franco, Daniel Pinheiro
    Sao Gregorio Silva, Joao Pedro
    IEEE SOFTWARE, 2023, 40 (01) : 63 - 68
  • [23] SoK: Static Configuration Analysis in Infrastructure as Code Scripts
    Konala, Pandu Ranga Reddy
    Kumar, Vimal
    Bainbridge, David
    2023 IEEE INTERNATIONAL CONFERENCE ON CYBER SECURITY AND RESILIENCE, CSR, 2023, : 281 - 288
  • [24] Vulnerabilities in infrastructure as code: what, how many, and who?
    Aicha War
    Alioune Diallo
    Andrew Habib
    Jacques Klein
    Tegawendé F. Bissyandé
    Empirical Software Engineering, 2025, 30 (5)
  • [25] The Seven Sins: Security Smells in Infrastructure as Code Scripts
    Rahman, Akond
    Parnin, Chris
    Williams, Laurie
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, : 164 - 175
  • [26] Infrastructure as Code for Business Continuity in Institutions of Higher Learning
    Muthoni, Sofie
    Okeyo, George
    Chemwa, Geoffrey
    INTERNATIONAL CONFERENCE ON ELECTRICAL, COMPUTER AND ENERGY TECHNOLOGIES (ICECET 2021), 2021, : 901 - 906
  • [27] DOML: A New Modelling Approach to Infrastructure-as-Code
    Chiari, Michele
    Xiang, Bin
    Nedeltcheva, Galia Novakova
    Di Nitto, Elisabetta
    Blasi, Lorenzo
    Benedetto, Debora
    Niculut, Laurentiu
    ADVANCED INFORMATION SYSTEMS ENGINEERING, CAISE 2023, 2023, 13901 : 297 - 313
  • [28] Shhh!: 12 Practices for Secret Management in Infrastructure as Code
    Rahman, Akond
    Barsha, Farhat Lamia
    Morrison, Patrick
    2021 IEEE SECURE DEVELOPMENT CONFERENCE (SECDEV 2021), 2021, : 56 - 62
  • [29] Kief Morris on Infrastructure as Code
    Johann, Sven
    IEEE SOFTWARE, 2017, 34 (01) : 117 - 120
  • [30] Within-Project Defect Prediction of Infrastructure-as-Code Using Product and Process Metrics
    Dalla Palma, Stefano
    Di Nucci, Dario
    Palomba, Fabio
    Tamburri, Damian A.
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (06) : 2086 - 2104