APP下载

浅析Android应用软件的黑盒测试方法

2013-05-10罗欢

科学时代·上半月 2013年3期

罗欢

【摘 要】本文首先介绍了软件测试中黑盒测试的基本概念;然后结合当前Android应用软件开发过程中,大量的软件界面和软件功能方面的测试需求,简单讨论了几种常用的黑盒测试工具能够在测试中起到的作用;最后,以Robotium为例,Android官方的ApiDemos作为测试对象,编写了一个测试程序来说明如何通过测试工具实现自动化的黑盒测试。

【关键词】黑盒测试;Robotium;Android应用软件

1. 引言

Android,是一个以Linux为基础,主要用于移动设备的开源智能系统。和iOS并列为当今最为主流的智能终端的操作系统,随着Android设备用户群的直线增长,相关应用也随着迅猛增长。据谷歌官方预计,到2013年6月安卓应用数量将有可能突破100万。如何通过测试保证这些应用的质量、如何能够高效的完成测试以保证应用的上市时间,是所有开发团队面临的首要问题。显然,只采用人工逐个功能测试是效率很低的,并且还有诸多限制。所以利用测试工具进行自动化测试是必然趋势。

2.黑盒测试

黑盒测试又称功能测试、数据驱动测试,是把测试对象当作一个黑盒子,只需要根据软件产品的需求规格说明和用户手册等进行测试。因为黑盒测试不要求测试人员具备较高的软件开发能力,所以本文将从黑盒测试方面分析,如何实现Android应用的自动化黑盒测试。

3.黑盒测试在Android系统上的应用现状

Android 平台黑盒测试比较常用的测试工具有Monkey、MonkeyRunner、Robotium。

Monkey是Android自带的一个命令行工具,可以运行在模拟器里或实际设备中,主要应用在压力测试和可靠性测试方面。Monkey运行时,向系统发送伪随机的用户事件流(模拟用户的按键输入、手势输入、触屏输入等),通过设置测试对象的测试次数、频率、测试类型,实现对应用程序进行压力测试。 Monkey需要测试人员可以使用adb Shell命令,测试使用的事件流是随机的,不能进行自定义,具有一定的局限性。

MonkeyRunner是Android SDK自带的一个测试工具,主要应用在功能测试和回归测试。它提供了一个API,使用此API写出的程序可以在代码之外控制Android设备和模拟器。使用者可以写出一个Python程序去安装/卸载一个应用,运行应用,截屏,比对图片来判断特定命令执行后的结果是否包含预期信息,以及执行应用的测试包。上手相对复杂一些,并且对测试人员要求有Python语言的编程基础。

Robotium是一个测试框架,能够很方便的为Android 应用程序编写强大、健壮的自动化黑盒测试用例,可以应用在功能测试、系统测试和验收测试,可以横跨多个Activities。它 支持Activities、Dialogs、Toasts、Menus 、Context Menus。用法很简单,并且测试功能非常强大,能够模仿普通用户行为,可以把一些原来由测试工程师做的手工测试变成自动化实现。

Robotium工具主要有以下特点:

(1)使用非常容易,需要较少的相关知识就可以设计功能强大的测试案例;

(2)有源代码时,可以对代码进行白盒测试;

(3)没有源代码时,可以直接对APK进行黑盒测试;

(4)测试用例的开发设计简单,短时间内就可以写出需求的测试用例;

(5)测试案例容易理解,可读性高;

(6)测试用例自动执行,执行速度快,可以自动处理多个Activities;

(7)基于Android默认的框架可以回退;

(8)多种控件的支持,多种测试阶段的支持;

(9)可以和Maven、Ant平滑集成,易于持续集成。

基于以上优势,本文着重分析一下如何利用Robotium进行自动化黑盒测试。

4. Robotium工具简介

Robotium的整个框架层次十分清晰,Solo作为对外公开的唯一的类,提供了用户所要使用的所有方法,主要方法如下:

(1)ActivityUtils类:所有和Activity相关的方法都包含在该类里面;

(2)Clicker类:包含各种点击方法 ;

(3)Getter类:主要包含取得view方法;

(4)Scroller类:包含各个方向的滚动事件和拖拽事件;

(5)Searcher类:包含各种检索方法;

(6)Sender类:发送按键、上下左右键和返回;

(7)TextEnterer类:提供文本框输入内容的方法。

5. Robotium应用实践

针对Android APK,如何使用Robotium进行黑盒测试?下面本文将结合实际的应用进行分析。

测试准备:

官方Api示例工程:ApiDemos

(1)ADT Bundle for Windows

(2)robotium-solo-4.0.jar

5.1测试主要步骤一:创建测试工程

在Eclipse 中新建测试工程,选择工程[ApiDemos]作为测试目标。

将robotium-solo-4.0.jar导入库,并且在[Order and Expor]中选中。

5.2测试主要步骤二:编写测试代码

(1)新建类:ApiDemosTest。

(2)添加测试框架代码(示例)

5.3测试主要步骤三:执行测试

启动虚拟机,版本建议2.3以上,运行JUnit Test,执行结果如下图:

该测试简单验证了控件的查找和点击,画面之间的迁移。用例使用了一些常用的方法:searchText、clickLongOnText等。

6.总结

自动化黑盒测试是一种高效、快捷、可靠的软件测试方法,如何能够把自动化黑盒测试和Android平台无缝的结合起来具有非常重要的现实意义。通过本文的示例也能看出,基于自动化测试工具,只需要编写很小量的测试代码就能实现较复杂的UI确认和动作确认。希望本文能起到抛砖引玉的作用,可以引导开发和测试人员更加深入的研究、发掘、完善自动化黑盒测试相关的技术和工具,以便能够大大提高Android应用的质量。

参考文献:

[1]黎连业,王华,李龙,黎照,李淑春.软件测试技术与测试实训教程.北京:机械工业出版社,2012.

[2]徐芳.软件测试技术.北京:机械工业出版社,2012.

[3] 杨怡君,黄大庆. Android手机自动化性能测试工具的研究与开发. 计算机应用, 2012 , 32( 2) : 554 - 556.