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 条
  • [32] Decentralizing Infrastructure as Code
    Sokolowski, Daniel
    Weisenburger, Pascal
    Salvaneschi, Guido
    IEEE SOFTWARE, 2023, 40 (01) : 50 - 55
  • [33] 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
  • [34] Benefit of Smart Infrastructure on Urban Automated Driving - Using an AV Testing Framework
    Pechinger, Mathias
    Schroeer, Guido
    Bogenberger, Klaus
    Markgraf, Carsten
    2021 32ND IEEE INTELLIGENT VEHICLES SYMPOSIUM (IV), 2021, : 1174 - 1179
  • [35] A real-time multi-processing computer infrastructure for automated testing
    Tascillo, M
    Schultz, J
    Opolsky, N
    Tedone, D
    1998 IEEE AUTOTESTCON PROCEEDINGS - IEEE SYSTEMS READINESS TECHNOLOGY CONFERENCE, 1998, : 229 - 233
  • [36] Towards Automated Boundary Value Testing with Program Derivatives and Search
    Feldt, Robert
    Dobslaw, Felix
    SEARCH-BASED SOFTWARE ENGINEERING, SSBSE 2019, 2019, 11664 : 155 - 163
  • [37] The second international workshop on automated program analysis, testing and verification
    Tracey, N
    Penix, J
    Visser, WC
    PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2001, : 755 - 755
  • [38] A Novel Fitness Function for Automated Program Repair Based on Source Code Checkpoints
    de Souza, Eduardo Faria
    Le Goues, Claire
    Camilo, Celso Goncalves
    GECCO'18: PROCEEDINGS OF THE 2018 GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, 2018, : 1443 - 1450
  • [39] Making legacy Fortran code type safe through automated program transformation
    Vanderbauwhede, Wim
    JOURNAL OF SUPERCOMPUTING, 2022, 78 (02): : 2988 - 3028
  • [40] TransplantFix: Graph Differencing-based Code Transplantation for Automated Program Repair
    Yang, Deheng
    Mao, Xiaoguang
    Chen, Liqian
    Xu, Xuezheng
    Lei, Yan
    Lo, David
    He, Jiayu
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,