GUICop: Approach and Toolset for Specification-based GUI Testing


Dalal Hammoud, Fadi A. Zaraket, and Wes Masri

American University of Beirut Electrical and Computer Engineering Department Beirut, Lebanon 1107 2020 e-mail: {dsh07, fz11, wm13}


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 five defects involving three GUI applications, namely, Jajuk, Gason, and JEdit.


The solver and the driver can be found at the following links respectively.

GUICop Solver | GUICop Driver

Case studies

Gason, Jajuk and jEdit are open source tools. For convenience, copies of the case studies with guicop integrated in the build flow are available below in a zipped tar format (use tar -xzf cases.tgz to unzip).

Case studies

Simpler copies of the eight case studies with the instrumented files only (without Gason, Jajuk, jEdit and Terpaint) are available here.

Bare case studies

More than fifty specifications for GUI components and scenarios are availabel here.

Components and scenarios

Instrumented library

A version of the instrumented-swing run time library is available for download below.

Instrumented run time library

guicop.txt · Last modified: 2017/02/16 18:08 by fadi
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki