Using test case reduction and prioritization to improve symbolic execution

Chaoqiang Zhang, Alex Groce, Mohammad Amin Alipour

Research output: Chapter in Book/Report/Conference proceedingConference contribution

30 Scopus citations

Abstract

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.

Original languageEnglish (US)
Title of host publication2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings
PublisherAssociation for Computing Machinery
Pages160-170
Number of pages11
ISBN (Electronic)9781450326452
DOIs
StatePublished - Jul 21 2014
Externally publishedYes
Event23rd International Symposium on Software Testing and Analysis, ISSTA 2014 - San Jose, United States
Duration: Jul 21 2014Jul 25 2014

Publication series

Name2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings

Conference

Conference23rd International Symposium on Software Testing and Analysis, ISSTA 2014
Country/TerritoryUnited States
CitySan Jose
Period7/21/147/25/14

Keywords

  • Symbolic execution
  • Test case reduction
  • Test prioritization

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Using test case reduction and prioritization to improve symbolic execution'. Together they form a unique fingerprint.

Cite this