购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 移动终端自动化测试应用场景

移动应用的特点是快速迭代、快速发布,基于移动应用的测试就逐渐转变为轻量测试、灰度发布机制、众测、后台云控系统等,甚至有损发布,很多类似的产品不断涌现,随着市场和用户日趋成熟,产品的功能差异性不大,那么竞争的关键就转移至品质与口碑,就要求研发团队严把质量关卡,赢得用户口碑。在这样的前提下,需要在质量团队引入更强大的平台或者用测试方法支撑业务的品质,要求自动化测试的思路深入至品质的各个角落,以真正为产品质量服务。

不妨梳理一下在应用App测试的时候,需要在哪些耗时耗力以及特殊要求的场景进行自动化测试。读者首先可能会想到兼容性测试,因为众所周知的Android碎片化问题,不同的机型适配问题可能五花八门,这里就需要有合适的兼容性方案去尽可能地覆盖测试,在实际项目中也确实是这样。这里,和读者一起来梳理一下移动平台自动化测试到底能做什么,哪些场景更适合用自动化测试,这些自动化测试是否跨越了我们传统的误区。图2-6所示为笔者梳理的Android自动化测试应用场景,每个领域里内容不是非常齐全,目的是引导读者一起去思考如何完善质量保证体系的自动化测试场景。

图2-6 Android自动化测试应用场景

(1)性能测试。移动终端应用,不管是Native还是WebView的应用,对性能要求都非常高,主要是卡顿、耗电、速度这几个常见关键性的指标,而这类测试重复性强,指标路径固定,并且质量指标中又需要分为横向与纵向对比情景,等等,形成一个庞大的测试矩阵,自动化测试支持才能更快捷地完成测试任务,一般性能测试会考虑选用自动化方案,此方案非常适合性能测试。

(2)稳定性测试。Android平台一般都会联想到用系统自带的Monkey工具进行测试,此工具既易上手也实用,但运用起来有非常多的讲究和技巧,简单的Monkey工具不一定能完成使命,在测试中也需要花费心思去对原生的Monkey进行改造,以满足不同业务的稳定性测试需求。

(3)功能测试。关于功能测试的争议比较多,因为产品都需要快速迭代,而脚本的稳定性、实现时间等成本开销大,真正发挥作用也需要不断地打磨,并且还有很多后期维护成本,所以比较折中的办法是做一些BVT测试和持续集成配合,在开发编译新的build后直接运行这些核心的BVT用例,以免出现严重的Regression/Block问题,日常的工作中选定较小范围的用例及适合的框架一般就可以解决问题。

(4)兼容性测试。不同的业务可能会有不同的适配要求,现在比较常用的方法是直接使用业界比较成熟的测试平台,如Testin、百度MTC、腾讯优测平台等,一般情况下平台能提供几百甚至上千台机器进行测试。本书后面也给出了兼容性测试方案,供各读者在项目中实践。

(5)接口测试。这块的测试主要是集中一些重要的API测试,和PC端的接口测试思路一样,都是通过脚本去遍历所有重要的参数等,并且抛开界面的干扰快速测试以至稳定。像浏览器里常见的就有JS API接口测试,当然这块可能需要开发同学的接口定义文档或者口头支援,梳理业务的关键API和参数列表以及相应的依赖关系等,是非常适合用自动化测试去实现的,脚本也相对简单稳定,而且效果明显。

(6)单元测试。Android终端用Android Junit可以快速方便地实现单元测试。很多公司单元测试工作都是由开发同学自行完成,但在移动互联网时代,基于敏捷开发测试前移的大环境,部分测试同学也会直接参与单元的编写和执行,比如,腾讯Tencent OS(TOS)项目团队就是由测试同学进行单元低层OS系统的单元测试,后面的章节也会讲到这块的测试案例。

(7)线上监控测试。这块测试方向不应该直接归属于传统的自动化测试范畴,因为它不需要常规情况下提到的自动化测试框架支持,也不需要开发测试用例脚本,这里主要是对线上测试数据的监控,并且利用大数据分析进行“自动化”测试,在互联网产品中极为适用而且能非常直接地体现产品的质量。举个简单的例子,通过浏览器的网页浏览功能,可以监控用户在浏览网页时有多少个浏览失败的网站、是否会出现必然浏览失败的网站、出现浏览失败的网站的地域/DNS是什么等,如此层层过滤,最后得到的关键信息会直接指导测试人员缩小测试范围,提高测试效率。但本书中没有准备这方面的案例,笔者在梳理这块内容时,为了保证知识的完整性在这里做一个小的铺垫,本书再版时会添加这方面的案例。 iWeYv5t7fhuETjAgpuL4vi6anViDf9JN1pWhfhThLMLifYq1mweMOaDTAtiCeZhA

点击中间区域
呼出菜单
上一章
目录
下一章
×