Android软件测试技术分析

2017-04-23 23:02高蕾
电子技术与软件工程 2017年5期

高蕾

摘 要 随着我国Android软件产业发展的加快,Android软件企业如雨后春笋般迅速增长,Android软件产品层出不穷,市场对Android软件产品质量的重视程度逐渐加大,“软件质量”的号角开始吹响,促使Android软件测试逐渐发展成一个独立的产业,先进的软件测试技术应运而生,静态测试、动态测试等方面涌现了许多优秀的Android软件测试技术。

【关键词】动态测试 静态测试 自动化测试技术

1 Android国内外测试现状

发达国家,尤其是美国,软件测试在软件公司占有重要地位,在谷歌,一个典型Android开发项目组中测试工程师数量比软件工程师多的多,花费在测试上的时间要比花费在编码上的时间多很多。在中国,1990年成立国家级中国软件测评中心,Android行业软件测试则起步更晚,无论是Android软件测试理论研究,还是Android测试实践,和国外发达国家存在不小的差距。

2 常用Android测试技术分析

Android测试技术可以分为静态测试技术和动态测试技术。静态测试技术是对程序源代码的语法、结构、接口等进行非运行的检查;对软件设计说明书、需求规格说明书等软件周期产生的文档进行评审和验证。动态软件测试技术是对运行程序进行检查、分析程序的执行状态和程序的外部表现,验证运行结果与预期结果的差异,分析软件的性能等指标。

2.1 静态测试技术

Findbugs是一款典型的静态测试工具,它通过检查类或JAR文件,对字节码与缺陷模式尽行比较,试图检索可能的问题,Findbugs可以帮助Android程序员在不运行代码的情况下查找代碼缺陷,并在检测完毕后生成一份详细的报告,统计代码中存在的高优先级报警和低优先级报警,对所有报警进行归类,并进行详细罗列。Findbugs使用节点包括开发阶段和维护阶段。研发工程师完成独立模块编写后,准备模块整合阶段,通过该工具对Java文件进行第一次扫描,用以检测自身不易发现的赋值、比较和循环等错误,整个项目组完成所有功能后,执行第二次扫描,经过两轮扫描,去除掉所有典型BUG,系统的稳定性会更上一层楼。所产生的Findbugs报告可以作为一项输出文档用于存档,以备后续相关人员查验。

2.2 动态软件测试技术

2.2.1 Monkey

Monkey测试是Android SDK自动化测试命令行工具,向系统发送伪随机用户数据(模拟用户触摸屏、按键输入等)使用随机重复的方式去对开发的应用进行压力测试,Monkey测试过程中系统所产生的日志保存在Android设备数据目录下,发生系统崩溃、无响应或者强制关闭时,分析日志文件,能够有效帮助开发人员锁定问题发生位置,更快找到解决办法。Monkey命令参数组合很复杂,主要划分为常用选项、事件选项、约束选项和调试选项四大类,测试人员通过配置这四大类中的参数来确定Monkey测试命令。Monkey测试所有事件都是随机的,不带任何人的主观性,而且可以长时间不间断自动测试,在一定程度上解放了测试员的双手。

2.2.2 UiAntomator

UiAntomator是一款主流安卓用户界面自动化测试框架,改革了测试人员通过点击每个控件元素,对比输出结果是否符合预期的测试方法,该框架通过自动创建功能UI测试示例,允许测试工程师在一个或者多个安卓设备运行测试程序,测试原生的安卓应用用户界面,测试用例可以跨越不同进程,可以大大提高界面测试效率,这款工具要求测试工程师掌握Java软件编程,需要编写UiAntomator测试案例,通过调用UiAntomator提供的API从主界面模拟用户操作。该框架也存在一些局限性,仅支持API16或者更高级别的版本,不能支持Web视图测试,无法直接访问安卓对象。

2.2.3 Robotium

Robotium是安卓之初使用最广泛的安卓测试框架,扩展于JUnit开源库,提供非常强大的自动化黑盒测试范例,它提供与安卓相似的框架,支持控制控件的各种API,使测试变得非常简单。通过该框架可以编写单元、系统和验收等测试方案,应用非常广泛。但是这款测试框架也存在硬伤,就是使用该框架的测试工程师要了解Android基本组件,并且该框架不能支持跨应用测试。

3 结束语

Android软件测试技术发展很快,但是仍然跟不上Android软件技术发展的步伐,未来Android软件测试仍面临巨大挑战。当下,Android软件测试行业正处于一个飞速发展的阶段,Android软件测试的重要性越来越得到人们的重视,相信经过一段时间的努力,我们会逐渐缩小与国外发达国家的差距,带动整个Android软件产业的健康发展。

参考文献

[1][阿根廷]迭戈D.(Diego Torres Milano)Android应用测试指南[M].人民邮电出版社,2016-04-01.ISBN 978-7-115-41708-4.

[2]柳纯录,黄子河,陈渌萍.软件评测师教程[M].清华大学出版社,2005-03.ISBN 978-7-302-10536-7.