Syntax-driven testing
In some situations, the possible inputs to a program are characterized using a formal grammar
- Ex: Compilers, simple user interfaces, etc.
In these cases, one can generate test sets such that each grammar rule is used at least once
This is a good example where entirely random tests are essentially useless