  We demonstrate a specific method and technology for model-based testing of
large software projects with the QuickCheck tool using property-based
specifications. Our specifications are very precise, state-full models of the
software under test (SUT). In our approach we define (a) formal descriptions of
valid function call sequences (public API), (b) postconditions that check the
validity of each call, and (c) call-out specifications that define and validate
external system interactions (SUT calling external API). The QuickCheck tool
automatically generates and executes tests from these specifications.
Commercially, this method and tool have been used to test large parts of the
industrially developed automotive libraries based on the Autosar standard. In
this paper, we exemplify our approach with a circular buffer specified by
Autosar, to demonstrate the capabilities of the model-based testing method of
QuickCheck. Our example is small compared to the commercial QuickCheck models,
but faithfully addresses many of the same challenges.
