CN105718353B - 一种用于图形界面应用的测试方法、装置及系统 - Google Patents
一种用于图形界面应用的测试方法、装置及系统 Download PDFInfo
- Publication number
- CN105718353B CN105718353B CN201610030995.5A CN201610030995A CN105718353B CN 105718353 B CN105718353 B CN 105718353B CN 201610030995 A CN201610030995 A CN 201610030995A CN 105718353 B CN105718353 B CN 105718353B
- Authority
- CN
- China
- Prior art keywords
- application
- tested
- event
- test
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种用于图形界面应用的测试方法、装置及系统,该测试方法包括:检测到待测试应用工作时,将测试用例嵌入待测试应用;在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。通过本发明的实施,可以嵌入应用程序的内部记录或重放一系列事件,其实现细节对于被测试程序则是不可见的,也不会对被测试程序产生任何干扰,通过记录软件窗口系统产生的事件,将记录保存在一个文件中,在下次运行软件的时候重新播放这些事件记录,同时试图捕捉是否有异常产生并报告出来,这样就达到了GUI自动测试的目的。
Description
技术领域
本发明涉及应用测试领域,尤其涉及一种用于图形界面应用的测试方法、装置及系统。
背景技术
Qt是一种比较流行的用于C++图形用户界面框架,无论是在Windows还是在Linux操作系统上有很多的应用程序软件都是基于Qt开发的。软件在开发过程中需要不断地测试和完善,不同于批处理软件的测试,图形界面的测试对于软件测试团队来说是一个比较麻烦的问题,因为其中有很多使用者的交互操作,这些操作引起的错误通常无法很容易地重现并定位,需要人工多次尝试才能确认,这样就增加了测试人员的工作量,并且也不利于软件的自动化测试。
现有GUI(Graphical User Interface,图形界面)测试工具从外部记录被测试软件的行为并进行回访,但是由于无法获得被测软件的内部信息,因此需要借助于图像识别匹配来标记一个窗口控件,该方法在被测软件发生变化时,因为无法正确获得控件位置从而导致测试失败。
因此,本领域技术人员亟待提供一种测试方法,用于解决现有测试方法无法获得被测软件的内部信息的技术问题。
发明内容
本发明提供了一种用于图形界面应用的测试方法、装置及系统,以解决现有测试方法无法获得被测软件的内部信息的问题。
本发明提供了一种用于图形界面应用的测试方法,其包括:
检测到待测试应用工作时,将测试用例嵌入待测试应用;
在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;
在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。
进一步的,待测试应用为基于Qt的图形界面应用程序,操作事件包括待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
进一步的,测试用例为C++类。
进一步的,使用测试用例捕捉并记录发送给待测试应用的操作事件包括:利用Qt事件模型对待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录输入事件属性。
进一步的,使用测试用例回放操作事件,并监控待测试应用是否发生异常包括:逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
本发明提供了一种用于图形界面应用的测试装置,其包括:
嵌入模块,用于检测到待测试应用工作时,将测试用例嵌入待测试应用;
记录模块,用于在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;
回放模块,用于在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。
进一步的,待测试应用为基于Qt的图形界面应用程序,操作事件包括待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
进一步的,测试用例为C++类。
进一步的,记录模块用于利用Qt事件模型对待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录输入事件属性。
进一步的,回放模块用于逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
本发明提供了一种用于图形界面应用的测试系统,其包括:测试用例,以及本发明提供的测试装置。
本发明的有益效果:
本发明提供了一种用于GUI的测试方法,可以嵌入应用程序的内部记录或重放一系列事件,其实现细节对于被测试程序则是不可见的,也不会对被测试程序产生任何干扰,通过记录软件窗口系统产生的事件,将记录保存在一个文件中,在下次运行软件的时候重新播放这些事件记录,同时试图捕捉是否有异常产生并报告出来,这样就达到了GUI自动测试的目的。
附图说明
图1为本发明第一实施例提供的测试系统的结构示意图;
图2为本发明第二实施例提供的测试方法的流程图;
图3为本发明第三实施例提供的测试方法的流程图。
具体实施方式
现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。
第一实施例:
图1为本发明第一实施例提供的测试系统的结构示意图,由图1可知,在本实施例中,本发明提供的测试系统包括:测试装置1以及测试用例2,测试装置1检测到待测试应用工作时,将测试用例2嵌入待测试应用;在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。
如图1所示,在一些实施例中,上述实施例中的图形界面应用的测试装置1包括:
嵌入模块11,用于检测到待测试应用工作时,将测试用例嵌入待测试应用;
记录模块12,用于在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;
回放模块13,用于在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。
在一些实施例中,上述实施例中的待测试应用为基于Qt的图形界面应用程序,操作事件包括待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
在一些实施例中,上述实施例中的测试用例为C++类。
在一些实施例中,上述实施例中的记录模块12用于利用Qt事件模型对待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录输入事件属性。
在一些实施例中,上述实施例中的回放模块13用于逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
第二实施例:
图2为本发明第二实施例提供的测试方法的流程图,由图2可知,在本实施例中,本发明提供的用于图形界面应用的测试方法包括:
S201:检测到待测试应用工作时,将测试用例嵌入待测试应用;
S202:在待测试应用内,使用测试用例捕捉并记录待测试应用的输入事件;
S203:在待测试应用内,使用测试用例回放输入事件,并监控待测试应用是否发生异常。
在一些实施例中,上述实施例中的待测试应用为基于Qt的图形界面应用程序,操作事件包括待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
在一些实施例中,上述实施例中的测试用例为C++类。
在一些实施例中,上述实施例中的使用测试用例捕捉并记录发送给待测试应用的操作事件包括:利用Qt事件模型对待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录输入事件属性。
在一些实施例中,上述实施例中的使用测试用例回放操作事件,并监控待测试应用是否发生异常包括:逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
现结合具体应用场景对本发明做进一步的诠释说明。
第三实施例:
本实施例给基于Qt编写的软件提供一种自动化测试的工具;软件图形界面的测试是一个比较麻烦的问题,因为其中有很多使用者的交互操作,这些操作引起的错误通常无法很容易地重现并定位,需要人工多次尝试才能确认,并且也不利于软件的自动化测试。本发明通过记录软件窗口系统产生的事件,将记录保存在一个文件中,在下次运行软件的时候重新播放这些事件记录,同时试图捕捉是否有异常产生并报告出来,这样就达到了GUI自动测试的目的。
具体的,本实施例供一个C++测试模块(库)作为测试用例,可以嵌入应用程序的内部记录或重放一系列事件,事件是由窗口系统或者Qt自身产生的,用以响应发生的各类事情,比如鼠标的移动或者键盘按键的按下。实现过程包括事件的记录和回放两部分,事件记录过程是:捕捉发送给所有控件或对象的事件,经过分析后,将其记录在一个XML文件中;事件回访的过程是:读取记录文件,分析一条记录,获取事件对象,向该对象复制发送一个事件,以产生回放的效果,在回放的过程中,需要监视应用程序是否有异常发生。
本实施例的设计一个C++类,该类可以在被测试程序的开始部分被例化,并且执行录制record()或者回放play()操作,并可以指定一个记录文件的路径,而其实现细节对于被测试程序则是不可见的,也不会对被测试程序产生任何干扰。
如图3所示,本发明提供的测试方法包括以下步骤:
S301-S302:用户操作待测试应用,进行输入,Qt事件处理循环;
S303-S305:进入事件记录流程:利用Qt事件模型对应用程序中所有的控件对象(图3所示的GUI中的控制对象A、B)安装事件过滤器;截获鼠标、键盘等输入事件;提取事件属性并记录到磁盘文件中;
S306-S308:进入事件回放流程:从磁盘文件中读取一条事件记录;确认事件发生的对象;可以通过对象的名称、类型和位置等信息获得其在软件内部的指针;根据事件的类型等信息向特定对象(图3所示的GUI中的控制对象A、B)发出一个事件或者模拟该事件的产生;读取下一条事件记录所有记录都被处理完毕;
S309:回放期间,要监控程序是否有异常产生并自动记录,供用户查看。
综上可知,通过本发明的实施,至少存在以下有益效果:
本发明提供了一种用于GUI的测试方法,可以嵌入应用程序的内部记录或重放一系列事件,其实现细节对于被测试程序则是不可见的,也不会对被测试程序产生任何干扰,通过记录软件窗口系统产生的事件,将记录保存在一个文件中,在下次运行软件的时候重新播放这些事件记录,同时试图捕捉是否有异常产生并报告出来,这样就达到了GUI自动测试的目的。
以上仅是本发明的具体实施方式而已,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任意简单修改、等同变化、结合或修饰,均仍属于本发明技术方案的保护范围。
Claims (11)
1.一种用于图形界面应用的测试方法,其特征在于,包括:
检测到待测试应用工作时,将测试用例嵌入所述待测试应用的内部;
在所述待测试应用内,使用所述测试用例捕捉并记录所述待测试应用的输入事件;
在所述待测试应用内,使用所述测试用例回放所述输入事件,并监控所述待测试应用是否发生异常。
2.如权利要求1所述的测试方法,其特征在于,所述待测试应用为基于Qt的图形界面应用程序,所述输入事件包括所述待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
3.如权利要求1所述的测试方法,其特征在于,所述测试用例为C++类。
4.如权利要求1所述的测试方法,其特征在于,所述使用所述测试用例捕捉并记录发送给所述待测试应用的输入事件包括:利用Qt事件模型对所述待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录所述输入事件属性。
5.如权利要求1至4任一项所述的测试方法,其特征在于,所述使用所述测试用例回放所述输入事件,并监控所述待测试应用是否发生异常包括:逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向所述对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
6.一种用于图形界面应用的测试装置,其特征在于,包括:
嵌入模块,用于检测到待测试应用工作时,将测试用例嵌入所述待测试应用的内部;
记录模块,用于在所述待测试应用内,使用所述测试用例捕捉并记录所述待测试应用的输入事件;
回放模块,用于在所述待测试应用内,使用所述测试用例回放所述输入事件,并监控所述待测试应用是否发生异常。
7.如权利要求6所述的测试装置,其特征在于,所述待测试应用为基于Qt的图形界面应用程序,所述输入事件包括所述待测试应用的窗口系统或者Qt自身产生的,用于响应用户输入操作的事件。
8.如权利要求6所述的测试装置,其特征在于,所述测试用例为C++类。
9.如权利要求6所述的测试装置,其特征在于,所述记录模块用于利用Qt事件模型对所述待测试应用中所有的控件对象安装事件过滤器,截获输入事件,提取并记录所述输入事件属性。
10.如权利要求6至9任一项所述的测试装置,其特征在于,所述回放模块用于逐一读取记录的输入事件;确定输入事件的对象;根据对应的输入事件属性,向所述对象发出事件,或者,模拟事件发生;监控并记录是否有异常产生。
11.一种用于图形界面应用的测试系统,其特征在于,包括:测试用例,以及如权利要求6至10任一项所述的测试装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030995.5A CN105718353B (zh) | 2016-01-18 | 2016-01-18 | 一种用于图形界面应用的测试方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030995.5A CN105718353B (zh) | 2016-01-18 | 2016-01-18 | 一种用于图形界面应用的测试方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718353A CN105718353A (zh) | 2016-06-29 |
CN105718353B true CN105718353B (zh) | 2019-01-29 |
Family
ID=56147324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610030995.5A Active CN105718353B (zh) | 2016-01-18 | 2016-01-18 | 一种用于图形界面应用的测试方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718353B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222368B (zh) * | 2017-06-29 | 2020-04-17 | 北京奇艺世纪科技有限公司 | 一种数据重放方法及装置 |
CN109308250A (zh) * | 2017-07-26 | 2019-02-05 | 上海富瀚微电子股份有限公司 | 一种gui自动化测试方法及系统 |
WO2020243942A1 (en) * | 2019-06-06 | 2020-12-10 | Entit Software Llc | Recording test usage of graphical user interface with blocked inputs |
CN110879783B (zh) * | 2019-11-21 | 2023-09-08 | 上海达梦数据库有限公司 | 一种程序测试方法、装置、设备及存储介质 |
CN111737041A (zh) * | 2020-07-31 | 2020-10-02 | 北京搜狐新动力信息技术有限公司 | 软件数据的处理方法、装置、可读介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
CN101620565A (zh) * | 2008-07-04 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的功能自动化测试方法 |
CN101620563A (zh) * | 2008-06-30 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的录入回放模式自动化测试方法及系统 |
CN103336742A (zh) * | 2013-07-18 | 2013-10-02 | 北京航空航天大学 | 一种基于Android的自动化软件黑盒测试系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186459B (zh) * | 2011-12-30 | 2016-05-11 | 迈普通信技术股份有限公司 | 基于脚本的java图形用户界面自动测试方法 |
US9047413B2 (en) * | 2012-10-05 | 2015-06-02 | Software Ag | White-box testing systems and/or methods for use in connection with graphical user interfaces |
CN103777930B (zh) * | 2012-10-19 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 程序内部信息的输出方法、获取方法、监测方法及其装置 |
CN104133764B (zh) * | 2013-05-03 | 2018-01-23 | 腾讯科技(深圳)有限公司 | 应用程序界面的响应测试方法和装置 |
US9170921B2 (en) * | 2014-01-24 | 2015-10-27 | Bank Of America Corporation | Application testing automation |
CN104699608B (zh) * | 2015-03-10 | 2017-10-27 | 于秀山 | 图形用户界面软件自动测试方法及装置 |
-
2016
- 2016-01-18 CN CN201610030995.5A patent/CN105718353B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
CN101620563A (zh) * | 2008-06-30 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的录入回放模式自动化测试方法及系统 |
CN101620565A (zh) * | 2008-07-04 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的功能自动化测试方法 |
CN103336742A (zh) * | 2013-07-18 | 2013-10-02 | 北京航空航天大学 | 一种基于Android的自动化软件黑盒测试系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105718353A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718353B (zh) | 一种用于图形界面应用的测试方法、装置及系统 | |
US9697108B2 (en) | System, method, and apparatus for automatic recording and replaying of application executions | |
CN104636435B (zh) | 云终端录屏方法 | |
US20120131456A1 (en) | Capture and Playback for GUI-Based Tasks | |
Liu et al. | Capture-replay testing for android applications | |
US10657036B2 (en) | Determining visual testing coverages | |
US9355003B2 (en) | Capturing trace information using annotated trace output | |
CN105955881A (zh) | 一种自动化测试步骤录制及回放方法和装置 | |
TWI622877B (zh) | System and method for recording and replaying mouse behavior, recording media and program products | |
CN104331373A (zh) | 一种Monkey测试系统及方法 | |
CN102147756B (zh) | 终端测试方法和系统 | |
US20150363300A1 (en) | Generating software test script from video | |
CN101311897A (zh) | 一种抓取应用程序的图形用户界面资源的方法及装置 | |
CN110209386A (zh) | 数据埋点的设置方法、埋点数据的获取方法及装置 | |
CN110610089B (zh) | 用户行为模拟方法、装置及计算机设备 | |
CN105659248A (zh) | 通过合规性测试进行自动化的风险跟踪 | |
WO2015185022A1 (zh) | 一种提取dvr硬盘中残余视频和被删除视频的装置和方法 | |
US11813538B2 (en) | Videogame telemetry data and game asset tracker for session recordings | |
US20150254170A1 (en) | Method and system for entering information | |
Havranek et al. | V2S: a tool for translating video recordings of mobile app usages into replayable scenarios | |
Bell | Detecting, isolating, and enforcing dependencies among and within test cases | |
CN106529304A (zh) | 一种安卓应用并发漏洞检测系统 | |
CN108459848A (zh) | 一种应用于Excel软件的脚本获取方法及系统 | |
CN113824987A (zh) | 直播间首帧耗时的确定方法、介质、装置和计算设备 | |
CN109876446B (zh) | 一种检测游戏贴图和网格在内存中占用分布的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518057 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park Road eight South South technology Howare Technology Building 16 Applicant after: Shenzhen Pango Microsystems Co., Ltd. Address before: 518057 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park Road eight South South technology Howare Technology Building 16 Applicant before: SHENZHEN PANGO MICROSYSTEMS CO., LTD. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |