Fuzzing for CPS Mutation Testing

被引:0
作者
Lee, Jaekwon [1 ,2 ]
Vigano, Enrico [1 ]
Cornejo, Oscar [1 ]
Pastore, Fabrizio [1 ]
Briand, Lionel [1 ,2 ]
机构
[1] Univ Luxembourg, Luxembourg, Luxembourg
[2] Univ Ottawa, Ottawa, ON, Canada
来源
2023 38TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE | 2023年
基金
加拿大自然科学与工程研究理事会;
关键词
Mutation testing; Fuzzing; Test data generation; GENERATION;
D O I
10.1109/ASE56229.2023.00079
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Mutation testing can help reduce the risks of releasing faulty software. For such reason, it is a desired practice for the development of embedded software running in safety-critical cyber-physical systems (CPS). Unfortunately, state-of-the-art test data generation techniques for mutation testing of C and C++ software, two typical languages for CPS software, rely on symbolic execution, whose limitations often prevent its application (e.g., it cannot test black-box components). We propose a mutation testing approach that leverages fuzz testing, which has proved effective with C and C++ software. Fuzz testing automatically generates diverse test inputs that exercise program branches in a varied number of ways and, therefore, exercise statements in different program states, thus maximizing the likelihood of killing mutants, our objective. We performed an empirical assessment of our approach with software components used in satellite systems currently in orbit. Our empirical evaluation shows that mutation testing based on fuzz testing kills a significantly higher proportion of live mutants than symbolic execution (i.e., up to an additional 47 percentage points). Further, when symbolic execution cannot be applied, fuzz testing provides significant benefits (i.e., up to 41% mutants killed). Our study is the first one comparing fuzz testing and symbolic execution for mutation testing; our results provide guidance towards the development of fuzz testing tools dedicated to mutation testing.
引用
收藏
页码:1377 / 1389
页数:13
相关论文
共 81 条
  • [1] Learning how to search: generating effective test cases through adaptive fitness function selection
    Almulla, Hussein
    Gay, Gregory
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (02)
  • [2] Ammann P., 2008, INTRO SOFTWARE TESTI
  • [3] An orchestrated survey of methodologies for automated software test case generation
    Anand, Saswat
    Burke, Edmund K.
    Chen, Tsong Yueh
    Clark, John
    Cohen, Myra B.
    Grieskamp, Wolfgang
    Harman, Mark
    Harrold, Mary Jean
    McMinn, Phil
    Bertolino, Antonia
    Li, J. Jenny
    Zhu, Hong
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2013, 86 (08) : 1978 - 2001
  • [4] [Anonymous], 2023, FAQAS project
  • [5] [Anonymous], 2017, P S APPL COMP ACM NE, DOI DOI 10.1145/3019612.3019830
  • [6] Comparing Fuzzers on a Level Playing Field with FuzzBench
    Asprone, Dario
    Metzman, Jonathan
    Arya, Abhishek
    Guizzo, Giovani
    Sarro, Federica
    [J]. 2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022), 2022, : 302 - 311
  • [7] Ayari K, 2007, GECCO 2007: GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, VOL 1 AND 2, P1074
  • [8] FUDGE: Fuzz Driver Generation at Scale
    Babic, Domagoj
    Bucur, Stefan
    Chen, Yaohui
    Ivancic, Franjo
    King, Tim
    Kusano, Markus
    Lemieux, Caroline
    Szekeres, Laszlo
    Wang, Wei
    [J]. ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 975 - 985
  • [9] Bohme V.-T., 2016, P 2016 ACM SIGSAC C, P1032, DOI [10.1145/2976749.2978428, DOI 10.1145/2976749.2978428]
  • [10] Propositional satisfiability and constraint programming: A comparative survey
    Bordeaux, Lucas
    Hamadi, Youssef
    Zhang, Lintao
    [J]. ACM COMPUTING SURVEYS, 2006, 38 (04)