CN107678940A - 基于安卓app的自动化探索测试方法及系统 - Google Patents
基于安卓app的自动化探索测试方法及系统 Download PDFInfo
- Publication number
- CN107678940A CN107678940A CN201710763979.1A CN201710763979A CN107678940A CN 107678940 A CN107678940 A CN 107678940A CN 201710763979 A CN201710763979 A CN 201710763979A CN 107678940 A CN107678940 A CN 107678940A
- Authority
- CN
- China
- Prior art keywords
- app
- test
- exploratory testing
- measured
- automation
- 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.)
- Pending
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/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Abstract
本发明公开了一种基于安卓APP的自动化探索测试方法及系统,包括:分析待测APP,获取待测APP的属性信息并存储;根据所述属性信息制定相应的探索测试规则;根据所述属性信息定义异常以及制定异常发生后的恢复机制;执行无人值守的探索性测试;递归处理生成操作指令;如果触发限制条件则停止向下进行测试,跳转同级测试或回退至上一步;如果触发APP异常则执行恢复机制,记录异常并继续执行探索性测试;执行探索性测试的过程中以文件或图像的形式对测试过程及结果进行记录;本发明有效的提高了APP测试的效率,避免了测试中不必要发生的操作。
Description
技术领域
本发明涉及安卓APP测试领域,具体涉及一种基于安卓APP的自动化探索测试方法及系统。
背景技术
当前针对安卓APP的主流的探索性测试,主要通过Monkey测试来完成。该工具的随机指令在较长时间的测试过程中,会存在如下问题:
1.无法有效的规避部分不该触发的事件,比如当测试的APP当前界面存在拨打电话、发送邮件或点评的功能按钮时,Monkey测试会触发这些功能,造成不必要的麻烦,
2.APP崩溃时,无法继续执行探索性测试;
3.APP退出时,无法继续执行探索性测试,当Monkey测试多次触发APP的返回键时,会回退至手机桌面,接下来的一系列测试动作做的都是没有意义的工作;
4.触发弹出第三方APP时,无法有效的回退,比如当触发到分享、支付等功能时就会执行该功能,这些功能不属于测试APP的功能,所以这些操作也是没有意义的操作。
综上所述,目前的安卓APP测试工具还存在着功能不完善和效率低的问题。
发明内容
为解决上述技术问题,本发明提出了一种基于安卓APP的自动化探索测试方法及系统,以达到对安卓APP执行自动化探索测试过程中异常的规避与恢复,高效测试的目的。
为达到上述目的,本发明的技术方案如下:
一种基于安卓APP的自动化探索测试方法,包括:分析待测APP,获取待测APP的属性信息并存储;根据所述属性信息制定相应的探索测试规则;根据所述属性信息定义异常以及制定异常发生后的恢复机制;执行无人值守的探索性测试;递归处理生成操作指令;如果触发限制条件则停止向下进行测试,跳转同级测试或回退至上一步;如果触发APP异常则执行恢复机制,记录异常并继续执行探索性测试;执行探索性测试的过程中以文件或图像的形式对测试过程及结果进行记录。
作为优选的,所述分析待测APP是对待测APP的当前页面元素进行分析,并通过递归对整个待测APP的元素进行分析。
作为优选的,所述APP的属性信息包括:PackageName、APPID、限制访问的元素、访问目录层数和是否存在跨APP操作。
作为优选的,所述探索测试规则为深度探索及广度探索。
作为优选的,所述定义的异常包括:重复操作同一元素、触发非测试APP的功能元素、测试操作不在待测APP内,解决上述异常的方法是进行有效的规避和触发后执行恢复机制。
作为优选的,所述重复操作统一元素的解决方法是通过元素的ResourceID、ClassID、文本、index生成唯一的key值进行有效规避。
作为优选的,所述触发非测试APP的功能元素,包括:触发系统功能元素和触发第三方APP功能元素,所述触发系统功能元素的解决方法是判断当前页面是否存在系统功能元素,如果存在则提前规避,如果已经触发则跳转同级操作或执行回退操作,所述触发第三方APP的解决方法是跳转同级操作或执行回退操作。
作为优选的,所述测试操作不在待测APP内,包括:APP崩溃导致测试退出、多次执行返回操作导致测试退出至系统桌面和进入其他非待测APP,所述APP崩溃导致测试退出的解决方法是重新进入待测APP并对崩溃原因进行记录,测试过程中配合BugTags,触发各种可能出现的APP崩溃情况,所述多次执行返回操作导致测试退出至系统桌面的解决方法是触发重新进入待测APP,所述进入其他非待测APP的解决方法是回退至桌面,触发重新进入待测APP。
作为优选的,所述探索性测试是通过Scoket通讯方式模拟用户按键、触屏、手势、输入的操作(测试功能和按键)。
一种基于安卓APP的自动化探索测试系统,其特征在于,包含有:APP信息分析存储模块、探索测试规则制定模块、特殊配置模块、测试模块、异常处理控制模块和日志及图像记录模块,所述APP信息分析存储模块,用于分析待测APP的属性信息并对分析后的APP属性信息进行存储,所述探索测试规则制定模块,用于根据APP的属性信息制定探索测试规则,所述特殊配置模块,用于根据APP的属性信息定义测试中出现异常,所述测试模块,用于对待测APP进行递归测试,所属异常处理控制模块,用于对测试过程中遇到的异常进行处理并记录,所述日志及图像记录模块,用于记录测试日志以及测试图像。
本发明具有如下优点:
(1).本发明对待测APP的属性信息进行分析,获取非待测APP的功能元素进行有效的规避,提高测试效率,降低故障率。
(2).本发明配合BugTags,触发各种可能出现的app崩溃情况,全面的对待测APP进行测试。
(3).本发明制定异常发生后恢复机制,确保测试能在待测APP内部保持测试状态,并对产生的异常进行记录,便于工作人员对待测APP进行改进。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例公开的基于安卓APP的自动化探索测试系统流程意图;
图2为本发明实施例公开的基于安卓APP的自动化探索测试系统功能模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了基于安卓APP的自动化探索测试方法及系统,其工作原理是通过对待测APP的功能元素进行分析,对探索测试的规则进行制定,对测试中出现的异常进行恢复和记录,达到对安卓APP执行自动化探索测试过程中异常的规避与恢复,高效测试的目的。
下面结合实施例和具体实施方式对本发明作进一步详细的说明。
如图1所示,一种基于安卓APP的自动化探索测试方法,包括:分析待测APP,获取待测APP的属性信息并存储;根据所述属性信息制定相应的探索测试规则;根据所述属性信息定义异常以及制定异常发生后的恢复机制;执行无人值守的探索性测试;递归处理生成操作指令;如果触发限制条件则停止向下进行测试,跳转同级测试或回退至上一步;如果触发APP异常则执行恢复机制,记录异常并继续执行探索性测试;执行探索性测试的过程中以文件或图像的形式对测试过程及结果进行记录。
其中,所述分析待测APP是对待测APP的当前页面元素进行分析,判断当前页面是否存在系统功能元素或第三方APP功能元素,并通过递归对整个待测APP的元素进行分析。
其中,所述APP的属性信息包括:PackageName、APPID、限制访问的元素、访问目录层数和是否存在跨APP操作。
其中,所述探索测试规则为深度探索及广度探索。
其中,所述定义的异常包括:重复操作同一元素、触发非测试APP的功能元素、测试操作不在待测APP内,解决上述异常的方法是进行有效的规避和触发后执行恢复机制。
其中,所述重复操作统一元素的解决方法是通过元素的ResourceID、ClassID、文本、index生成唯一的key值进行有效规避。
其中,所述触发非测试APP的功能元素,包括:触发系统功能元素和触发第三方APP功能元素,所述触发系统功能元素的解决方法是判断当前页面是否存在系统功能元素,如果存在则提前规避,如果已经触发则跳转同级操作或执行回退操作,例如当验证码验证登录无法跳转时,测试可以切换至密码登录也可以切换成短信验证,所述短信验证是通过测试端口监听系统短信的新短信,提取数据进行验证,所述触发第三方APP的解决方法是跳转同级操作或执行回退操作,所述回退操作是执行系统的back()方法。
其中,所述测试操作不在待测APP内,包括:APP崩溃导致测试退出、多次执行返回操作导致测试退出至系统桌面和进入其他非待测APP,所述APP崩溃导致测试退出的解决方法是重新进入待测APP并对崩溃原因进行记录,测试过程中配合BugTags,触发各种可能出现的APP崩溃情况,所述多次执行返回操作导致测试退出至系统桌面的解决方法是触发重新进入待测APP,所述进入其他非待测APP的解决方法是回退至桌面,触发重新进入待测APP。
其中,所述探索性测试是通过Scoket通讯方式模拟用户按键、触屏、手势、输入的操作(测试功能和按键)。
如图2所示,一种基于安卓APP的自动化探索测试系统,其特征在于,包含有:APP信息分析存储模块101、探索测试规则制定模块102、特殊配置模块103、测试模块104、异常处理控制模块105和日志及图像记录模块106,所述APP信息分析存储模块101,用于分析待测APP的属性信息并对分析后的APP属性信息进行存储,所述探索测试规则制定模块102,用于根据APP的属性信息制定探索测试规则,所述特殊配置模块103,用于根据APP的属性信息定义测试中出现异常,所述测试模块104,用于对待测APP进行递归测试,所属异常处理控制模块105,用于对测试过程中遇到的异常进行处理并记录,所述日志及图像记录模块106,用于记录测试日志以及测试图像。。
以上所述的仅是本发明所公开的一种基于安卓APP的自动化探索测试方法及系统的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种基于安卓APP的自动化探索测试方法,其特征在于,包括:分析待测APP,获取待测APP的属性信息并存储;根据所述属性信息制定相应的探索测试规则;根据所述属性信息定义异常以及制定异常发生后的恢复机制;执行无人值守的探索性测试;递归处理生成操作指令;如果触发限制条件则停止向下进行测试,跳转同级测试或回退至上一步;如果触发APP异常则执行恢复机制,记录异常并继续执行探索性测试;执行探索性测试的过程中以文件或图像的形式对测试过程及结果进行记录。
2.根据权利要求1所述的基于安卓APP的自动化探索测试方法,其特征在于,所述分析待测APP是对待测APP的当前页面元素进行分析,并通过递归对整个待测APP的元素进行分析。
3.根据权利要求1所述的基于安卓APP的自动化探索测试方法,其特征在于,所述APP的属性信息包括:PackageName、APPID、限制访问的元素、访问目录层数和是否存在跨APP操作。
4.根据权利要求1所述的基于安卓APP的自动化探索测试方法,其特征在于,所述探索测试规则为深度探索及广度探索。
5.根据权利要求1所述的基于安卓APP的自动化探索测试方法,其特征在于,所述定义的异常包括:重复操作同一元素、触发非测试APP的功能元素、测试操作不在待测APP内,解决上述异常的方法是进行有效的规避和触发后执行恢复机制。
6.根据权利要求5所述的基于安卓APP的自动化探索测试方法,其特征在于,所述重复操作统一元素的解决方法是通过元素的ResourceID、ClassID、文本、index生成唯一的key值进行有效规避。
7.根据权利要求5所述的基于安卓APP的自动化探索测试方法,其特征在于,所述触发非测试APP的功能元素,包括:触发系统功能元素和触发第三方APP功能元素,所述触发系统功能元素的解决方法是判断当前页面是否存在系统功能元素,如果存在则提前规避,如果已经触发则跳转同级操作或执行回退操作,所述触发第三方APP的解决方法是跳转同级操作或执行回退操作。
8.根据权利要求5所述的基于安卓APP的自动化探索测试方法,其特征在于,所述测试操作不在待测APP内,包括:APP崩溃导致测试退出、多次执行返回操作导致测试退出至系统桌面和进入其他非待测APP,所述APP崩溃导致测试退出的解决方法是重新进入待测APP并对崩溃原因进行记录,测试过程中配合BugTags,触发各种可能出现的APP崩溃情况,所述多次执行返回操作导致测试退出至系统桌面的解决方法是触发重新进入待测APP,所述进入其他非待测APP的解决方法是回退至桌面,触发重新进入待测APP。
9.根据权利要求1所述的基于安卓APP的自动化探索测试方法,其特征在于,所述探索性测试是通过Scoket通讯方式模拟用户按键、触屏、手势、输入的操作(测试功能和按键)。
10.一种基于安卓APP的自动化探索测试系统,其特征在于,包含有:APP信息分析存储模块、探索测试规则制定模块、特殊配置模块、测试模块、异常处理控制模块和日志及图像记录模块,所述APP信息分析存储模块,用于分析待测APP的属性信息并对分析后的APP属性信息进行存储,所述探索测试规则制定模块,用于根据APP的属性信息制定探索测试规则,所述特殊配置模块,用于根据APP的属性信息定义测试中出现异常,所述测试模块,用于对待测APP进行递归测试,所属异常处理控制模块,用于对测试过程中遇到的异常进行处理并记录,所述日志及图像记录模块,用于记录测试日志以及测试图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710763979.1A CN107678940A (zh) | 2017-08-30 | 2017-08-30 | 基于安卓app的自动化探索测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710763979.1A CN107678940A (zh) | 2017-08-30 | 2017-08-30 | 基于安卓app的自动化探索测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107678940A true CN107678940A (zh) | 2018-02-09 |
Family
ID=61136314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710763979.1A Pending CN107678940A (zh) | 2017-08-30 | 2017-08-30 | 基于安卓app的自动化探索测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678940A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563575A (zh) * | 2018-04-16 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 应用程序测试方法、装置、终端及计算机可读存储介质 |
CN109783384A (zh) * | 2019-01-10 | 2019-05-21 | 未来电视有限公司 | 日志用例测试方法、日志用例测试装置和电子设备 |
CN110096323A (zh) * | 2019-03-29 | 2019-08-06 | 南京大学 | 一种并行化安卓应用ui自动探索方法 |
CN110442515A (zh) * | 2019-07-12 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN110688293A (zh) * | 2018-07-05 | 2020-01-14 | 飞狐信息技术(天津)有限公司 | 一种软件测试方法及系统 |
CN110704299A (zh) * | 2019-08-27 | 2020-01-17 | 紫光云(南京)数字技术有限公司 | 一种安卓平台app异常测试方法及装置 |
CN111159014A (zh) * | 2019-12-13 | 2020-05-15 | 平安医疗健康管理股份有限公司 | 探索性测试的响应方法及装置、计算机设备、存储介质 |
CN112783764A (zh) * | 2021-01-08 | 2021-05-11 | 展讯通信(上海)有限公司 | 应用程序的自动化测试方法及装置、存储介质、终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN104331373A (zh) * | 2014-11-28 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种Monkey测试系统及方法 |
CN104484273A (zh) * | 2014-12-19 | 2015-04-01 | 广州博冠信息科技有限公司 | 应用程序的测试方法、设备及系统 |
CN105094783A (zh) * | 2014-05-19 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 安卓应用稳定性测试的方法及装置 |
CN105868105A (zh) * | 2016-03-24 | 2016-08-17 | 厦门美图移动科技有限公司 | 一种应用遍历测试方法、设备及移动终端 |
-
2017
- 2017-08-30 CN CN201710763979.1A patent/CN107678940A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN105094783A (zh) * | 2014-05-19 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 安卓应用稳定性测试的方法及装置 |
CN104331373A (zh) * | 2014-11-28 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种Monkey测试系统及方法 |
CN104484273A (zh) * | 2014-12-19 | 2015-04-01 | 广州博冠信息科技有限公司 | 应用程序的测试方法、设备及系统 |
CN105868105A (zh) * | 2016-03-24 | 2016-08-17 | 厦门美图移动科技有限公司 | 一种应用遍历测试方法、设备及移动终端 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563575A (zh) * | 2018-04-16 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 应用程序测试方法、装置、终端及计算机可读存储介质 |
CN108563575B (zh) * | 2018-04-16 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 应用程序测试方法、装置、终端及计算机可读存储介质 |
CN110688293A (zh) * | 2018-07-05 | 2020-01-14 | 飞狐信息技术(天津)有限公司 | 一种软件测试方法及系统 |
CN110688293B (zh) * | 2018-07-05 | 2023-05-16 | 飞狐信息技术(天津)有限公司 | 一种软件测试方法及系统 |
CN109783384A (zh) * | 2019-01-10 | 2019-05-21 | 未来电视有限公司 | 日志用例测试方法、日志用例测试装置和电子设备 |
CN110096323B (zh) * | 2019-03-29 | 2022-03-18 | 南京大学 | 一种并行化安卓应用ui自动探索方法 |
CN110096323A (zh) * | 2019-03-29 | 2019-08-06 | 南京大学 | 一种并行化安卓应用ui自动探索方法 |
CN110442515A (zh) * | 2019-07-12 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN110442515B (zh) * | 2019-07-12 | 2023-07-25 | 创新先进技术有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN110704299A (zh) * | 2019-08-27 | 2020-01-17 | 紫光云(南京)数字技术有限公司 | 一种安卓平台app异常测试方法及装置 |
CN111159014A (zh) * | 2019-12-13 | 2020-05-15 | 平安医疗健康管理股份有限公司 | 探索性测试的响应方法及装置、计算机设备、存储介质 |
CN111159014B (zh) * | 2019-12-13 | 2022-05-06 | 平安医疗健康管理股份有限公司 | 探索性测试的响应方法及装置、计算机设备、存储介质 |
CN112783764A (zh) * | 2021-01-08 | 2021-05-11 | 展讯通信(上海)有限公司 | 应用程序的自动化测试方法及装置、存储介质、终端 |
CN112783764B (zh) * | 2021-01-08 | 2022-07-19 | 展讯通信(上海)有限公司 | 应用程序的自动化测试方法及装置、存储介质、终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107678940A (zh) | 基于安卓app的自动化探索测试方法及系统 | |
CN110245078B (zh) | 一种软件的压力测试方法、装置、存储介质和服务器 | |
US7975262B2 (en) | Error tracing with context history | |
CN105512045B (zh) | 一种应用程序的测试方法、装置及测试设备 | |
CN103019923B (zh) | 模拟点击测试的方法及系统 | |
CN103699477B (zh) | 压力测试方法及终端 | |
CN110674048B (zh) | 一种埋点测试特征获取方法及相关装置 | |
CN106681923B (zh) | 一种软件测评方法及装置 | |
CN111641601A (zh) | 防火墙管理方法、装置、设备及存储介质 | |
CN105844125A (zh) | 一种终端解锁的方法和装置 | |
CN107426231A (zh) | 一种识别用户行为的方法及装置 | |
CN113688288A (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN105528558B (zh) | 一种隐蔽信道通信的检测方法及装置 | |
CN109558328A (zh) | 一种代码覆盖率的测试方法、系统、装置及可读存储介质 | |
CN101145984B (zh) | 基于参数自适应的自动化测试方法 | |
CN106546278A (zh) | 验证核安全级仪控平台安全失效率的统计测试装置及方法 | |
CN105653455B (zh) | 一种程序漏洞的检测方法及检测系统 | |
CN107122658A (zh) | 具有自动学习功能的数据库防御系统及方法 | |
CN106528364B (zh) | 基于存储器访问驱动的自动化协同验证平台的搭建方法 | |
CN116136950B (zh) | 芯片验证方法、装置、系统、电子设备及存储介质 | |
CN111176980A (zh) | 调试环境和运行环境分离的数据分析方法、装置及系统 | |
CN110427287A (zh) | 主板功能测试通用系统及其方法 | |
CN115659346A (zh) | 一种多方安全计算平台的功能测试方法及装置 | |
CN105608006B (zh) | 一种基于概率模型的程序错误检测方法及系统 | |
CN109710476B (zh) | 一种系统接口健壮性测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |
|
RJ01 | Rejection of invention patent application after publication |