This book considers formal verification of computerized systems. In formal verification (model checking),we verify the correctness of a system with respect to a desired behavior bychecking whether a mathematical model of the system satisfies a formal specification ofthe behavior. The process is fully automatic and, in case the verification fails, supplies a counterexample showing a behavior of the system that does not satisfy the specification. These counterexamples are very important and they can be essential in detecting subtle errors in complex designs. On the other hand, when the answer to the correctness query is positive, most model-checking tools terminate without further information to the user.Since a positive answer means that the system is correct with respect to the specification,this may seem like a reasonable policy. However, the exhaustiveness of the model checking process depends solely on the correctness and exhaustiveness of specifications, which are written manually. In this book, we study coverage metrics, which are a way to check exhaustiveness of specifications and can direct the verification process to unexplored areas of the design.