GUICop:基于规范的GUI测试方法与工具集
GUICop: Approach and Toolset for Specification-based GUI Testing
摘要:
用于测试图形用户界面(GUI)程序的Oracle需要考虑复杂的因素,例如在将观察到的GUI元素与预期的GUI元素进行比较时屏幕分辨率或颜色方案的变化。研究人员提出了模糊比较规则和计算昂贵的图像处理技术来驯服比较过程,因为否则天真的匹配比较将过于约束,因此不切实际。另外,本文提出了GUICop,一种新的方法与支持的工具集,采取(1)一个GUI程序和(2)用户定义的GUI规范表征的GUI元素的渲染行为,并检查程序的执行轨迹是否满足规格。GUICop包括以下内容:1)GUI规约语言; 2)驱动程序; 3)插装GUI库; 4)求解器;以及5)代码编织器。用户使用GUI规约语言定义主题GUI程序的规范。驱动程序遍历程序的GUI结构并生成驱动其执行的事件。检测GUI库捕获GUI执行跟踪,即,关于GUI元素的位置和可见性的信息。由Code Weaver注入的代码启用的Solver检查跟踪是否满足规范。使用四个开源GUI应用程序(包括八个缺陷,即Jajuk、Gason、JEdit和TerpPaint)成功评估了GUICop。
英文摘要:
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 naive 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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。