Seeding Contradiction: a fast method for generating full-coverage test suites
Li Huang, Bertrand Meyer, Manuel Oriol

TL;DR
Seeding Contradiction is a fast, static method that uses SMT-based reasoning to generate comprehensive test suites with high coverage by producing counterexamples for every branch.
Contribution
It introduces a novel static approach that efficiently generates full-coverage test suites using SMT solvers and program contradiction seeding.
Findings
Achieves near 100% branch coverage
Fast and static method for test generation
Effective for large and complex programs
Abstract
The regression test suite, a key resource for managing program evolution, needs to achieve 100% coverage, or very close, to be useful. Devising a test suite manually is unacceptably tedious, but existing automated methods are often inefficient. The method described in this article, ``Seeding Contradiction'', inserts incorrect instructions into every basic block of the program, enabling an SMT-based Hoare-style prover to generate a counterexample for every branch of the program and, from the collection of all such counterexamples, a test suite. The method is static, works fast, and achieves excellent coverage.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Scientific Computing and Data Management
