GUICop: Approach and toolset for specification‐based GUI testing. (1st August 2017) - Hammoud, Dalal; Zaraket, Fadi A.; Masri, Wes
Summary: Oracles used for testing graphical user interface (GUI) programmes are required to take into consideration complicating factors such as variations in screen resolution or colour scheme when comparing observed GUI elements with expected GUI elements. Researchers proposed fuzzy comparison rules and computationally expensive image processing techniques to tame the comparison process because 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 programme and (2) user‐defined GUI specifications characterizing the rendering behaviour of the GUI elements and checks whether the execution traces of the programme 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 programme using the GUI Specification Language . The Driver traverses the GUI structure of the programme and generates events that drive its execution. The Instrumented GUI Libraries capture the GUI execution trace, ie, 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 4 open source GUI applications that included 8 defects, namely, Jajuk, Gason, JEdit, and TerpPaint. Abstract : The GUICop enables specification‐based testing for graphical user interface programs using user‐defined specifications that are not sensitive to environmental changes such as color and screen resolutions. The GUICop specifications define graphical user interface layout, textual, and temporal behaviors. The GUICop Weaver integrates the specifications into the program under test. An instrumented version of the program under test produces execution traces and calls the GUICop Solver to check whether the traces satisfy the specifications. Results show that GUICop is effective in testing several real‐life subject programs.