一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf

上传人:000****221 文档编号:1314005 上传时间:2018-04-15 格式:PDF 页数:12 大小:1.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310305497.3

申请日:

2013.07.18

公开号:

CN103336742A

公开日:

2013.10.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20130718|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

北京航空航天大学

发明人:

姜博; 王珂; 高小鹏; 沈彦鸣; 陈鹏; 万寒; 龙翔

地址:

100191 北京市海淀区学院路37号

优先权:

专利代理机构:

北京科迪生专利代理有限责任公司 11251

代理人:

成金玉;卢纪

PDF下载: PDF下载
内容摘要

本发明涉及一种基于Android的自动化软件黑盒测试系统及方法,包括:事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,在没有应用程序代码的情况下,人工获取Android的关键UI事件和系统intent事件,将其以训练脚本的形式,通过定制的测试工具注入到Andorid设备上的对应应用程序,然后在训练脚本的执行过程中,动态执行、过滤系统事件,并记录相关事件所触发的GUI新窗口控件信息和窗口转换关系,根据记录的信息,自动化的建立GUI状态转换图模型;最后根据GUI状态转换图模型生成测试用例。本发明可以快速、有效的将系统事件加到GUI模型中,从而来保证测试的完整性,具备自动化程度相对较高、可重用性强、可扩展性优良等特点。

权利要求书

1.   一种基于Android的自动化软件黑盒测试系统,其特征在于包括:事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,其中:
事件注入模块:人工编写训练脚本,将应用程序的关键UI事件和系统intent事件全集发送到应用程序,为事件动态执行和过滤模块提供事件激励;根据Android应用程序AndroidManifest.xml文件的所有intent事件描述,手动的构造intent事件,同时根据Android应用程序GUI控件信息构造关键UI事件,并且以自定制测试工具可识别的脚本命令形式,编写训练脚本,最终以训练脚本为形式注入到定制测试工具,从而进一步发送到Android真实设备或者Android模拟器上,促使相应应用程序运行;
事件动态执行和过滤模块:执行训练脚本,并在训练脚本执行过程中,针对每一个应用程序窗口,根据过滤条件动态过滤无关系统intent事件,来避免GUI信息自动化录制模块录制无关事件所触发的GUI转换;使用定制测试工具执行训练脚本,用来触发Android真实设备或者Android模拟器上对应应用程序的运行;根据过滤条件将应用程序当前GUI窗口下的无关事件过滤掉;过滤条件为是否可以触发Android应用程序GUI窗口的变化,将无法触发窗口转换的事件过滤掉;在训练脚本的执行过程中的动态执行和过滤事件,必须加入Android应用程序GUI的状态验证,来判断某事件是否应该被过滤掉;所述状态验证是在训练脚本激励应用程序执行的过程中,通过比对某GUI的控件集属性或具有代表性控件(比如TextView控件、控件树的叶子控件等)的关键属性来验证该GUI窗口是否有变化;状态验证过程中,可以通过设定相应参数来选择是比对GUI控件集属性还是比对具有代表性控件的关键属性;在比对GUI控件集属性或者具有代表性控件关键属性时,采用DUMPQ命令来获取当前窗口所有的控件信息或者采用DUMPQ的改进命令DUMPW命令,只获取指定控件的控件信息;
GUI信息自动化录制模块:针对事件动态执行和过滤模块中未被过滤的系统intent事件和人工构造的关键UI事件,自动录制其所触发的新GUI控件信息和基于该事件的GUI转换关系,并存储到数据库中,来为GUI状态转换图自动建立模块提供建立转换图所需数据,其中GUI控件信息包括Android应用程序某窗口中GUI的控件集和对应的控件属性,窗口转换关系主要记录应用程序的当前窗口名、窗口转换事件和下一个窗口名;当训练脚本执行过程中一个事件触发了GUI转换,一方面自动向Android系统的View Server发送DUMP命令,Android在接到命令后,会将当前窗口的窗口名、GUI控件信息返回给该发明的系统中,并存储数据库GUI控件信息表中;另一方面,将事件触发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名存储到数据库的窗口转换关系表中;
GUI状态转换图自动建立模块:根据GUI信息自动化录制模块录制的GUI相关信息,参数化定义状态转换图的状态和条件转换,然后建立状态转换图,最后发送到测试生成模块,生成测试用例;由于使用参数化定义窗口状态,因此可以通过设置参数将窗口转换表中的一个窗口名和该窗口下所有控件的属性集合定义为一个GUI状态;也可以设置参数将窗口转换表中的一个窗口名和该窗口下所有叶子控件或者可聚焦控件的属性集合定义为一个GUI状态;另外,将窗口转换事件定义为基于事件的GUI状态转换;根据设定的参数,选择性的在数据全集中,读取所需数据,建立状态对象,将其作为状态转换图的一个节点;然后对所有状态编号,针对某一个状态即GUI窗口,从数据库中读取该状态下所有状态转换关系即所有以该窗口名为起始窗口的窗口转换关系,作为状态转换图中该节点到其他节点的有向边,以上过程即建立了GUI状态转换图。

2.
   根据权利要求1所述一种基于Android的自动化软件黑盒测试系统,其特征在于:所述事件注入模块具体实现如下:
(1)使用开源工具,获取apk文件中的AndroidManifest.xml文件;
(2)获取到AndroidManifest.xml文件中的intent事件全集;
(3)根据Android系统提供的broadcastIntent方法、startActivity方法和startService方法要求,人工构造系统事件;
(4)根据Android SDK中自带工具,人工搜索获取Android的关键UI事件;关键UI事件为可以触发GUI窗口转换的UI事件;
(5)根据定制测试工具的脚本命令形式,人工编写训练脚本;
(6)最终以训练脚本为形式注入到定制测试工具。

3.
   根据权利要求1所述的一种基于Android自动化软件黑盒测试系统,其特征在于所述事件动态执行和过滤模块具体实现如下:
(1)定制测试工具执行训练脚本,来触发应用程序运行;
(2)训练脚本执行过程中,使用某个关键UI事件启动一个Activity,即应用程序进入一个GUI窗口,向该GUI窗口发送intent事件全集;
(3)发送一个intent事件后,进行GUI窗口变化验证,在事件发送一段时间后,比如在事件发送1s后,验证当前窗口的窗口名是否和事件发生前的窗口名相同,如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,关键属性比如TextView控件的文本属性;
(4)如果GUI窗口不变,过滤掉该intent事件;如果窗口变化,需要使用Android应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口,继续发生其他intent事件;
(5)针对一个GUI窗口,发送完所有intent事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行步骤(3);
(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口,如果有,重复执行步骤(2),如果没有,则结束。

4.
   一种基于Android的自动化软件黑盒测试方法,其特征在于实现步骤如下:
(1)通过.apk文件中的AndroidManifest.xml文件获取应用程序的所有静态注册的intent事件及intent事件的属性信息;
(2)人工编写训练脚本,以训练脚本的形式注入事件,训练脚本包括针对每一个窗口发送全部的intent事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;
(3)定制测试工具执行训练脚本;
(4)动态过滤系统事件,对于不能触发应用程序窗口转换的系统事件应该被过滤掉;
(5)GUI信息自动化录制,针对已通过状态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系,并将其分别存储到数据库的控件属性表和窗口转换表中;
(6)自动建立GUI状态转换图,设定参数来定义状态转换图的状态和基于事件的状态转换,然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;
(7)测试生成,制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准;根据状态转换图搜索条件的和冗余测试用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。

说明书

一种基于Android的自动化软件黑盒测试系统及方法
技术领域
本发明属于软件测试技术领域,涉及一种基于模型的Android自动化软件黑盒测试系统及方法,用于解决Android系统的软件自动化测试问题。
背景技术
随着Android应用的快速发展,Android测试的研究却相对滞后,对整个软件开发和测试过程都有着不可估量的影响。Android自动化测试应运而生,其中自动化测试用例生成问题是软件测试的核心所在,所以针对Android而特有的自动化测试用例生成技术的研究具有极其重要的意义。
目前,基于Android系统的自动化测试生成技术主要包括:
基于Monkey工具的自动化测试生成技术。Monkey是Android系统中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种自动化的黑盒测试,可以快速生成大量的简单随机的测试输入。但是,Monkey不能生成智能的测试用例,比如不能输入正确的用户名密码。而且不能避免生成冗余测试用例。另外,Monkey只能生成Android GUI事件,不能生成系统事件。
另外一种比较流行的自动化测试生成的技术是基于模型的测试生成技术。基于模型的测试生成技术很好的抽象了一个GUI程序的输入空间,可以提高测试生成效率、减少冗余。主要的模型类型有状态机模型及状态机变种模型、GUI树模型等。基于模型的自动化测试生成技术主要侧重于测试基于GUI的应用程序。现有的基于模型的测试生成技术主要针对Android GUI事件,而没有考虑系统事件。最为重要的是,基于模型的自动生成技术的前提是需要一个适用性较高的模型,而现有的技术中建模的过程都是手动的,这样需要的人力成本过高。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于Android的自动化软件黑盒测试系统及方法,保证软件测试的完整性;还可以完全脱离应用程序的保密性限制,具备自动化程度相对较高、可重用性强、可扩展性优良等特点。
本发明技术解决方案:一种基于Android的自动化软件黑盒测试系统,包括:事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,其中:
事件注入模块:人工编写训练脚本,将应用程序的关键UI事件和系统intent事件全集发送到应用程序,为事件动态执行和过滤模块提供事件激励;根据Android应用程序AndroidManifest.xml文件的所有intent事件描述,手动的构造intent事件,同时根据Android应用程序GUI控件信息构造关键UI事件,并且以自定制测试工具可识别的脚本命令形式,编写训练脚本,最终以训练脚本为形式注入到定制测试工具,从而进一步发送到Android真实设备或者Android模拟器上,促使相应应用程序运行;
事件动态执行和过滤模块:执行训练脚本,并在训练脚本执行过程中,针对每一个应用程序窗口,根据过滤条件动态过滤无关系统intent事件,来避免GUI信息自动化录制模块录制无关事件所触发的GUI转换;使用定制测试工具执行训练脚本,用来触发Android真实设备或者Android模拟器上对应应用程序的运行;根据过滤条件将应用程序当前GUI窗口下的无关事件过滤掉。过滤条件为是否可以触发Android应用程序GUI窗口的变化,将无法触发窗口转换的事件过滤掉。在训练脚本的执行过程中的动态执行和过滤事件,必须加入Android应用程序GUI的状态验证,来判断某事件是否应该被过滤掉;所述状态验证是在训练脚本激励应用程序执行的过程中,通过比对某GUI的控件集属性或具有代表性控件(比如TextView控件、控件树的叶子控件等)的关键属性来验证该GUI窗口是否有变化;状态验证过程中,可以通过设定相应参数来选择是比对GUI控件集属性还是比对具有代表性控件的关键属性;在比对GUI控件集属性或者具有代表性控件关键属性时,采用DUMPQ命令来获取当前窗口所有的控件信息或者采用DUMPQ的改进命令DUMPW命令,只获取指定控件的控件信息;
GUI信息自动化录制模块:针对事件动态执行和过滤模块中未被过滤的系统intent事件和人工构造的关键UI事件,自动录制其所触发的新GUI控件信息和基于该事件的GUI转换关系,并存储到数据库中,来为GUI状态转换图自动建立模块提供建立转换图所需数据,其中GUI控件信息包括Android应用程序某窗口中GUI的控件集和对应的控件属性,窗口转换关系主要记录应用程序的当前窗口名、窗口转换事件和下一个窗口名。当训练脚本执行过程中一个事件触发了GUI转换,一方面自动向Android系统的View Server发送DUMP命令,Android在接到命令后,会将当前窗口的窗口名、GUI控件信息返回给该发明的系统中,并存储数据库GUI控件信息表中;另一方面,将事件触发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名存储到数据库的窗口转换关系表中;
GUI状态转换图自动建立模块:根据GUI信息自动化录制模块录制的GUI相关信息,参数化定义状态转换图的状态和条件转换,然后建立状态转换图,最后发送到测试生成模块,生成测试用例;由于使用参数化定义窗口状态,因此可以通过设置参数将窗口转换表中的一个窗口名和该窗口下所有控件的属性集合定义为一个GUI状态;也可以设置参数将窗口转换表中的一个窗口名和该窗口下所有叶子控件或者可聚焦控件的属性集合定义为一个GUI状态;另外,将窗口转换事件定义为基于事件的GUI状态转换;根据设定的参数,选择性的在数据全集中,读取所需数据,建立状态对象,将其作为状态转换图的一个节点;然后对所有状态编号,针对某一个状态即GUI窗口,从数据库中读取该状态下所有状态转换关系即所有以该窗口名为起始窗口的窗口转换关系,作为状态转换图中该节点到其他节点的有向边,以上过程即建立了GUI状态转换图。
在GUI状态转换图构建完成之后,需要制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定检测冗余测试用例的标准;根据状态转换图搜索条件的和冗余测试用例标准,使用广度优先或者深度优先算法来遍历GUI状态转换图来自动的生成事件序列即为测试用例,根据事件序列生成测试脚本,最后根据测试脚本相应应用程序进行测试。
所述事件注入模块具体实现如下:
(1)使用开源工具,获取apk文件中的AndroidManifest.xml文件;
(2)获取到AndroidManifest.xml文件中的intent事件全集;
(3)根据Android系统提供的broadcastIntent方法、startActivity方法和startService方法要求,人工构造系统事件;
(4)根据Android SDK中自带工具,人工搜索获取Android的关键UI事件;关键UI事件为可以触发GUI窗口转换的UI事件;
(5)根据定制测试工具的脚本命令形式,人工编写训练脚本。
(6)最终以训练脚本为形式注入到定制测试工具。
所述事件动态执行和过滤模块具体实现如下:
(1)定制测试工具执行训练脚本,来触发应用程序运行;
(2)训练脚本执行过程中,使用某个关键UI事件启动一个Activity,即应用程序进入一个GUI窗口,向该GUI窗口发送intent事件全集;
(3)发送一个intent事件后,进行GUI窗口变化验证,在事件发送一段时间后,比如在事件发送1s后,验证当前窗口的窗口名是否和事件发生前的窗口名相同,如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,关键属性比如TextView控件的文本属性;
(4)如果GUI窗口不变,过滤掉该intent事件;如果窗口变化,需要使用Android应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口,继续发生其他intent事件;
(5)针对一个GUI窗口,发送完所有intent事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行步骤(3);
(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口,如果有,重复执行步骤(2),如果没有,则结束。
一种基于Android的自动化软件黑盒测试方法,其特征在于实现步骤如下:
(1)通过.apk文件中的AndroidManifest.xml文件获取应用程序的所有静态注册的intent事件及intent事件的属性信息;
(2)人工编写训练脚本,以训练脚本的形式注入事件,训练脚本包括针对每一个窗口发送全部的intent事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;
(3)定制测试工具执行训练脚本;
(4)动态过滤系统事件,对于不能触发应用程序窗口转换的系统事件应该被过滤掉;
(5)GUI信息自动化录制,针对已通过状态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系,并将其分别存储到数据库的控件属性表和窗口转换表中;
(6)自动建立GUI状态转换图,设定参数来定义状态转换图的状态和基于事件的状态转换,然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;
(7)测试生成,制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准;根据状态转换图搜索条件的和冗余测试用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。
本发明与现有技术相比的优点在于:
(1)由于该发明加入了对系统事件的考虑,采用动态执行、反馈过滤系统事件的技术,可以快速、有效的将系统事件加到GUI模型中,来保证测试的完整性。
(2)由于该发明是黑盒测试,不需要应用程序代码,因此,可以完全脱离应用程序的保密性限制。
(3)本发明还具备自动化程度相对较高、可重用性强、可扩展性优良等特点。
附图说明
图1为本发明的测试系统的组成结构框图;
图2为本发明中事件注入模块实现过程图;
图3为本发明中动态执行和过滤系统事件的流程示意图;
图4为本发明中GUI状态转换图自动建立模块。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够理解和实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。因此,以下详细说明不应该被理解为限制意义,本发明的范围仅仅由权利要求来限定。
如图1所示,本发明基于Android的自动化软件黑盒测试系统主要包括:事件注入模块、事件的动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,测试生成构成。
整个实现过程如下:
1.使用开源工具,获取apk文件中的AndroidManifest.xml文件,然后根据AndroidManifest.xml文件获取应用程序的所有静态注册intent事件及intent事件的属性信息;
2.人工编写训练脚本,以训练脚本的形式注入事件。训练脚本主要包括针对每一个窗口发送全部的系统事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;
3.定制测试工具执行训练脚本;
4.动态过滤系统事件,对于不能触发应用程序窗口转换的事件应该被过滤掉;
5.GUI信息自动化录制。针对已通过状态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系。并将其分别存储到数据库的控件属性表和窗口转换表中;
6.自动建立GUI状态转换图。设定参数来定义状态转换图的状态和基于事件的状态转换。然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;
7.测试生成。制定状态转换图的搜索条件,比如应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准。根据状态转换图搜索条件的和冗余测试用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。
上述各模块的具体实现过程如下:
1.事件注入模块
该模块的实现过程如下:
(1)使用开源工具,获取apk文件中的AndroidManifest.xml文件;
(2)获取到AndroidManifest.xml文件中的intent事件全集;
(3)根据broadcastIntent方法、startActivity方法和startService方法要求,人工构造系统事件。
(4)根据Android SDK中自带工具,人工搜索获取Android的关键UI事件。关键UI事件为可以触发GUI窗口转换的UI事件。
(5)根据定制的测试工具的脚本命令形式,人工编写训练脚本。
2.事件动态执行和过滤模块
该模块的实现过程如图2所示:
(1)定制的测试工具执行训练脚本,来触发应用程序运行。
(2)训练脚本执行过程中,使用某个关键UI事件启动一个Activity,即应用程序进入一个GUI窗口,向该GUI窗口发送intent事件全集。
(3)发送一个intent事件后,进行GUI窗口变化验证。比如在事件发送1s后,验证当前窗口的窗口名是否和事件发生前的窗口名相同。如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,比如TextView控件的文本属性。
(4)如果GUI窗口不变,过滤掉该intent事件。如果窗口变化,需要使用Android应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口,继续发生其他intent事件。
(5)针对一个GUI窗口,发送完所有intent事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行(3)。
(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口。如果有,重复执行(2),如果没有,结束。
3.GUI信息自动化录制模块
该模块实现过程如下:
(1)如果一个事件(UI事件或者intent事件)触发了GUI窗口转换,该发明会向Android系统中的View Server发送DUMPQ命令,来获取当前GUI窗口的所有控件的关键属性集,并存储到数据库中。
(2)同时,GUI信息自动化录制模块会记录该事件触发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名,并存储到数据库的窗口转换关系表中。
4.GUI状态转换图自动建立模块,如图4所示。
该模块实现过程如下:
(1)通过设置参数来定义窗口转换图中的状态。参数state设置为all,表示将窗口中所有控件的属性集作为一个状态;参数state设置为leaf,表示将窗口中所有叶子控件的属性集作为一个状态;参数state设置为focused,表示将窗口中所有可聚焦的控件的属性集作为一个状态。
(2)根据设置的参数,从数据库中的控件信息全集中读取相应数据,并建立相对应的状态对象,将其作为状态转换图中的节点。
(3)将上述信息从数据库读取出来之后,把该应用程序的所有窗口编号,创建一个一维数组,数组下标为该应用程序窗口对应编号。
(4)针对某一个窗口,创建一个HashMap,HashMap中的key值为该窗口中的某个事件名,对应的value值为该事件所触发的目标窗口序号。即将该窗口的所有状态转换关系,作为状态转换图中该节点到其他节点的有向边,存储到HashMap中。
(5)最后分别将各HashMap存储到相对应的数组中。即一个数组元素存储的是该下标状态下所有可能的状态转换关系。
(6)上述过程将状态转换图建立完成。
总之,该发明加入了对系统事件的考虑,采用动态执行、反馈过滤系统事件的技术,可以快速、有效的将系统事件加到GUI模型中,从而来保证测试的完整性。另外,由于该发明是黑盒测试,不需要应用程序代码,因此,可以完全脱离应用程序的保密性限制。本发明还具备自动化程度相对较高、可重用性强、可扩展性优良等特点。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf_第1页
第1页 / 共12页
一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf_第2页
第2页 / 共12页
一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf》由会员分享,可在线阅读,更多相关《一种基于ANDROID的自动化软件黑盒测试系统及方法.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN103336742A43申请公布日20131002CN103336742ACN103336742A21申请号201310305497322申请日20130718G06F11/3620060171申请人北京航空航天大学地址100191北京市海淀区学院路37号72发明人姜博王珂高小鹏沈彦鸣陈鹏万寒龙翔74专利代理机构北京科迪生专利代理有限责任公司11251代理人成金玉卢纪54发明名称一种基于ANDROID的自动化软件黑盒测试系统及方法57摘要本发明涉及一种基于ANDROID的自动化软件黑盒测试系统及方法,包括事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状。

2、态转换图建立模块,在没有应用程序代码的情况下,人工获取ANDROID的关键UI事件和系统INTENT事件,将其以训练脚本的形式,通过定制的测试工具注入到ANDORID设备上的对应应用程序,然后在训练脚本的执行过程中,动态执行、过滤系统事件,并记录相关事件所触发的GUI新窗口控件信息和窗口转换关系,根据记录的信息,自动化的建立GUI状态转换图模型;最后根据GUI状态转换图模型生成测试用例。本发明可以快速、有效的将系统事件加到GUI模型中,从而来保证测试的完整性,具备自动化程度相对较高、可重用性强、可扩展性优良等特点。51INTCL权利要求书3页说明书6页附图2页19中华人民共和国国家知识产权局1。

3、2发明专利申请权利要求书3页说明书6页附图2页10申请公布号CN103336742ACN103336742A1/3页21一种基于ANDROID的自动化软件黑盒测试系统,其特征在于包括事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,其中事件注入模块人工编写训练脚本,将应用程序的关键UI事件和系统INTENT事件全集发送到应用程序,为事件动态执行和过滤模块提供事件激励;根据ANDROID应用程序ANDROIDMANIFESTXML文件的所有INTENT事件描述,手动的构造INTENT事件,同时根据ANDROID应用程序GUI控件信息构造关键UI事件,并且以。

4、自定制测试工具可识别的脚本命令形式,编写训练脚本,最终以训练脚本为形式注入到定制测试工具,从而进一步发送到ANDROID真实设备或者ANDROID模拟器上,促使相应应用程序运行;事件动态执行和过滤模块执行训练脚本,并在训练脚本执行过程中,针对每一个应用程序窗口,根据过滤条件动态过滤无关系统INTENT事件,来避免GUI信息自动化录制模块录制无关事件所触发的GUI转换;使用定制测试工具执行训练脚本,用来触发ANDROID真实设备或者ANDROID模拟器上对应应用程序的运行;根据过滤条件将应用程序当前GUI窗口下的无关事件过滤掉;过滤条件为是否可以触发ANDROID应用程序GUI窗口的变化,将无法。

5、触发窗口转换的事件过滤掉;在训练脚本的执行过程中的动态执行和过滤事件,必须加入ANDROID应用程序GUI的状态验证,来判断某事件是否应该被过滤掉;所述状态验证是在训练脚本激励应用程序执行的过程中,通过比对某GUI的控件集属性或具有代表性控件(比如TEXTVIEW控件、控件树的叶子控件等)的关键属性来验证该GUI窗口是否有变化;状态验证过程中,可以通过设定相应参数来选择是比对GUI控件集属性还是比对具有代表性控件的关键属性;在比对GUI控件集属性或者具有代表性控件关键属性时,采用DUMPQ命令来获取当前窗口所有的控件信息或者采用DUMPQ的改进命令DUMPW命令,只获取指定控件的控件信息;GU。

6、I信息自动化录制模块针对事件动态执行和过滤模块中未被过滤的系统INTENT事件和人工构造的关键UI事件,自动录制其所触发的新GUI控件信息和基于该事件的GUI转换关系,并存储到数据库中,来为GUI状态转换图自动建立模块提供建立转换图所需数据,其中GUI控件信息包括ANDROID应用程序某窗口中GUI的控件集和对应的控件属性,窗口转换关系主要记录应用程序的当前窗口名、窗口转换事件和下一个窗口名;当训练脚本执行过程中一个事件触发了GUI转换,一方面自动向ANDROID系统的VIEWSERVER发送DUMP命令,ANDROID在接到命令后,会将当前窗口的窗口名、GUI控件信息返回给该发明的系统中,并。

7、存储数据库GUI控件信息表中;另一方面,将事件触发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名存储到数据库的窗口转换关系表中;GUI状态转换图自动建立模块根据GUI信息自动化录制模块录制的GUI相关信息,参数化定义状态转换图的状态和条件转换,然后建立状态转换图,最后发送到测试生成模块,生成测试用例;由于使用参数化定义窗口状态,因此可以通过设置参数将窗口转换表中的一个窗口名和该窗口下所有控件的属性集合定义为一个GUI状态;也可以设置参数将窗口转换表中的一个窗口名和该窗口下所有叶子控件或者可聚焦控件的属性集合定义为一个GUI状态;另外,将窗口转换事件定义为基于事件的GUI状态转换;根据。

8、设定的参数,选择性的在数据全集中,读取所需数据,建立状态对象,将其作为状态转换图的一个节点;然后对所有状态编号,针对某一个状态即GUI窗口,从数据库中读取该状态下所有状态转换关系即所有以该窗口名为起始窗口的窗口转换关系,作为状态转换图中该节点到其他节点的有权利要求书CN103336742A2/3页3向边,以上过程即建立了GUI状态转换图。2根据权利要求1所述一种基于ANDROID的自动化软件黑盒测试系统,其特征在于所述事件注入模块具体实现如下(1)使用开源工具,获取APK文件中的ANDROIDMANIFESTXML文件;(2)获取到ANDROIDMANIFESTXML文件中的INTENT事件全。

9、集;(3)根据ANDROID系统提供的BROADCASTINTENT方法、STARTACTIVITY方法和STARTSERVICE方法要求,人工构造系统事件;(4)根据ANDROIDSDK中自带工具,人工搜索获取ANDROID的关键UI事件;关键UI事件为可以触发GUI窗口转换的UI事件;(5)根据定制测试工具的脚本命令形式,人工编写训练脚本;(6)最终以训练脚本为形式注入到定制测试工具。3根据权利要求1所述的一种基于ANDROID自动化软件黑盒测试系统,其特征在于所述事件动态执行和过滤模块具体实现如下(1)定制测试工具执行训练脚本,来触发应用程序运行;(2)训练脚本执行过程中,使用某个关键U。

10、I事件启动一个ACTIVITY,即应用程序进入一个GUI窗口,向该GUI窗口发送INTENT事件全集;(3)发送一个INTENT事件后,进行GUI窗口变化验证,在事件发送一段时间后,比如在事件发送1S后,验证当前窗口的窗口名是否和事件发生前的窗口名相同,如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,关键属性比如TEXTVIEW控件的文本属性;(4)如果GUI窗口不变,过滤掉该INTENT事件;如果窗口变化,需要使用ANDROID应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口,继续发生其他INTENT事件;(5)针对一个GUI窗口,发送完所有IN。

11、TENT事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行步骤(3);(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口,如果有,重复执行步骤(2),如果没有,则结束。4一种基于ANDROID的自动化软件黑盒测试方法,其特征在于实现步骤如下(1)通过APK文件中的ANDROIDMANIFESTXML文件获取应用程序的所有静态注册的INTENT事件及INTENT事件的属性信息;(2)人工编写训练脚本,以训练脚本的形式注入事件,训练脚本包括针对每一个窗口发送全部的INTENT事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;(3)定制测试工具执行训练脚本;(4。

12、)动态过滤系统事件,对于不能触发应用程序窗口转换的系统事件应该被过滤掉;(5)GUI信息自动化录制,针对已通过状态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系,并将其分别存储到数据库的控件属性表和窗口转换表中;(6)自动建立GUI状态转换图,设定参数来定义状态转换图的状态和基于事件的状态转换,然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;权利要求书CN103336742A3/3页4(7)测试生成,制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余。

13、测试用例的标准;根据状态转换图搜索条件的和冗余测试用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。权利要求书CN103336742A1/6页5一种基于ANDROID的自动化软件黑盒测试系统及方法技术领域0001本发明属于软件测试技术领域,涉及一种基于模型的ANDROID自动化软件黑盒测试系统及方法,用于解决ANDROID系统的软件自动化测试问题。背景技术0002随着ANDROID应用的快速发展,ANDROID测试的研究却相对滞后,对整个软件开发和测试过程都有着不可估量的影响。ANDROID自动化测试应运而生,其中自动化测试用例生成问题。

14、是软件测试的核心所在,所以针对ANDROID而特有的自动化测试用例生成技术的研究具有极其重要的意义。0003目前,基于ANDROID系统的自动化测试生成技术主要包括0004基于MONKEY工具的自动化测试生成技术。MONKEY是ANDROID系统中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试。MONKEY测试是一种自动化的黑盒测试,可以快速生成大量的简单随机的测试输入。但是,MONKEY不能生成智能的测试用例,比如不能输入正确的用户名密码。而且不能避免生成冗余测试用例。另外,MONKEY。

15、只能生成ANDROIDGUI事件,不能生成系统事件。0005另外一种比较流行的自动化测试生成的技术是基于模型的测试生成技术。基于模型的测试生成技术很好的抽象了一个GUI程序的输入空间,可以提高测试生成效率、减少冗余。主要的模型类型有状态机模型及状态机变种模型、GUI树模型等。基于模型的自动化测试生成技术主要侧重于测试基于GUI的应用程序。现有的基于模型的测试生成技术主要针对ANDROIDGUI事件,而没有考虑系统事件。最为重要的是,基于模型的自动生成技术的前提是需要一个适用性较高的模型,而现有的技术中建模的过程都是手动的,这样需要的人力成本过高。发明内容0006本发明技术解决问题克服现有技术的。

16、不足,提供一种基于ANDROID的自动化软件黑盒测试系统及方法,保证软件测试的完整性;还可以完全脱离应用程序的保密性限制,具备自动化程度相对较高、可重用性强、可扩展性优良等特点。0007本发明技术解决方案一种基于ANDROID的自动化软件黑盒测试系统,包括事件注入模块、事件动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,其中0008事件注入模块人工编写训练脚本,将应用程序的关键UI事件和系统INTENT事件全集发送到应用程序,为事件动态执行和过滤模块提供事件激励;根据ANDROID应用程序ANDROIDMANIFESTXML文件的所有INTENT事件描述,手动的构造IN。

17、TENT事件,同时根据ANDROID应用程序GUI控件信息构造关键UI事件,并且以自定制测试工具可识别的脚本命令形式,编写训练脚本,最终以训练脚本为形式注入到定制测试工具,从而进一步发送到说明书CN103336742A2/6页6ANDROID真实设备或者ANDROID模拟器上,促使相应应用程序运行;0009事件动态执行和过滤模块执行训练脚本,并在训练脚本执行过程中,针对每一个应用程序窗口,根据过滤条件动态过滤无关系统INTENT事件,来避免GUI信息自动化录制模块录制无关事件所触发的GUI转换;使用定制测试工具执行训练脚本,用来触发ANDROID真实设备或者ANDROID模拟器上对应应用程序的。

18、运行;根据过滤条件将应用程序当前GUI窗口下的无关事件过滤掉。过滤条件为是否可以触发ANDROID应用程序GUI窗口的变化,将无法触发窗口转换的事件过滤掉。在训练脚本的执行过程中的动态执行和过滤事件,必须加入ANDROID应用程序GUI的状态验证,来判断某事件是否应该被过滤掉;所述状态验证是在训练脚本激励应用程序执行的过程中,通过比对某GUI的控件集属性或具有代表性控件(比如TEXTVIEW控件、控件树的叶子控件等)的关键属性来验证该GUI窗口是否有变化;状态验证过程中,可以通过设定相应参数来选择是比对GUI控件集属性还是比对具有代表性控件的关键属性;在比对GUI控件集属性或者具有代表性控件关。

19、键属性时,采用DUMPQ命令来获取当前窗口所有的控件信息或者采用DUMPQ的改进命令DUMPW命令,只获取指定控件的控件信息;0010GUI信息自动化录制模块针对事件动态执行和过滤模块中未被过滤的系统INTENT事件和人工构造的关键UI事件,自动录制其所触发的新GUI控件信息和基于该事件的GUI转换关系,并存储到数据库中,来为GUI状态转换图自动建立模块提供建立转换图所需数据,其中GUI控件信息包括ANDROID应用程序某窗口中GUI的控件集和对应的控件属性,窗口转换关系主要记录应用程序的当前窗口名、窗口转换事件和下一个窗口名。当训练脚本执行过程中一个事件触发了GUI转换,一方面自动向ANDR。

20、OID系统的VIEWSERVER发送DUMP命令,ANDROID在接到命令后,会将当前窗口的窗口名、GUI控件信息返回给该发明的系统中,并存储数据库GUI控件信息表中;另一方面,将事件触发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名存储到数据库的窗口转换关系表中;0011GUI状态转换图自动建立模块根据GUI信息自动化录制模块录制的GUI相关信息,参数化定义状态转换图的状态和条件转换,然后建立状态转换图,最后发送到测试生成模块,生成测试用例;由于使用参数化定义窗口状态,因此可以通过设置参数将窗口转换表中的一个窗口名和该窗口下所有控件的属性集合定义为一个GUI状态;也可以设置参数将窗。

21、口转换表中的一个窗口名和该窗口下所有叶子控件或者可聚焦控件的属性集合定义为一个GUI状态;另外,将窗口转换事件定义为基于事件的GUI状态转换;根据设定的参数,选择性的在数据全集中,读取所需数据,建立状态对象,将其作为状态转换图的一个节点;然后对所有状态编号,针对某一个状态即GUI窗口,从数据库中读取该状态下所有状态转换关系即所有以该窗口名为起始窗口的窗口转换关系,作为状态转换图中该节点到其他节点的有向边,以上过程即建立了GUI状态转换图。0012在GUI状态转换图构建完成之后,需要制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定检测冗余测试用例的标准;根据状。

22、态转换图搜索条件的和冗余测试用例标准,使用广度优先或者深度优先算法来遍历GUI状态转换图来自动的生成事件序列即为测试用例,根据事件序列生成测试脚本,最后根据测试脚本相应应用程序进行测试。0013所述事件注入模块具体实现如下说明书CN103336742A3/6页70014(1)使用开源工具,获取APK文件中的ANDROIDMANIFESTXML文件;0015(2)获取到ANDROIDMANIFESTXML文件中的INTENT事件全集;0016(3)根据ANDROID系统提供的BROADCASTINTENT方法、STARTACTIVITY方法和STARTSERVICE方法要求,人工构造系统事件;0。

23、017(4)根据ANDROIDSDK中自带工具,人工搜索获取ANDROID的关键UI事件;关键UI事件为可以触发GUI窗口转换的UI事件;0018(5)根据定制测试工具的脚本命令形式,人工编写训练脚本。0019(6)最终以训练脚本为形式注入到定制测试工具。0020所述事件动态执行和过滤模块具体实现如下0021(1)定制测试工具执行训练脚本,来触发应用程序运行;0022(2)训练脚本执行过程中,使用某个关键UI事件启动一个ACTIVITY,即应用程序进入一个GUI窗口,向该GUI窗口发送INTENT事件全集;0023(3)发送一个INTENT事件后,进行GUI窗口变化验证,在事件发送一段时间后,。

24、比如在事件发送1S后,验证当前窗口的窗口名是否和事件发生前的窗口名相同,如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,关键属性比如TEXTVIEW控件的文本属性;0024(4)如果GUI窗口不变,过滤掉该INTENT事件;如果窗口变化,需要使用ANDROID应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口,继续发生其他INTENT事件;0025(5)针对一个GUI窗口,发送完所有INTENT事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行步骤(3);0026(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口,如果有,重复执。

25、行步骤(2),如果没有,则结束。0027一种基于ANDROID的自动化软件黑盒测试方法,其特征在于实现步骤如下0028(1)通过APK文件中的ANDROIDMANIFESTXML文件获取应用程序的所有静态注册的INTENT事件及INTENT事件的属性信息;0029(2)人工编写训练脚本,以训练脚本的形式注入事件,训练脚本包括针对每一个窗口发送全部的INTENT事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;0030(3)定制测试工具执行训练脚本;0031(4)动态过滤系统事件,对于不能触发应用程序窗口转换的系统事件应该被过滤掉;0032(5)GUI信息自动化录制,针对已通过状。

26、态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系,并将其分别存储到数据库的控件属性表和窗口转换表中;0033(6)自动建立GUI状态转换图,设定参数来定义状态转换图的状态和基于事件的状态转换,然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;0034(7)测试生成,制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准;根据状态转换图搜索条件的和冗余测说明书CN103336742A4/6页8试用例标准,使用图遍历算法搜索状态转换图来自动的生成。

27、事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。0035本发明与现有技术相比的优点在于0036(1)由于该发明加入了对系统事件的考虑,采用动态执行、反馈过滤系统事件的技术,可以快速、有效的将系统事件加到GUI模型中,来保证测试的完整性。0037(2)由于该发明是黑盒测试,不需要应用程序代码,因此,可以完全脱离应用程序的保密性限制。0038(3)本发明还具备自动化程度相对较高、可重用性强、可扩展性优良等特点。附图说明0039图1为本发明的测试系统的组成结构框图;0040图2为本发明中事件注入模块实现过程图;0041图3为本发明中动态执行和过滤系统事件的流程示意图;0042图4为本发明中。

28、GUI状态转换图自动建立模块。具体实施方式0043下面将结合附图和实施例对本发明作进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够理解和实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。因此,以下详细说明不应该被理解为限制意义,本发明的范围仅仅由权利要求来限定。0044如图1所示,本发明基于ANDROID的自动化软件黑盒测试系统主要包括事件注入模块、事件的动态执行和过滤模块、GUI信息自动化录制模块、GUI状态转换图建立模块,测试生成构成。0045整个实现过程如下00461使用开源工具,获取APK文件中的ANDROIDMANIFE。

29、STXML文件,然后根据ANDROIDMANIFESTXML文件获取应用程序的所有静态注册INTENT事件及INTENT事件的属性信息;00472人工编写训练脚本,以训练脚本的形式注入事件。训练脚本主要包括针对每一个窗口发送全部的系统事件;发送可以触发窗口转换的UI事件;针对窗口是否变化的状态验证;00483定制测试工具执行训练脚本;00494动态过滤系统事件,对于不能触发应用程序窗口转换的事件应该被过滤掉;00505GUI信息自动化录制。针对已通过状态验证的事件,即触发了GUI窗口转换的事件,录制该事件所触发的应用程序GUI当前窗口的控件信息、下一个窗口的控件信息和基于该事件的窗口转换关系。。

30、并将其分别存储到数据库的控件属性表和窗口转换表中;00516自动建立GUI状态转换图。设定参数来定义状态转换图的状态和基于事件的状态转换。然后根据所设定的参数,读取数据库的相应表数据,建立状态转换图;00527测试生成。制定状态转换图的搜索条件,比如应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准。根据状态转换图搜索条件的和冗余测试说明书CN103336742A5/6页9用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。0053上述各模块的具体实现过程如下00541事件注入模块0055该模块的实现过程如下0056。

31、(1)使用开源工具,获取APK文件中的ANDROIDMANIFESTXML文件;0057(2)获取到ANDROIDMANIFESTXML文件中的INTENT事件全集;0058(3)根据BROADCASTINTENT方法、STARTACTIVITY方法和STARTSERVICE方法要求,人工构造系统事件。0059(4)根据ANDROIDSDK中自带工具,人工搜索获取ANDROID的关键UI事件。关键UI事件为可以触发GUI窗口转换的UI事件。0060(5)根据定制的测试工具的脚本命令形式,人工编写训练脚本。00612事件动态执行和过滤模块0062该模块的实现过程如图2所示0063(1)定制的测试。

32、工具执行训练脚本,来触发应用程序运行。0064(2)训练脚本执行过程中,使用某个关键UI事件启动一个ACTIVITY,即应用程序进入一个GUI窗口,向该GUI窗口发送INTENT事件全集。0065(3)发送一个INTENT事件后,进行GUI窗口变化验证。比如在事件发送1S后,验证当前窗口的窗口名是否和事件发生前的窗口名相同。如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化,比如TEXTVIEW控件的文本属性。0066(4)如果GUI窗口不变,过滤掉该INTENT事件。如果窗口变化,需要使用ANDROID应用程序GUI信息自动化录制模块来处理,处理完后,返回到上一个窗口。

33、,继续发生其他INTENT事件。0067(5)针对一个GUI窗口,发送完所有INTENT事件后,使用某UI事件促使应用程序进入一个新的GUI窗口,然后执行(3)。0068(6)检查窗口转换关系,是否有UI事件未触发的GUI窗口。如果有,重复执行(2),如果没有,结束。00693GUI信息自动化录制模块0070该模块实现过程如下0071(1)如果一个事件(UI事件或者INTENT事件)触发了GUI窗口转换,该发明会向ANDROID系统中的VIEWSERVER发送DUMPQ命令,来获取当前GUI窗口的所有控件的关键属性集,并存储到数据库中。0072(2)同时,GUI信息自动化录制模块会记录该事件触。

34、发前的GUI窗口名、触发事件名和该事件触发的新GUI窗口名,并存储到数据库的窗口转换关系表中。00734GUI状态转换图自动建立模块,如图4所示。0074该模块实现过程如下0075(1)通过设置参数来定义窗口转换图中的状态。参数STATE设置为ALL,表示将窗口中所有控件的属性集作为一个状态;参数STATE设置为LEAF,表示将窗口中所有叶子控件的属性集作为一个状态;参数STATE设置为FOCUSED,表示将窗口中所有可聚焦的控件的说明书CN103336742A6/6页10属性集作为一个状态。0076(2)根据设置的参数,从数据库中的控件信息全集中读取相应数据,并建立相对应的状态对象,将其作为。

35、状态转换图中的节点。0077(3)将上述信息从数据库读取出来之后,把该应用程序的所有窗口编号,创建一个一维数组,数组下标为该应用程序窗口对应编号。0078(4)针对某一个窗口,创建一个HASHMAP,HASHMAP中的KEY值为该窗口中的某个事件名,对应的VALUE值为该事件所触发的目标窗口序号。即将该窗口的所有状态转换关系,作为状态转换图中该节点到其他节点的有向边,存储到HASHMAP中。0079(5)最后分别将各HASHMAP存储到相对应的数组中。即一个数组元素存储的是该下标状态下所有可能的状态转换关系。0080(6)上述过程将状态转换图建立完成。0081总之,该发明加入了对系统事件的考虑。

36、,采用动态执行、反馈过滤系统事件的技术,可以快速、有效的将系统事件加到GUI模型中,从而来保证测试的完整性。另外,由于该发明是黑盒测试,不需要应用程序代码,因此,可以完全脱离应用程序的保密性限制。本发明还具备自动化程度相对较高、可重用性强、可扩展性优良等特点。0082本发明未详细阐述部分属于本领域公知技术。0083以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。说明书CN103336742A101/2页11图1图2说明书附图CN103336742A112/2页12图3图4说明书附图CN103336742A12。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1