发明名称 Automated GUI testing
摘要 The invention relates to a computer system that may include a processor, an accessibility API, a GUI, and a test module. The test module may use the accessibility API for analyzing GUI elements of the GUI and for automatically identifying GUI element features and inter-GUI-element dependencies. The test module may use the GUI element features and inter-GUI-element dependencies to generate a graph. The test module may traverse the graph and analyzes the GUI element features assigned to each currently accessed node or said node's child or sibling node. Thereby, the test module may identify predefined GUI element patterns in the graph and in the GUI. In case a matching GUI element pattern was identified, the test module may automatically identify one or more test routines associated with the identified GUI element pattern and automatically perform the one or more identified test routines on the GUI.
申请公布号 US9600401(B1) 申请公布日期 2017.03.21
申请号 US201615010076 申请日期 2016.01.29
申请人 International Business Machines Corporation 发明人 Haischt Daniel S.;Kasemir Karoline;Schuerfeld Ute
分类号 G06F11/36;G06F9/44;G06F3/0484 主分类号 G06F11/36
代理机构 代理人 O'Keefe Michael
主权项 1. A computer implemented method for automatically testing a graphical user interface (GUI), the method comprising: using, by a test module, an accessibility application programming interface (API) for analyzing a plurality of GUI elements of the GUI and for automatically identifying a plurality of GUI element features and a plurality of inter-GUI-element dependencies; using, by the test module, the plurality of identified GUI element features and the plurality of identified inter-GUI-element dependencies for automatically generating a graph of a plurality of nodes, wherein each node within the plurality of nodes represents a GUI element of the GUI and having assigned the plurality of identified GUI element features and the plurality of identified inter-GUI-element dependencies of the GUI element is represented by each node; traversing, by the test module, the generated graph, thereby automatically analyzing the plurality of identified GUI element features assigned to at least one of each currently accessed node and any child node or any sibling node of the currently analyzed node for identifying a plurality of GUI element patterns, wherein a GUI element pattern is a predefined set of one or more nodes having at least one of a plurality of assigned, predefined GUI element features and being a predefined set of two or more nodes representing a plurality of GUI elements linked to each other by a predefined functional dependency; in case a GUI element pattern was identified that matches a set of one or more nodes of the generated graph, automatically identifying, by the test module, one or more test routines associated with the identified GUI element pattern; automatically performing, by the test module, the one or more identified test routines on the plurality of analyzed GUI elements in the GUI represented by the plurality of nodes matching the GUI element pattern; wherein the plurality of GUI element features identified by the accessibility API of one or more nodes of the generated graph comprises a plurality of state information of one or more of the plurality of GUI elements of the generated graph; repeatedly generating, by the test module, a state value being indicative of a current state of the GUI and the plurality of GUI elements contained therein, wherein each state value is generated as a derivative of at least one GUI element feature of the plurality of identified GUI element features of each of the plurality of nodes of the generated graph, and wherein generating one of the state values at a particular time point further comprises: concatenating, by the test module, the plurality of identified GUI element features assigned to the one or more nodes of the generated graph at a particular time point for generating a concatenated value;computing a hash value of the generated concatenated value; andusing the computed hash value as the state value of the GUI generated at the particular time point; and analyzing the generated state values to identify one or more malfunctioning GUI elements.
地址 Armonk NY US