[发明专利]基于事件处理器的Android自动化测试工具及测试方法有效

专利信息
申请号: 201610016174.6 申请日: 2016-01-11
公开(公告)号: CN105677569B 公开(公告)日: 2018-02-02
发明(设计)人: 宋巍;钱祥星;黄青青 申请(专利权)人: 南京理工大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 南京理工大学专利中心32203 代理人: 朱显国
地址: 210094 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 事件 处理器 android 自动化 测试 工具 方法
【说明书】:

技术领域

发明涉及软件测试领域,特别是一种基于事件处理器的Android自动化测试工具及测试方法。

背景技术

目前国内外对Android App测试的研究主要集中在事件输入的生成。根据研究探索方式的不同,现有工作主要分为两类:模糊测试(fuzzing testing)和基于GUI模型测试。模糊测试又称为随机测试,其核心思想是自动或半自动地生成随机数据输入到程序中,监视程序的异常情况,如崩溃,断言失败等,以发现程序中可能的错误。基于GUI模型的测试是指基于App的GUI模型,测试工具去系统地探索App,触发App中的事件;这类测试方法首先生成App的GUI模型,GUI模型反映了App中状态之间的联系,直观地表达状态的传递关系;基于App的GUI模型,测试工具使用状态覆盖作为测试准则,探索GUI模型中的所有状态。

上述两类测试方法各有其优点,如模糊测试适合压力测试,基于GUI模拟的测试能够系统地探索App,达到较高的覆盖率。然而这两类测试方法也都存在各自的不足:模糊测试无法生成特殊的测试输入,并且无法保证测试的完整性;基于GUI模型的测试依赖完整的GUI模型,现有的GUI模型获取方式,无论是静态分析获取还是动态执行获取都无法保证模型的完整性。

另外,上述工具都是基于UI测试的工具,都没有考虑系统事件和Inter-App事件。因此,Android测试的难点总结为以下两点:一是包含丰富的事件输入,如UI事件、系统事件和Inter-App事件,部分事件难以模拟;二是缺少系统的探索方法。

发明内容

本发明的目的在于提供一种基于事件处理器的Android自动化测试工具及测试方法。

实现本发明目的的技术方案为:一种基于事件处理器的Android自动化测试工具,包括事件插桩模块、代码分析工具Soot和App探索模块;

事件插桩模块包括XML解析器、识别器、分发器、语句构造器和语句管理器;

XML解析器用于收集在XML中定义的事件,解析器的输入是Apk的XML文件,包括App的资源文件和AndroidManifest.xml,资源文件包含UI事件,AndroidManifest.xml包含系统事件和Inter-App事件;XML解析器的输出是在资源文件和AndroidManifest.xml中定义的UI事件、系统事件和Inter-App事件;

识别器用于识别在代码中定义的事件,识别器的输入是Apk的Dex文件,Dex文件包含App所有的源代码,识别器采用程序静态分析方法,查找在代码中定义的UI事件和系统事件;识别器的输出是在代码中定义的UI事件和系统事件;

分发器用于将XML解析器和识别器收集到的事件分发给事件所属的活动;

语句构造器用于构造事件处理器的调用语句;语句构造器的输入是收集的事件,输出是事件处理器调用语句,调用语句用于验证事件处理器的正确性;

语句管理器用于管理事件处理器调用语句,语句管理器的输入是事件处理器调用语句,输出是“Test”事件,“Test”事件的事件处理器封装所有事件处理器的调用语句;

代码分析工具Soot将插桩的调用语句、“Test”事件和Apk的源 代码重新打包成一个新的Apk文件;

App探索模块对重新打包后的Apk文件进行自动化测试。

一种基于事件处理器的Android自动化测试工具的测试方法,包括以下步骤:

步骤1、解压缩Apk文件,获得Apk中的XML文件和Dex文件;

步骤2、使用XML解析器解析XML文件,查找并获取在XML中定义的UI事件、系统事件和Inter-App事件;

步骤3、使用识别器分析Dex文件,查找在代码中定义的UI事件和系统事件;

步骤4、分发器对XML解析器和识别器收集到的事件统一处理,获取事件的事件源和事件处理器,将事件信息分发给各自的活动;

步骤5、活动获得事件处理器后,语句构造器构造事件处理器的调用语句;

步骤6、语句管理器创建“Test”事件,将调用语句插桩在“Test”事件的事件处理器中;

步骤7、代码分析工具Soot将插桩的调用语句、“Test”事件和Apk的源 代码重新打包成一个新的Apk文件;

步骤8、App探索模块启动App,执行自动化测试;

步骤9、测试结束后,输出测试结果,包括本次测试的耗时、代码覆盖率、发现的bug数目和bug类型。

本发明与现有技术相比,其显著优点为:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610016174.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top