Shadow Symbolic Execution for Testing Software Patches

被引:17
|
作者
Kuchta, Tomasz [1 ]
Palikareva, Hristina [1 ]
Cadar, Cristian [1 ]
机构
[1] Imperial Coll London, Dept Comp, Huxley Bldg,180 Queens Gate, London SW7 2AZ, England
基金
英国工程与自然科学研究理事会;
关键词
Symbolic patch testing; regression bugs; cross-version checks;
D O I
10.1145/3208952
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
While developers are aware of the importance of comprehensively testing patches, the large effort involved in coming up with relevant test cases means that such testing rarely happens in practice. Furthermore, even when test cases are written to cover the patch, they often exercise the same behaviour in the old and the new version of the code. In this article, we present a symbolic execution-based technique that is designed to generate test inputs that cover the new program behaviours introduced by a patch. The technique works by executing both the old and the new version in the same symbolic execution instance, with the old version shadowing the new one. During this combined shadow execution, whenever a branch point is reached where the old and the new version diverge, we generate a test input exercising the divergence and comprehensively test the new behaviours of the new version. We evaluate our technique on the Coreutils patches from the CoREBench suite of regression bugs, and show that it is able to generate test inputs that exercise newly added behaviours and expose some of the regression bugs.
引用
收藏
页数:32
相关论文
共 50 条
  • [1] Shadow Symbolic Execution for Better Testing of Evolving Software
    Cadar, Cristian
    Palikareva, Hristina
    [J]. 36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, : 432 - 435
  • [2] Efficient symbolic execution for software testing
    Kinder, Johannes
    [J]. 2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 5 - 5
  • [3] Distributed Symbolic Execution for Binary Software Testing
    Wu, Bo
    Li, Mengjun
    Zhang, Bin
    Zhang, Quan
    Tang, Chaojing
    [J]. 2014 IEEE WORKSHOP ON ELECTRONICS, COMPUTER AND APPLICATIONS, 2014, : 618 - 621
  • [4] Symbolic Execution for Software Testing: Three Decades Later
    Cadar, Cristian
    Sen, Koushik
    [J]. COMMUNICATIONS OF THE ACM, 2013, 56 (02) : 82 - 90
  • [5] Mutation-inspired symbolic execution for software testing
    Valle-Gomez, Kevin J.
    Garcia-Dominguez, Antonio
    Delgado-Perez, Pedro
    Medina-Bulo, Inmaculada
    [J]. IET SOFTWARE, 2022, 16 (05) : 478 - 492
  • [6] Symbolic Execution for Software Testing in Practice - Preliminary Assessment
    Cadar, Cristian
    Godefroid, Patrice
    Khurshid, Sarfraz
    Pasareanu, Corina S.
    Sen, Koushik
    Tillmann, Nikolai
    Visser, Willem
    [J]. 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 1066 - 1071
  • [7] Symbolic Execution of Network Software Based on Unit Testing
    Zhou Lin
    Liu Fei
    Gan Shuitao
    Qin Xiaojun
    Han Wenbao
    [J]. 2014 9TH IEEE INTERNATIONAL CONFERENCE ON NETWORKING, ARCHITECTURE, AND STORAGE (NAS), 2014, : 128 - 132
  • [8] Testing Network Protocol Binary Software with Selective Symbolic Execution
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    [J]. PROCEEDINGS OF 2016 12TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS), 2016, : 318 - 322
  • [9] A survey of new trends in symbolic execution for software testing and analysis
    Corina S. Păsăreanu
    Willem Visser
    [J]. International Journal on Software Tools for Technology Transfer, 2009, 11 (4) : 339 - 353
  • [10] SYMBOLIC EXECUTION AND TESTING
    COWARD, PD
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 1991, 33 (01) : 53 - 64