Software Testing Support
Kestrel has extended knowledge-based CASE tools developed by Reasoning Systems Inc. with sophisticated facilities for supporting and optimizing software testing of critical systems. These facilities identify the feasible and infeasible paths through a given module's control flow graph, and thus permit testing efforts to concentrate on just those execution patterns which can actually occur. The system employs:
- A formal language model, characterizing control constructs and primitive data types
- Knowledge-based symbolic execution and analysis mechanisms
- A general-purpose theorem prover, optimized for use with large/complex code systems
To aid program understanding, conditional expressions are constructed for each program variable which reflect the value(s) it assumes along any/all feasible execution paths. These expressions can additionally be used to synthesize test data sets which will exercise a given execution path within a program module.