摘要:随着基于Android的移动设备的普及,Android应用程序的自动化测试受到越来越多的关注。然而,由于Android支持的事件种类繁多,安卓应用程序的测试是一项具有挑战性的任务。本文介绍了几种测试安卓应用的方法,并且阐述了一些应对安卓恶意软件的策略,最后总结了目前安卓应用面临的问题和挑战。
关键词:Android应用程序 安卓测试 恶意软件
- 安卓应用程序的几个测试工具和测试方法
目前,用于测试安卓应用程序的工具很多,但是在众多的可选择的测试工具中,要选到项目合适的工具是比较困难的。问题是,几乎没有任何现有的工具完全适应项目的要求。针对安卓应用测试的不同需求,下面介绍了用于测试安卓应用后台服务的Snowdrop测试框架,以及用于测试输入的生成的测试Android应用程序的开源工具EHBDroid,此外,这里还简单介绍了基于Soot的工具链的相关内容。最后,针对测试用例的问题,在这里,提到了一种面向路径的测试用例自动生成方法以及Android应用数据集的确定方法。
1、Snowdrop测试框架
当前的应用程序测试工具主要用于UI测试,而且它们不考虑后台服务独特的执行模型。首先,服务是“隐藏的”而不是用户交互的,因此,不能保证它们可以通过任何UI自动化手段达到。相反,开发人员通常依赖于传递系统级组件间通信(Icc)消息或意图来启动服务[11]。目前许多测试场景似乎适用于推断意图有效载荷的相关工作,但它们强烈地假设所有意图都是由开发人员显式编码的。此外,许多工作无法合理地推断意图中任意开发人员指定字段的有效值[12]、[13]、[14]、[15]、[16]。
因此,在这里介绍了面向开发者的Snowdrop框架。Snowdrop是一个测试框架,可以系统地识别和自动化测试安卓应用程序中的后台服务。Snowdrop实现了一种面向服务的方法,该方法不假定所有组件间通信消息都明确地编码在应用程序字节码中。此外,为了提高生成的测试输入的完整性,Snowdrop通过利用开发人员命名变量的相似性来推断字段值。Li等人[1]测试了848种商用移动应用程序来评估Snowdrop。实证结果表明Snowdrop可以实现比路径测试输入生成器代码路径覆盖率多20.91%,比随机测试输入发生器代码路径覆盖率多64.11%。
2、测试Android应用程序的开源工具EHBDroid
为了解决测试输入的生成问题,这里提出了用于测试Android应用程序的开源工具EHBDroid。与传统的GUI测试方法相比,EHBDroid的一个关键新颖之处在于它不从GUI中生成事件,而是直接调用事件处理程序的回调。这样,EHBDroid可以有效地模拟大量事件,而这些事件是传统基于UI的方法难以生成的。
Wei等人[2]已经对35个现实世界中大型Android应用程序的集合进行了EHBDroid评估,并将其性能与基于UI的两种最先进的方法Monkey(Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。)和Dynodroid--用于为未经修改的Android应用生成相关输入[17]进行了比较。实验结果表明,EHBDroid比Monkey和Dynodroid更有效和高效:在更短的时间内,EHBDroid与其他两种方法相比,语句覆盖率提高了22.3%(平均11.1%),并在这些基准测试中发现了12个bug,其中包括另外两个未发现的新错误。
3、基于Soot的工具链
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。