Safely reducing the cost of unit level symbolic execution through read/write analysis

  • Authors:
  • Eric F. Rizzi;Mathew B. Dwyer;Sebastian Elbaum

  • Affiliations:
  • University of Nebraska - Lincoln;University of Nebraska - Lincoln;University of Nebraska - Lincoln

  • Venue:
  • ACM SIGSOFT Software Engineering Notes
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

Symbolic execution is a powerful tool to systematically explore programs, but it must be applied judiciously to be cost-effective, particularly with large program units. This work focuses on symbolically executing classes. While this technique can lead to a complete exploration, it can also be very expensive, combining the costs of symbolic execution with those of exploring the resulting method tree. Existing approaches addressing this problem either incur considerable overhead or can skip valuable sequences. We propose reducing this cost by leveraging a read/write analysis to track possible changes between methods. By identifying calls to a class's fields, sequences involving methods that cannot interact with accesses by previous methods may be pruned. This drastically reduces the cost to determine whether a method call could lead to unique states while considerably reducing the method tree. Preliminary evaluations show our technique can be more efficient than alternative approaches that guarantee complete path coverage.