黑盒测试

相对于白盒测试而言,黑盒测试指的是通过外部指令驱动手机并通过外部方式进行测试结果校验的测试方式,即不考虑系统本身提供的自动化测试能力,所有的测试行为均在系统外部进行。比较典型的自动化黑盒测试方案是:通过手机操作系统对外提供的接口向手机发送触屏、按键等指令控制手机执行各种操作,同时将特定操作步骤执行后的手机当前屏幕显示做截图,再将截图数据通过图像对比或OCR的方式进行结果校验。

黑盒测试方式多被手机厂商或独立的手机自动化测试工具提供商所采用。像诺基亚在S40平台上使用的Austere C、在S60平台上使用的ART2、摩托罗拉在非智能机平台上使用的FlexAuto、索爱在多个产品平台上使用的BRAT、独立软件开发商BSQUARE公司的CountDown均属于黑盒自动化测试系统。

图3 BSQUARE公司的CountDown

黑盒测试方式不受操作系统内部特性的限制(如可以避免跨进程操作的限制),对手机操作系统本身是否具备高级的自动化测试能力也没有很高的要求;测试脚本可以采用描述性语言,而且可以提供简单易用的图形化操作界面,降低了使用门槛,有利于自动化测试在测试团队中的大范围推广。但由于使用图像对比或OCR的方式做结果校验,测试脚本受UI变动的影响较大,脚本维护成本会比较高;在执行效率、不同规格的手机适配便利性方面也不如白盒测试方式。

由于白盒测试和黑盒测试各有利弊,一般来说,在实际测试项目中,两种测试方式会配合使用、各取所长。

OPhone的自动化测试

OPhone走的是Android+ 路线,自然继承了Android在自动化测试方面的能力。目前OPhone在白盒自动化测试方面使用的也是JUnit+Instrumentation框架,对上述两种白盒测试类型都能很好的支持。黑盒自动化测试方面,OPhone目前有两套自己的黑盒测试系统A-Tool和OSTT,分别用于平台测试的各环节(如功能测试、压力测试、交互测试等)和OPhone专项测试中的MTBF(平均无故障时间)测试。基于两套测试框架共开发出近万个测试脚本,覆盖了大多数应用层模块和部分底层模块。基于以上框架开发的分布式测试系统和多框架集成测试系统已经投入使用或即将完成研发。同时OPhone还具有自行开发或引进的各类自动化测试工具24款,类型涵盖了功能测试工具、压力测试工具、性能测试工具、MTBF稳定性测试工具、测试辅助工具和系统监控工具。

通过构建自动化测试框架、开发自动化测试脚本、构建自动化测试系统和开发自动化测试工具,OPhone已经初步形成了较为完善的自动化测试体系。自动化测试已经应用在OPhone平台开发流程中的各个环节,例如每日构建出来后自动执行版本检查,对各软件模块进行单元测试,对系统进行自动化功能测试和自动化系统测试,产品上市前还有自动化的MTBF测试。

由于手机产品与用户有密切的交互,很多功能需要以测试人员的主观感受作为检验结果的依据,所以人工测试仍会在手机测试工作中占主导地位。但随着自动化测试技术的发展,会有越来越多的人工测试可以被自动化测试所替代,也会有越来越多的人工无法完成的测试任务被自动化测试所实现。如何更好的实施自动化测试,仍将会是业内关注的热点。OPhone团队也将继续在此方面进行有益的探索和实践,以此提升OPhone测试水平,更好的保障OPhone产品的质量。