A production system (PS) is a forward chaining rule-based system used to build large expert systems. Testing a PS must involve the construction of a covering set of test data but it is not clear what the meaning of covering a PS is and how a test data set can be measured according to coverage. We propose a test data coverage measure for a subset for PS with well defined semantics. We use a correspondence between PS and function free first order Horn logic programs to define the declarative coverage notion and measure. We found that the coverage measure can be used to determine the coverage of the program logic of a PS as well as to automate test data generation. Unification theory is utilised to measure test data coverage and constrained inductive generation is used for test data construction.