A technique for testing event driven software. In accordance with the
technique, the source code of the event driven software is directly
converted to an automation based model useful in verifying that the
program code complies with the desired properties defined by the user.
More particularly, the event driven system program code is translated into
a target language for a particular model checker. Such a translation
results in a model which contains statements directed at whether execution
of the program code will affect the behavior of the event driven system.
Thus, this model extraction process can be used as input to a logic model
checker for determining whether event driven system complies with the
desired correctness properties specified by the user. Advantageously, the
model extraction process and application of the model checker occurs in a
direct and dynamic fashion from the subject event driven system program
code without the need for user intervention.