@conference {15455, title = {Coverage criteria for GUI testing}, booktitle = {Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering}, series = {ESEC/FSE-9}, year = {2001}, month = {2001///}, pages = {256 - 267}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, abstract = {A widespread recognition of the usefulness of graphical user interfaces (GUIs) has established their importance as critical components of today{\textquoteright}s software. GUIs have characteristics different from traditional software, and conventional testing techniques do not directly apply to GUIs. This paper{\textquoteright}s focus is on coverage critieria for GUIs, important rules that provide an objective measure of test quality. We present new coverage criteria to help determine whether a GUI has been adequately tested. These coverage criteria use events and event sequences to specify a measure of test adequacy. Since the total number of permutations of event sequences in any non-trivial GUI is extremely large, the GUI{\textquoteright}s hierarchical structure is exploited to identify the important event sequences to be tested. A GUI is decomposed into GUI components, each of which is used as a basic unit of testing. A representation of a GUI component, called an event-flow graph, identifies the interaction of events within a component and intra-component criteria are used to evaluate the adequacy of tests on these events. The hierarchical relationship among components is represented by an integration tree, and inter-component coverage criteria are used to evaluate the adequacy of test sequences that cross components. Algorithms are given to construct event-flow graphs and an integration tree for a given GUI, and to evaluate the coverage of a given test suite with respect to the new coverage criteria. A case study illustrates the usefulness of the coverage report to guide further testing and an important correlation between event-based coverage of a GUI and statement coverage of its software{\textquoteright}s underlying code.}, keywords = {component testing, event-based coverage, event-flow graph, GUI test coverage, GUI testing, integration tree}, isbn = {1-58113-390-1}, doi = {10.1145/503209.503244}, url = {http://doi.acm.org/10.1145/503209.503244}, author = {Memon, Atif M. and Soffa,Mary Lou and Pollack,Martha E.} }