Coverage guided, property based testing

Abstract

Property-based random testing, exemplified by frameworks such as Haskell's QuickCheck, works by testing an executable predicate (a property) on a stream of randomly generated inputs. Property testing works very well in many cases, but not always. Some properties are conditioned on the input satisfying demanding semantic invariants that are not consequences of its syntactic structure---e.g., that an input list must be sorted or have no duplicates. Most randomly generated inputs fail to satisfy properties with such sparse preconditions, and so are simply discarded. As a result, much of the target system may go untested.

Document Details

Document Type
Pub Defense Publication
Publication Date
Oct 10, 2019
Source ID
10.1145/3360607

Entities

People

  • Benjamin C. Pierce
  • Leonidas Lampropoulos
  • Michael Hicks

Organizations

  • Defense Advanced Research Projects Agency
  • National Science Foundation
  • University of Maryland
  • University of Pennsylvania

Tags

Fields of Study

  • Computer science

Readers

  • Approximation Theory.
  • Computational Linguistics
  • Systems Analysis and Design