基于Android平台的动态行为检测软件的设计与实现

2016-04-20 02:50江南机电设计研究所贾俊辉
电子世界 2016年6期

江南机电设计研究所 贾俊辉



基于Android平台的动态行为检测软件的设计与实现

江南机电设计研究所 贾俊辉

【摘要】随着Android系统的普及,新兴的移动软件产业获得快速发展。然而,基于Android平台的软件检测技术与方法却相对滞后,原有的软件测评方式不能很好地对Android平台软件进行各种指标检测。本项目在Android 应用开发技术、多线程开发技术、Linux系统监测技术研究的基础上,自主开发了Android检测软件“Android Scan”,该软件具备App事件监听、实时检测数据、系统资源监听、数据记录等功能,该工具能够作为Android软件压力检测、临界测试的测试辅助软件,为测试人员提供数据分析支持。

【关键词】动态检测;Android应用技术;多线程

1 研究背景

Android移动应用软件检测平台在国内已经有了一部分研究成果,但是,普遍的研究成果都没有对UI功能测试提供很好的支持;并且,对于一些尚未发布的移动设备或者软件应用来说,采用商业检测平台,对商业私密性也不能得到很好的保护。

国外常见工具如Google提供的Android SDK中,给出了三种自动化测试工具,即Monkey、MonkeyRunner 和Instrumentation。其中,Monkey是一个随机压力测试工具。Monkey通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),对应用程序进行压力测试。由于Monkey测试使用的事件流数据流是随机不能进行自定义,因此Monkey不符合可控测试的要求。MonkeyRunner是由Python编写的测试工具,可以通过编写Python代码调用Android的API,从而达到自动化测试的目的;Instrumentation可理解为一种没有图形界面的、具有启动能力、用于监控其他类的工具类。然而,MonkeyRunner与Instrumentation框架对测试人员的代码编写能力较高,并且脚本编写环境要求多变复杂,对于测试项目而言成本较高。

本项目在Android应用开发技术、多线程开发技术、Linux系统监测技术研究的基础上,自主开发了Android检测软件“Android Scan”,该软件具备App事件监听、实时检测数据、系统资源监听、数据记录等功能。该工具能够作为Android软件压力检测的测试辅助软件,为测试人员提供数据分析支持。

2 Android Scan软件设计

Android系统是一个权限分离的系统。Android Scan利用Linux已有的权限管理机制,通过为每一个App分配不同的uid和gid,从而使得不同的App之间的私有数据和访问达到隔离的目的。与此同时,利用Android提供的permission机制,用来对App可以执行的某些具体操作进行权限细分和访问控制,进而利用Android的权限机制进行权限安全分析。

Android Scan主要采用进行辅助压力测试。压力测试通过接入外部设备在短时间内发送大量信息,同时并接收大量的信息,来验证同一个软件是否可以同时多个窗口进行操作,操作时软件对该情况进行的处理及响应等。并且,通过长时间使软件持续运行,检测温度、电压等数据等,用来评估系统与软件可靠性。

Android Scan采用JAVA语言在Eclipse 3.5.1、Android Development Tools平台上开发,可以实时监视目标App、采集目标动态数据,包括:硬件信息、 App权限、App包数据信息、内存消耗、CPU使用信息、网络流量数据、电量数据、温度、存储消耗、电压等数据信息。并且,通过记录监测数据,保存原始数据,为评价与统计分析提供数据依据。Android Scan的设计架构方法如图1所示。

图1 Android Scan的设计架构

Android Scan启动以后,会通过App事件监听线程实时监测目标手机软件的目标动态信息,并将目标动态信息如 App权限、App包数据信息、内存消耗、CPU使用信息、网络流量数据、反馈到Android Scan实时检测数据界面之中,再将其传入数据记录模块。同时,系统资源监听线程将Android系统总内存消耗、总CPU使用、总网络流量数据、电量数据、温度、存储消耗、电压等信息记录到数据记录模块中。最后,退出Android Scan后会将数据记录器中的数 据生成文本文件,测试人员可以利用脚本工具将数据文本生成报表。

3 结束语

本项目在Android 应用开发技术、多线程开发技术、Linux系统监测技术研究的基础上,自主开发了Android检测软件“Android Scan”,该软件具备App事件监听、实时检测数据、系统资源监听、数据记录等功能。该工具能够作为Android软件压力检测、临界测试的测试辅助软件,为测试人员提供数据分析支持。Android Scan在UI上进行实时检测,解决了国内普遍的研究成果都没有对UI功能测试提供很好的支持的问题;同时,该软件为自主开发,可以很好地保护用户商业私密性。并且,在实际应用之中结合FindBugs、LogCat、MonkeyRunner、LoadRunner等,可以搭建成为Android软件测试工具平台。通过该平台,实现Android软件静态、动态、并发、负载性能、异常处理等方面的检测。

参考文献

[1]卢建军,苏宁.浅谈手机软件测试的流程与策略[J].制造业自动化,2012(15):12-17.

[2]尤永康,刘乃琦.自动化回归测试在 Java 项目中的实现[J].计算机应用,2005,25(1).

[3]谢红霞,吴红梅.基于Android 的自动化测试的设计与实现[J].Computer Era,2012(2).

贾俊辉(1987—),男,贵州贵阳人,硕士,现供职于江南机电设计研究所,助理工程师,研究方向:软件测试。

作者简介: