CN103336742B - 一种基于Android的自动化软件黑盒测试系统及方法 - Google Patents

一种基于Android的自动化软件黑盒测试系统及方法 Download PDF

Info

Publication number
CN103336742B
CN103336742B CN201310305497.3A CN201310305497A CN103336742B CN 103336742 B CN103336742 B CN 103336742B CN 201310305497 A CN201310305497 A CN 201310305497A CN 103336742 B CN103336742 B CN 103336742B
Authority
CN
China
Prior art keywords
event
window
gui
android
application program
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
Application number
CN201310305497.3A
Other languages
English (en)
Other versions
CN103336742A (zh
Inventor
姜博
王珂
高小鹏
沈彦鸣
陈鹏
万寒
龙翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201310305497.3A priority Critical patent/CN103336742B/zh
Publication of CN103336742A publication Critical patent/CN103336742A/zh
Application granted granted Critical
Publication of CN103336742B publication Critical patent/CN103336742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种基于Android的自动化软件黑盒测试系统及方法
技术领域
本发明属于软件测试技术领域,涉及一种基于模型的Android自动化软件黑盒测试系统及方法,用于解决Android系统的软件自动化测试问题。
背景技术
随着Android应用的快速发展,Android测试的研究却相对滞后,对整个软件开发和测试过程都有着不可估量的影响。Android自动化测试应运而生,其中自动化测试用例生成问题是软件测试的核心所在,所以针对Android而特有的自动化测试用例生成技术的研究具有极其重要的意义。
目前,基于Android系统的自动化测试生成技术主要包括:
基于Monkey工具的自动化测试生成技术。Monkey是Android系统中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种自动化的黑盒测试,可以快速生成大量的简单随机的测试输入。但是,Monkey不能生成智能的测试用例,比如不能输入正确的用户名密码。而且不能避免生成冗余测试用例。另外,Monkey只能生成AndroidGUI事件,不能生成系统事件。
另外一种比较流行的自动化测试生成的技术是基于模型的测试生成技术。基于模型的测试生成技术很好的抽象了一个GUI程序的输入空间,可以提高测试生成效率、减少冗余。主要的模型类型有状态机模型及状态机变种模型、GUI树模型等。基于模型的自动化测试生成技术主要侧重于测试基于GUI的应用程序。现有的基于模型的测试生成技术主要针对AndroidGUI事件,而没有考虑系统事件。最为重要的是,基于模型的自动生成技术的前提是需要一个适用性较高的模型,而现有的技术中建模的过程都是手动的,这样需要的人力成本过高。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于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系统的ViewServer发送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)根据AndroidSDK中自带工具,人工搜索获取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)根据AndroidSDK中自带工具,人工搜索获取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系统中的ViewServer发送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模型中,从而来保证测试的完整性。另外,由于该发明是黑盒测试,不需要应用程序代码,因此,可以完全脱离应用程序的保密性限制。本发明还具备自动化程度相对较高、可重用性强、可扩展性优良等特点。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (4)

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的控件集属性或具有代表性控件的关键属性来验证该GUI窗口是否有变化;状态验证过程中,可以通过设定相应参数来选择是比对GUI控件集属性还是比对具有代表性控件的关键属性;在比对GUI控件集属性或者具有代表性控件关键属性时,采用DUMPQ命令来获取当前窗口所有的控件信息或者采用DUMPQ的改进命令DUMPW命令获取指定控件的控件信息;
GUI信息自动化录制模块:针对事件动态执行和过滤模块中未被过滤的系统intent事件和人工构造的关键UI事件,自动录制其所触发的新GUI控件信息和基于该事件的GUI转换关系,并存储到数据库中,来为GUI状态转换图自动建立模块提供建立转换图所需数据,其中GUI控件信息包括Android应用程序某窗口中GUI的控件集和对应的控件属性,窗口转换关系记录应用程序的当前窗口名、窗口转换事件和下一个窗口名;当训练脚本执行过程中一个事件触发了GUI转换,一方面自动向Android系统的ViewServer发送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)根据AndroidSDK中自带工具,人工搜索获取Android的关键UI事件;关键UI事件为可以触发GUI窗口转换的UI事件;
(5)根据定制测试工具的脚本命令形式,人工编写训练脚本;
(6)最终以训练脚本为形式注入到定制测试工具。
3.根据权利要求1所述的一种基于Android自动化软件黑盒测试系统,其特征在于所述事件动态执行和过滤模块具体实现如下:
(1)定制测试工具执行训练脚本,来触发应用程序运行;
(2)训练脚本执行过程中,使用某个关键UI事件启动一个Activity,即应用程序进入一个GUI窗口,向该GUI窗口发送intent事件全集;
(3)发送一个intent事件后,进行GUI窗口变化验证,在事件发送一段时间后,验证当前窗口的窗口名是否和事件发生前的窗口名相同,如果窗口名相同,使用DUMPW命令,验证该窗口下关键控件的关键属性是否变化;
(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)测试生成,制定状态转换图的搜索条件,包括应用程序的初始状态、状态转换图的搜索停止条件,然后制定冗余测试用例的标准;根据状态转换图搜索条件的和冗余测试用例标准,使用图遍历算法搜索状态转换图来自动的生成事件序列,即为测试用例,然后根据事件序列自动生成测试脚本。
CN201310305497.3A 2013-07-18 2013-07-18 一种基于Android的自动化软件黑盒测试系统及方法 Active CN103336742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310305497.3A CN103336742B (zh) 2013-07-18 2013-07-18 一种基于Android的自动化软件黑盒测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310305497.3A CN103336742B (zh) 2013-07-18 2013-07-18 一种基于Android的自动化软件黑盒测试系统及方法

Publications (2)

Publication Number Publication Date
CN103336742A CN103336742A (zh) 2013-10-02
CN103336742B true CN103336742B (zh) 2015-11-11

Family

ID=49244912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310305497.3A Active CN103336742B (zh) 2013-07-18 2013-07-18 一种基于Android的自动化软件黑盒测试系统及方法

Country Status (1)

Country Link
CN (1) CN103336742B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975274B (zh) * 2013-10-31 2020-02-18 青岛海信移动通信技术股份有限公司 一种应用于Android平台的显示窗口的方法和装置
CN103744784B (zh) * 2014-01-06 2016-08-17 中国移动(深圳)有限公司 手机应用自动化测试方法及系统
CN103744787A (zh) * 2014-01-21 2014-04-23 上海斐讯数据通信技术有限公司 一种手机自动化测试方法
CN104090836B (zh) * 2014-02-17 2016-04-13 腾讯科技(深圳)有限公司 应用程序对系统广播的响应测试方法及装置
CN104978227B (zh) * 2014-04-08 2019-04-26 腾讯科技(深圳)有限公司 一种进程控制方法、装置,及系统
CN105095062B (zh) * 2014-05-09 2019-05-17 腾讯科技(深圳)有限公司 应用程序测试方法及系统
CN104375934B (zh) * 2014-10-22 2017-05-03 江苏科技大学 一种Android手机软件可靠性测试方法
CN105630665B (zh) * 2014-11-07 2019-01-01 卓望数码技术(深圳)有限公司 一种基于安卓系统的应用程序调试方法及终端设备
CN104461898B (zh) * 2014-12-19 2019-02-15 北京奇虎科技有限公司 应用测试的方法、中控服务器、测试终端及系统
CN104536889A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 用户界面测试的方法、用例管理平台、操作终端及系统
CN104536750B (zh) * 2014-12-26 2018-10-30 北京奇虎科技有限公司 遍历窗口对象的方法及装置
CN104462979B (zh) * 2014-12-26 2017-11-07 深圳数字电视国家工程实验室股份有限公司 一种应用程序的自动化动态检测方法及装置
CN104765688B (zh) * 2015-04-17 2017-12-15 上海交通大学 一种可动态部署规则的Java程序运行时验证系统
CN104899136A (zh) * 2015-05-15 2015-09-09 百度在线网络技术(北京)有限公司 一种用于生成测试用例的方法和装置
CN105718353B (zh) * 2016-01-18 2019-01-29 深圳市紫光同创电子有限公司 一种用于图形界面应用的测试方法、装置及系统
CN105740144B (zh) * 2016-01-27 2018-11-23 浪潮(北京)电子信息产业有限公司 一种Android移动终端的自动化测试方法及系统
CN106126424B (zh) * 2016-06-29 2018-09-14 厦门美图移动科技有限公司 一种脚本可视化的自动化测试方法、装置和移动终端
CN106649103B (zh) * 2016-11-25 2019-04-16 深圳大学 一种安卓应用程序自动化黑盒测试的方法及系统
CN106844202B (zh) * 2016-12-30 2020-04-21 和创(北京)科技股份有限公司 生成测试用例的方法和终端设备
CN108733551A (zh) * 2017-04-13 2018-11-02 中兴通讯股份有限公司 控件遍历方法及装置、分析系统
CN108280026B (zh) * 2018-01-23 2019-03-22 网易(杭州)网络有限公司 游戏自动化测试方法及装置、存储介质、电子设备
CN108681508B (zh) * 2018-05-15 2022-04-01 福建天泉教育科技有限公司 一种基于视觉识别的测试方法及终端
CN109656827B (zh) * 2018-12-17 2021-10-19 北京云测信息技术有限公司 一种控件树生成方法和终端设备
CN110688321B (zh) * 2019-09-29 2022-07-08 南京大学 一种结合群体智能与机器智能增强移动应用测试的方法
CN111143205B (zh) * 2019-12-19 2023-04-21 华东师范大学 一种面向安卓平台的测试用例自动化生成方法及生成系统
CN112651084B (zh) * 2021-01-04 2023-01-13 中车青岛四方车辆研究所有限公司 半实物仿真实现方法、列车牵引制动手柄的仿真实现方法
CN112765028B (zh) * 2021-01-22 2023-08-04 济南大学 基于群控机制的Android应用程序测试方法及系统
CN113238952B (zh) * 2021-05-25 2022-07-12 中国科学院软件研究所 基于应用程序状态转换图的智能辅助引导测试方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541740A (zh) * 2012-01-04 2012-07-04 广东欧珀移动通信有限公司 一种基于Android的手机便签自动化测试方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201312340A (zh) * 2011-09-09 2013-03-16 Askey Technology Jiangsu Ltd 手持式電子裝置的測試系統及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541740A (zh) * 2012-01-04 2012-07-04 广东欧珀移动通信有限公司 一种基于Android的手机便签自动化测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"面向嵌入式软件的自动化黑盒测试的研究";徐臻;《中国优秀硕士论文全文数据库•信息科技辑》;20070915;全文 *
SELIN BENLI ET AL."A COMPARATIVE EVALUATION OF UNIT TESTING TECHNIQUES ON A MOBILE PLATFORM".《INFORMATION TECHNOLOGY:NEW GENERATION(ITNG)》.2012, *

Also Published As

Publication number Publication date
CN103336742A (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
CN103336742B (zh) 一种基于Android的自动化软件黑盒测试系统及方法
CN102331970B (zh) 面向安全苛刻系统的自动化测试资源管理方法及其平台
Oster et al. Automated incremental pairwise testing of software product lines
CN105912473B (zh) 基于bdd的移动app自动测试平台和测试方法
US9594543B2 (en) Activity diagram model-based system behavior simulation method
Windmüller et al. Active continuous quality control
CN105608258A (zh) 一种基于模型的系统设计及信息流可视化仿真系统及方法
CN102567201A (zh) 跨模型的图形用户界面测试脚本自动修复方法
US20140214396A1 (en) Specification properties creation for a visual model of a system
Fadhlillah et al. Towards multidisciplinary delta-oriented variability management in cyber-physical production systems
Martino et al. Temporal outlier analysis of online civil trial cases based on graph and process mining techniques
CN112631704A (zh) 一种界面元素识别方法、装置、存储介质及电子设备
US20200074040A1 (en) Hierarchical expression coverage clustering for design verification
CN104965781A (zh) 一种生成测试用例的方法及装置
Hayes et al. Towards traceable test-driven development
Zhong et al. Iterative android automated testing
Ubayashi et al. Context-dependent product line practice for constructing reliable embedded systems
CN109840098A (zh) 一种嵌入式软件的追溯方法和系统
CN105446752B (zh) 应用程序中控件的触发方法、装置及移动终端
Azzouzi et al. A survey on systems engineering methodologies for large multi-energy cyber-physical systems
KR100922526B1 (ko) 비즈니스 프로세스 수행시 메타데이터 규정을 통한 데이터품질관리 방법 및 시스템
CN104077225A (zh) 基于JavaScript的脚本调试方法和脚本调试装置
Bowen et al. UI-design driven model-based testing
CN116090380A (zh) 数字集成电路验证的自动化方法及装置、存储介质和终端
CN105446883B (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
C14 Grant of patent or utility model
GR01 Patent grant