一种基于人机协同的移动应用测试方法技术

技术编号:32551865 阅读:21 留言:0更新日期:2022-03-05 11:51
本发明专利技术涉及一种基于人机协同的移动应用测试方法,针对安卓应用严重的碎片化问题,首先,使用静态分析技术,遍历安卓应用源代码,获取应用控制流程图,然后,使用动态分析工具,模拟运行待测应用,获取所有页面截屏,接下来根据静态分析结果,自动生成测试用例,为测试人员推荐测试用例列表,根据测试路径都概率,引导测试人员协作完成测试任务,减少测试时间成本和重复报告,提升待测应用覆盖率和总体测试效率。效率。效率。

【技术实现步骤摘要】
一种基于人机协同的移动应用测试方法


[0001]本专利技术属于软件测试与程序分析领域,尤其适用于移动测试中的测试程序的协同测试领域,其目的在于为移动应用测试人员自动生成测试用例和全过程指导,是一种帮助移动测试人员在有限时间内高效完成测试任务的方法。

技术介绍

[0002]随着移动互联网产业的飞速发展,移动设备的数量日益增加,随之产生的移动应用数量也急剧增加。据工业和信息化部统计,我国移动应用总数量已达367万,下载量已超过1000亿次。其中,谷歌开发的Android操作系统在移动操作系统市场占据主导地位,市场份额超过80%,远远超过包括苹果iOS等其他系统。随着移动互联网逐渐渗透到社会服务的各个方面,基于Android系统的移动应用正逐步改变人们的生活方式。同时,也对移动应用软件的质量和用户体验提出了更高的要求。相较于传统的Web应用,Android应用程序结构更为复杂且具有更新迭代块、碎片化问题严重等特点,传统的手工测试难以满足移动应用的测试需求。在移动应用更新迭代和质量保证的双重压力下,Android应用自动化测试技术已经受到广泛关注。常见的自动化测试流程为测试人员首先根据Android移动应用的图形界面设计相应的用户交互事件。然后,在自动化测试框架的帮助下,编写测试脚本在实际设备上执行测试用例,并在过程中记录设备的运行状况和控制台堆栈信息。最后,通过对测试数据的分析,提取出移动应用的运行缺陷。然而,自动化测试只能执行测试人员预先编写的测试脚本,并且有一定的局限性。自动化测试不能覆盖应用程序中的所有窗口、控件和对象状态,无法进行部分操作,也不能检测界面缺陷、性能错误、功能缺失等故障。因此,与真实用户相比,自动化测试仍然不能满足移动应用测试需求。
[0003]众包测试的提出,使得移动应用能够快速获得大量真实用户的测试反馈,提供更丰富的测试环境和设备,以较低的成本高效完成测试任务,并解决安卓碎片化问题。众包测试将过去只能由一个人完成的工作发布到公开的互联网平台,测试人员通过测试平台自愿选择和完成测试任务。然而,参与众包测试的测试人员往往是没有测试技能的普通用户,对自动化测试结果缺乏分析能力,难以独立选择并高效完成测试任务,因此快速聚集大量众包工人并获得测试反馈的目标变得极为困难。自动化测试和众包测试可以在一定程度上替代部分传统的手工测试,降低Android应用的测试成本。结合自动测试和人工测试的优势,协同完成测试任务,能够在很大程度上提升测试效率。
[0004]对此,本专利技术提出一种基于人机协同的移动应用测试方法。使用自动化分析工具,遍历应用程序源码,构建待测应用的控制流程图,引导测试人员协作执行测试任务,并根据测试人员反馈的测试结果,实时更新测试用例生成列表,实现人机协同的测试方法,提升测试覆盖并降低测试重复率。
[0005]通过该方法,可以帮助移动测试人员在短时间快速实现测试路径覆盖并完成测试任务,减少测试人员之间的重复冗余工作,进而降低测试报告的重复率,节约测试报告审核人员的时间成本,从而有效提高移动测试、软件研发效率。

技术实现思路

[0006]本专利技术提供一种基于人机协同的移动应用测试方法,针对安卓应用严重的碎片化问题,使用人机协同测试方法,优化移动应用测试流程。自动化工具能够对移动应用程序进行分析,构建应用流程框架,手动测试能够提供真实的测试环境,很大程度上解决安卓应用随便花问题,提升测试效率。
[0007]未达成上述目标,本专利技术提出一种基于人机协同的移动应用测试方法,首先,使用静态分析技术,遍历安卓应用源代码,获取应用控制流程图,然后,使用动态分析工具,模拟运行待测应用,获取所有页面截屏,接下来根据静态分析结果,自动生成测试用例,为测试人员推荐测试用例列表,根据测试路径都概率,引导测试人员协作完成测试任务,提升待测应用覆盖率,减少测试时间成本和重复报告;该方法包括下列步骤:1)静态分析:使用安卓静态分析工具对安卓应用源码进行分析,获取安卓应用控制流图;控制流图由若干<页面,事件,页面>的操作组成,由于静态工具是对应用源代码进行遍历,存在部分冗余代码,因此对控制流图进行清洗和筛选;由于安卓应用只有一个统一入口,作为应用主界面,因此将无法从主界面跳转到达的操作进行清理,清理过后,一个待测应用的控制流图可以用一个有向有环图表征;2)动态分析:根据静态分析工具遍历得到的页面名称,使用动态分析工具模拟运行待测应用,截取页面截图;3)测试用例生成:使用深度优先的遍历算法,遍历静态分析输出的控制流程图,并于动态分析工具获取的屏幕截图相结合,可视化展示测试任务;4)基于反馈的测试过程引导:引导过程分为两个阶段,一是冷启动阶段,随机为测试人员分配尽可能长的测试路径,引导测试人员进行测试;二是基于反馈的测试阶段,该技术根据测试路径的覆盖率,为测试人员推荐覆盖率低的测试任务,引导测试人员执行不同的测试任务,协作完成待测应用测试工作。
[0008]具体步骤如下:步骤1)

1:静态分析工具分析待测应用,输入apk,输出分析日志;步骤1)

2:日志抽取,仅保留页面和事件等操作信息;步骤1)

3:控制流程筛选,去除无法执行的操作;步骤2)

1:抽取静态分析工具的全部页面名称;步骤2)

2:使用动态分析工具Monkey,捕获页面名称对应的屏幕截屏;步骤3)

1:使用深度优先算法遍历控制流程图;步骤3)

2:将遍历所得路径转换为测试任务;步骤3)

3:将测试任务随机分派给测试人员;步骤3)

4:测试人员执行测试任务并提交测试报告;步骤3)

5:根据测试任务执行册数变更控制流程图权重;步骤3)

6:更新任务推荐列表;步骤3)

7:重复步骤3)

4至步骤3)

6,直至路径覆盖次数达到阈值,则测试完成。
[0009]附图说明
[0010]图1为本专利技术实施的流程图。
[0011]图2为静态分析流程图。
[0012]图3为动态分析流程图。
[0013]图4为基于反馈的测试过程引导图。
[0014]具体实施方式
[0015]为了更了解本专利技术的
技术实现思路
,特举具体实施例并配合所附图式说明如下。
[0016]图1为一种基于人机协同的移动应用测试方法总体流程图,首先,使用静态分析技术,遍历安卓应用源代码,获取应用控制流程图,然后,使用动态分析工具,模拟运行待测应用,获取所有页面截屏,接下来根据静态分析结果,自动生成测试用例,为测试人员推荐测试用例列表,根据测试路径都概率,引导测试人员协作完成测试任务,提升待测应用覆盖率,减少测试时间成本和重复报告。
[0017]1)静态分析:使用安卓静态分析工具对安卓应用源码进行分析,获取安卓应用调用依赖图,进而对调用关系进行分析,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于人机协同的移动应用测试方法,其特征在于,针对安卓应用严重的碎片化问题,首先,使用静态分析技术,遍历安卓应用源代码,获取应用控制流程图,然后,使用动态分析工具,模拟运行待测应用,获取所有页面截屏,接下来根据静态分析结果,自动生成测试用例,为测试人员推荐测试用例列表,根据测试路径都概率,引导测试人员协作完成测试任务,提升待测应用覆盖率,减少测试时间成本和重复报告;该方法包括下列步骤:1)静态分析:使用安卓静态分析工具对安卓应用源码进行分析,获取安卓应用控制流图;控制流图由若干<页面,事件,页面>的操作组成,由于静态工具是对应用源代码进行遍历,存在部分冗余代码,因此对控制流图进行清洗和筛选;由于安卓应用只有一个统一入口,作为应用主界面,因此将无法从主界面跳转到达的操作进行清理,清理过后,一个待测应用的控制流图可以用一个有向有环图表征;2)动态分析:根据静态分析工具遍历得到的页面名称,使用动态分析工具模拟运行待测应用,截取页面截图;3)测试用例生成:使用深度优先的遍历算法,遍历静态分析输出的控制流程图,并于动态分析工具获取的屏幕截图相结合,可视化展示测试任务;4)基于反馈的测试过程引导:引导过程分为两个阶段,一是冷启动阶段,随机为测试人员分配尽可能长的测试路径,引导测试人员进行测试;二是基于反馈的测试阶段,该技术根据测试路径的覆盖率,为测试人员推荐覆盖率低的测试任务,引导测试人员执行不同的测试任务,协作完成待测应用测试工作。2.根据权利要求1所述的一种基于人机协同的移动应用测试方法,其特征在于,在步骤1)中,静态分析;使用静态分析工具G...

【专利技术属性】
技术研发人员:冯洋李玉莹郝蕊黄欢
申请(专利权)人:南京慕测信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1