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 条
  • [1] A Method for Automated Program Code Testing
    Drasutis, Sigitas
    Motekaityte, Vida
    Noreika, Algirdas
    INFORMATICS IN EDUCATION, 2010, 9 (02): : 199 - 208
  • [2] Extensible Testing for Infrastructure as Code
    Spielmann, David
    Sokolowski, Daniel
    Salvaneschi, Guido
    COMPANION PROCEEDINGS OF THE 2023 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES, AND APPLICATIONS: SOFTWARE FOR HUMANITY, SPLASH COMPANION 2023, 2023, : 58 - 60
  • [3] When Your Infrastructure Is a Buggy Program: Understanding Faults in Infrastructure as Code Ecosystems
    Drosos, Georcios-petros
    Sotiropoulos, Thodoris
    Alexopoulos, Ceorcios
    Mitropoulos, Dimitris
    Su, Zhendonc
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [4] A Pilot Study of Testing Infrastructure as Code for Cloud Systems
    Suwanachote, Nabhan
    Pornmaneerattanatri, Soratouch
    Kashiwa, Yutaro
    Ichikawa, Kohei
    Leelaprute, Pattara
    Rungsawang, Arnon
    Manaskasemsak, Bundit
    Iida, Hajimu
    PROCEEDINGS OF THE 2023 30TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, APSEC 2023, 2023, : 584 - 588
  • [5] GLITCH: Automated Polyglot Security Smell Detection in Infrastructure as Code
    Saavedra, Nuno
    Ferreira, Joao F.
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,
  • [6] Automated Testing in the Cloud Test Infrastructure Management with SaaS
    Hansbauer, Georg
    2015 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2015,
  • [7] Impact of Code Language Models on Automated Program Repair
    Jiang, Nan
    Liu, Kevin
    Lutellier, Thibaud
    Tan, Lin
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 1430 - 1442
  • [8] Towards automated code parallelization through program comprehension
    Martino, B.Di.
    Iannello, G.
    Program Comprehension, Workshop Proceedings, 1994, : 108 - 115
  • [9] Complementing Secure Code Review with Automated Program Analysis
    Charoenwet, Wachiraphan
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS, ICSE-COMPANION, 2023, : 189 - 191
  • [10] Automated Large Program Repair based on Big Code
    Hoang Van Thuy
    Phan Viet Anh
    Nguyen Xuan Hoai
    PROCEEDINGS OF THE NINTH INTERNATIONAL SYMPOSIUM ON INFORMATION AND COMMUNICATION TECHNOLOGY (SOICT 2018), 2018, : 375 - 381