English

Faster SAT Solving for Software with Repeated Structures (with Case Studies on Software Test Suite Minimization)

Software Engineering 2021-01-11 v1

Abstract

Theorem provers has been used extensively in software engineering for software testing or verification. However, software is now so large and complex that additional architecture is needed to guide theorem provers as they try to generate test suites. The SNAP test suite generator (introduced in this paper) combines the Z3 theorem prover with the following tactic: cluster some candidate tests, then search for valid tests by proposing small mutations to the cluster centroids. This technique effectively removes repeated structures in the tests since many repeated structures can be replaced with one centroid. In practice, SNAP is remarkably effective. For 27 real-world programs with up to half a million variables, SNAP found test suites which were 10 to 750 smaller times than those found by the prior state-of-the-art. Also, SNAP ran orders of magnitude faster and (unlike prior work) generated 100% valid tests.

Keywords

Cite

@article{arxiv.2101.02817,
  title  = {Faster SAT Solving for Software with Repeated Structures (with Case Studies on Software Test Suite Minimization)},
  author = {Jianfeng Chen and Xipeng Shen and Tim Menzies},
  journal= {arXiv preprint arXiv:2101.02817},
  year   = {2021}
}

Comments

Submitted to Journal Software and Systems. arXiv admin note: substantial text overlap with arXiv:1905.05358

R2 v1 2026-06-23T21:54:09.796Z