A particular class of software that is fast becoming ubiquitous is event-driven software (EDS); examples include web applications, graphical user interfaces (GUIs), network protocols, device drivers, and embedded software. All EDS take sequences of events (messages, mouse-clicks, etc.) as input, change their state, and sometimes output an event sequence. Existing testing techniques are not directly applicable to EDS because they pose unique challenges for test-case generation, event interaction modeling, test adequacy evaluation, verification, and execution. The primary contribution of this research will be an EDS testing framework based on a new event-flow model that the PI has developed and successfully employed to automate certain aspects of GUI testing. Much like how existing control-flow and data-flow models capture the control and data interactions in a program, the event-flow model captures event interactions in a GUI. The framework will combine the event-flow model with new techniques for automated test case generation, execution, coverage evaluation, and verification. To provide focus, the research will create an event-flow model that is applicable to web applications, network protocols, and GUIs. The commonalities of these EDS will be used to create a base event-flow model and differences between them will be used to develop domain-specific extensions.