Coverability Analysis Project
by Ratsaby Gil
instructor: Shmuel ur

The project deals with the concept of Coverability. Informally, coverability indicates
for some event in a state-machine model, if there exists a test that cover this event.
I implemented this idea, using two main principles, Code-Instrumentation and
Symbolic Model Checking. Instrumentation is the process of changing a given
program during or after the parsing phase, in a way that allows gathering of relevant
information but (mostly) without changing the original behavior of the program.
Symbolic model checking, is a fully automated technique, which verifies that a set of
properties specified with temporal formulas, will hold for a given state-machine
model.
By changing IBM's Koala parser, and using IBM's RuleBase model checker, a few
types of coverability analysis were implemented, such as code-reachability and
multi-value attainability. These analysis types can help programmers check their
code in a fully automated way and very early in the development phase, while
relieving them from  the need to generate (often costly) test-cases.