一、android自动化测试框架时间线
二、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是什么等,如此层层过滤,最后得到的关键信息会直接指导测试人员缩小测试范围,提高测试效率。
以上均来自《腾讯android自动化测试实战》,作者丁如敏、盛娟等