1. A system for automating testing of control devices, the system comprising: a computer memory that stores a grammar comprising one or more terminal and nonterminal symbols with tags that describe a first set of test cases; and a processor that is operable to: generates the first set of test cases for a device under test using the grammar; receives feedback about the execution of the first set of test cases from the device under test; in response to the feedback, automatically modify the grammar to identify at least one cause of failure of the device under test as a function of the received feedback; and generate a second set of test cases for the device under test using the grammar.