Module 11: Automated Test Generation

[Video] [Slides]


This module introduces the concept of automating test generation for units of code. The presented techniques guide test generation by leveraging different kinds of program specifications, such as types, invariants, and pre- and post-conditions. You’ll learn two orthogonal but complementary approaches: Randoop and Korat. Randoop is designed to test classes and libraries while Korat is used to test data structures.


  • Describe how to leverage different forms of specifications (types, invariants, and pre- and post-conditions) to guide test generation.
  • Apply the Randoop approach to test classes and libraries by creating and classifying method sequences.
  • Apply Korat to test data structures by representing and enumerating different shapes and using pre- and post-conditions and invariants for test generation.