Typically, oracles used to test graphical user interface (GUI) programs highly depend on environmental factors that are not related to the functionality of the program, such as screen resolution and color schemes. To accommodate these non-functional variations, researchers suggested fuzzy comparison rules that determine whether the output of a GUI program matches the oracles. Others suggested computer vision based solutions that make use of computationally expensive image processing techniques to abstract the strict comparisons. Alternatively, we propose GUICOP, a system that checks whether a trace of a GUI execution violates a given GUI specification. GUICOP is composed of a GUI specification language, instrumented GUI libraries, and a checker. The alphabet of the specification language contains basic geometric shapes describing GUI components, events, and positional and temporal operators that express relative object positions and event timings, respectively. During program execution, the instrumented libraries capture positional and temporal information of components and associated triggered events in execution traces. The checker determines whether the traces satisfy the specifications. To evaluate GUICOP, we wrote 50 use cases that describe real GUI applications and used the GUICOP checker on the supported cases that successfully revealed violations.
Oracles used for testing graphical user interface (GUI) programs are required to take into consideration complicating factors such as variations in screen resolution or color scheme when comparing observed GUI elements to expected GUI elements.Researchers proposed fuzzy comparison rules and computationally expensive image processing techniques to tame the comparison process since otherwise the naïve matching comparison would be too constraining and consequently impractical.Alternatively, this paper proposes GUICop, a novel approach with a supporting toolset that takes (1) a GUI program and (2) user-defined GUI specifications characterizing the rendering behavior of the GUI elements, and checks whether the execution traces of the program satisfy the specifications. GUICop comprises the following: 1) a GUI Specification Language; 2) a Driver; 3)Instrumented GUI Libraries; 4) a Solver; and 5) a Code Weaver. The user defines the specifications of the subject GUI program using the GUI Specification Language.The Driver traverses the GUI structure of the program and generates events that drive its execution. The Instrumented GUI Libraries capture the GUI execution trace, i.e., information about the positions and visibility of the GUI elements. And the Solver, enabled by code injected by the Code Weaver, checks whether the traces satisfy the specifications.GUICop was successfully evaluated using four open source GUI applications that included eight defects, namely, Jajuk, Gason, JEdit, and TerpPaint.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.