GUICop: Approach and toolset for specification‐based GUI testing

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.

[1]  Mary Lou Soffa,et al.  Plan Generation for GUI Testing , 2000, AIPS.

[2]  James M. Bieman,et al.  Techniques for testing scientific programs without an oracle , 2013, 2013 5th International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE).

[3]  Lee J. White Regression testing of GUI event interactions , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[4]  Ana C. R. Paiva,et al.  Web Application Model Generation through Reverse Engineering and UI Pattern Inferring , 2014, 2014 9th International Conference on the Quality of Information and Communications Technology.

[5]  Rob Miller,et al.  GUI testing using computer vision , 2010, CHI.

[6]  Atif M. Memon,et al.  What test oracle should I use for effective GUI testing? , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[7]  Martin Schäf,et al.  Trends in Model-based GUI Testing , 2012, Adv. Comput..

[8]  Fadi A. Zaraket,et al.  GUICOP: Specification-Based GUI Testing , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[9]  Atif M. Memon,et al.  GUITAR: an innovative tool for automated testing of GUI-driven software , 2014, Automated Software Engineering.

[10]  Ana C. R. Paiva,et al.  Test patterns for android mobile applications , 2015, EuroPLoP.

[11]  Yuan-Cheng Lai,et al.  On the Accuracy, Efficiency, and Reusability of Automated Test Oracles for Android Devices , 2014, IEEE Transactions on Software Engineering.

[12]  Atif M. Memon,et al.  Studying the fault-detection effectiveness of GUI test cases for rapidly evolving software , 2005, IEEE Transactions on Software Engineering.

[13]  John Steven,et al.  jRapture: A Capture/Replay tool for observation-based testing , 2000, ISSTA '00.

[14]  Mary Lou Soffa,et al.  Regression testing of GUIs , 2003, ESEC/FSE-11.

[15]  Ana C. R. Paiva,et al.  Towards the Integration of Visual and Formal Models for GUI Testing , 2007, MBT.

[16]  Atif M. Memon,et al.  Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback , 2010, IEEE Transactions on Software Engineering.

[17]  Mary Lou Soffa,et al.  Hierarchical GUI Test Case Generation Using Automated Planning , 2001, IEEE Trans. Software Eng..

[18]  Ana C. R. Paiva,et al.  PBGT tool: an integrated modeling and testing environment for pattern-based GUI testing , 2014, ASE.

[19]  Atif M. Memon,et al.  The first decade of GUI ripping: Extensions, applications, and broader impacts , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[20]  Atif M. Memon,et al.  Designing and comparing automated test oracles for GUI-based software applications , 2007, TSEM.

[21]  Mary Lou Soffa,et al.  Coverage criteria for GUI testing , 2001, ESEC/FSE-9.

[22]  Wes Masri,et al.  UCov: a user‐defined coverage criterion for test case intent verification , 2014, Softw. Test. Verification Reliab..

[23]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[24]  Ana C. R. Paiva,et al.  Towards a pattern language for model-based GUI testing , 2014, EuroPLoP.

[25]  Ana C. R. Paiva,et al.  A pattern-based approach for GUI modeling and testing , 2013, 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE).

[26]  Ana C. R. Paiva,et al.  A GUI modeling DSL for pattern-based GUI testing PARADIGM , 2014, 2014 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE).

[27]  Ana C. R. Paiva,et al.  Specification-Based Testing of User Interfaces , 2003, DSV-IS.

[28]  Rob Miller,et al.  Sikuli: using GUI screenshots for search and automation , 2009, UIST '09.

[29]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[30]  Ana C. R. Paiva,et al.  The iMPAcT Tool: Testing UI Patterns on Mobile Applications , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[31]  Myra B. Cohen,et al.  GUI Interaction Testing: Incorporating Event Context , 2011, IEEE Transactions on Software Engineering.

[32]  Fadi A. Zaraket,et al.  Coverage Specification for Test Case Intent Preservation in Regression Suites , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops.