  This chapter surveys the state of the art in code coverage from the
perspective of test automation. Our aim is to describe and motivate the three
most popular classes of glass box test coverage models, which are: control
flow, logic and data flow coverage. We take a fairly rigorous approach to code
coverage models. Thus, for each class, we will give precise definitions of
specific examples, some of which are widely known while others deserve to be
better known by test engineers. Our main goal is to present coverage models
that represent the state of the art. These should stimulate thought regarding
best practice, and indicate future directions for test process improvement.
