TY - GEN
T1 - Using test case reduction and prioritization to improve symbolic execution
AU - Zhang, Chaoqiang
AU - Groce, Alex
AU - Alipour, Mohammad Amin
N1 - Publisher Copyright:
Copyright 2014 ACM.
PY - 2014/7/21
Y1 - 2014/7/21
N2 - Scaling symbolic execution to large programs or programs with complex inputs remains difficult due to path explosion and complex constraints, as well as external method calls. Additionally, creating an effective test structure with symbolic inputs can be difficult. A popular symbolic execution strategy in practice is to perform symbolic execution not "from scratch" but based on existing test cases. This paper proposes that the effectiveness of this approach to symbolic execution can be enhanced by (1) reducing the size of seed test cases and (2) prioritizing seed test cases to maximize exploration efficiency. The proposed test case reduction strategy is based on a recently introduced generalization of deltadebugging, and our prioritization techniques include novel methods that, for this purpose, can outperform some traditional regression testing algorithms. We show that applying these methods can significantly improve the effectiveness of symbolic execution based on existing test cases.
AB - Scaling symbolic execution to large programs or programs with complex inputs remains difficult due to path explosion and complex constraints, as well as external method calls. Additionally, creating an effective test structure with symbolic inputs can be difficult. A popular symbolic execution strategy in practice is to perform symbolic execution not "from scratch" but based on existing test cases. This paper proposes that the effectiveness of this approach to symbolic execution can be enhanced by (1) reducing the size of seed test cases and (2) prioritizing seed test cases to maximize exploration efficiency. The proposed test case reduction strategy is based on a recently introduced generalization of deltadebugging, and our prioritization techniques include novel methods that, for this purpose, can outperform some traditional regression testing algorithms. We show that applying these methods can significantly improve the effectiveness of symbolic execution based on existing test cases.
KW - Symbolic execution
KW - Test case reduction
KW - Test prioritization
UR - http://www.scopus.com/inward/record.url?scp=84942760854&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84942760854&partnerID=8YFLogxK
U2 - 10.1145/2610384.2610392
DO - 10.1145/2610384.2610392
M3 - Conference contribution
AN - SCOPUS:84942760854
T3 - 2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings
SP - 160
EP - 170
BT - 2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings
PB - Association for Computing Machinery
T2 - 23rd International Symposium on Software Testing and Analysis, ISSTA 2014
Y2 - 21 July 2014 through 25 July 2014
ER -