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

来源 :科学时代·上半月 | 被引量 : 0次 | 上传用户:hyp88_down
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】本文首先介绍了软件测试中黑盒测试的基本概念;然后结合当前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.
其他文献
目的:探讨肾结石患者接受经皮肾镜碎石取石术治疗时的护理配合措施.方法:对我院2019年10月-2020年10月期间36例接受输经皮肾镜碎石取石术治疗的肾结石患者的临床资料、护理配
目的:探讨护理敏感指标推进神经内科优质护理的持续改进.方法:选择我科室20名护理人员作为研究对象,由科室主任和护士长依照《医院临床护理质量评价指南》、《综合医院分级护
她曾经在联想、柯达、雀巢等国际大公司工作,现任某著名跨国公司成都办事处公关经理。  在高速运转的工作日里,她是写字楼中优雅得体的白领丽人。而工作之外。她则把自己交付给背包和帐篷,在远行中体会蓝天白云的悠闲与惬意。  她喜穿朋克风服装,有时会不顾淑女风度与朋友们吃街边麻辣烫,这一切似乎和她以严谨著称的职业背景有些不符,但这又有什么关系呢?褪去职业光环,她只是一个把人生当作旅行的27岁女子。以旅行的心
中学化学实验教学主要可分为演示实验和学生实验两部分,不同方式的实验教学在传授知识和技能时存在着一定的联系,教师在教学过程应该重视它们之间在传授知识和技能之间的衔接
目的:探讨PDCA循环管理方法及在提高医务人员手卫生依从性中的应用价值.方法:以2017年6月~2019年6月期间于我院工作的200名医务人员为研究对象,将其分为两组,即PDCA循环管理实