原文地址: https://testerhome.com/topics/9364

Mobile Testing@Google

其实在开始听谷歌的张南和潘岩开始演讲前,了解下 Google Test Certified 会有所帮助。

  1. 谈谈 Google 的 Test Certified https://testerhome.com/topics/5752
  2. 详细说说 Google Test Certified 的各级——Level 1 https://testerhome.com/topics/5776
  3. 详细说说 Google Test Certified 的各级——Level 2,3 https://testerhome.com/topics/5784

甚至,我们从此次的演讲中依然能感受到,谷歌对建立测试认证标准的努力。下面我们仔细聊聊这次的演讲。

谷歌也在寻求开发效能和测试效能的平衡点

产品由简到繁需不同的测试体系来支持,如何在开发效能和测试效能之前寻找平衡点是每个发展中的公司痛苦的事情。谷歌经历了小城镇式的开发模式到大都市模式,测试策略也从1.0到测试策略3.0。每个阶段的痛点都不一样,所采用的对策也不一样。测试模型从大体上,是从bug驱动到测试驱动,到3.0的数据驱动。对于测试的技术要求也是越来越高。从ppt上来看,谷歌在2.0阶段已经实现了测试全自动化,这在业内还是属于领先的。这个有可能和谷歌的业务有关。至少到目前为止,我经历的项目中,手工测试的比例还是占了大头(我记得7年前在谷歌做vender的时候,DE项目其实手动比例也有50%左右,但是其他项目,比如谷歌的image啊,据我所知好像都自动化了)。

 

测试能放心地交给自动化,我想很大一部分应该得益于谷歌工程师的高素质和完善的 code review 机制。Ron Patton 的《软件测试》中反复强调一点:问题发现的越早,成本越低。需求阶段发现问题,就可以避免浪费开发资源,开发阶段发现问题,就可以避免浪费测试资源,测试阶段发现问题,就可以避免发布之后的打patch啊,回滚啊,紧急发布啊,从而避免线上故障带来的直接损失。需求阶段一般就依赖于强大的pd,但是pd一般都坑,

 

所以开发就非常关键,而pre-submit 和 post-submit 这两个阶段就变得至关重要,提交前的code review 和提交后的冒烟测试和持续集成就是这两个阶段的利器。

 

谷歌的CR做的非常好,LGTM已经深入人心。我记得我那个时候,提交代码之后,CR个个把礼拜是正常的事情。遇见一次,搞了半个月,许多开发轮流CR。我还记得有一会测试提交代码,然后国外的一个耿直boy直接CR后打回,totally useless,全部重写。反观我们目前的情况,CR大多数情况是一种流程上的摆设,是开发重新把自己写的讲一遍,不会深入细节,也不会举一反三。很多线上问题,如果有细致的CR,就不会出现。

再来看持续集成,现在国内公司都爱持续集成,但是侧重点在解决开发发布或者出包效率,对于持续集成中的测试工作投入偏少。这可能和我们的测试类型有关:

  1. 我们缺少单元测试
  2. 我们有接口测试,但是没有稳定的测试环境
  3. 我们偏爱重型的UI测试,无论是web端还是手机端
  4. 等等,有人补充不?

从我们一直推崇的测试金字塔来看,本末倒置的很厉害。这样也就把产品质量往后压了很多,导致很多事情在集成测试阶段之后才发现,而测试也疲于奔命。这也是老生常谈的问题了。这么多年了,似乎也没有解决的也很好。也似乎只有谷歌这样的公司,搞得不错,但我还是那句话,和业务有关。

 

谷歌也在摸索移动测试

从演讲和PPT上不难看出,谷歌也在摸索移动测试。谷歌缔造了安卓帝国,但是Android测试未必做的最好。从大会整天的topic来看,国内的移动测试其实是领先的,有的甚至是超越谷歌的。比如,华为对标谷歌的实验室,比如腾讯的专项专题。不过由于毕竟Android是谷歌亲儿子,所以有些内部的能提升效能的工具还是领先业界一大截,我记得谷歌就有一个内部adb,比正常adb好非常多。然后这次演讲讲到的 image diffing service,谷歌的移动lab等。

但是我觉得技术都不是问题,我们看后半程潘岩的演讲,可以明显感受到,他们是在从整个研发测试流程上来提升移动测试的效率,提高自动化比例,解耦普适性和移动特特性,提高可测性,而且也只有这样,潘岩后面讲的工具和测试平台才能用的上。

  1. Automate everything
  2. Decouple functions and make each test simple
  3. Find problems as early as possible
  4. Integration with existing framework

不再神秘

2013年的时候,James Whittaker的《Google软件测试之道》的书揭开了谷歌测试的神秘面纱,一度被国内捧为测试圣经。这一次,张南和潘岩带我们再次走进谷歌测试,了解了谷歌的移动测试。其实可以感受到作为先行者,谷歌做的很好,但是也没有到赶超我们一大截的地步。大道同归,国内公司在移动上的实践,方向和策略上也是类似的。我记得我一个老板曾经说过,整个技术圈,80%都是差不多的,差别在20%的执行者。

这一次,大家了解了谷歌的移动测试,再看看自己公司做的,找到一些共鸣,找到一些认同,然后继续探索和研究,这也是一种收获。这大概也是在外面参加会议的意义。

[ZZ]MTSC 2017 Mobile Testing@Google 演讲的感受的更多相关文章

  1. 「Mobile Testing Summit China 2017」第三届中国移动互联网测试开发大会-讲师征集

    时至北京盛夏,一场由 TesterHome 主办的关于移动互联网测试技术的盛会正在紧锣密鼓的筹备中.只要你关注软件质量,热爱测试,期待学习,都欢迎你加入这次移动测试技术大会中和我们一起分享经验.探讨话 ...

  2. 「Mobile Testing Summit China 2016」 中国移动互联网测试大会-议题征集

    时至北京盛夏,一场由 TesterHome 主办的关于移动互联网测试技术的盛会正在紧锣密鼓的筹备中.只要你关注软件质量,热爱测试,期待学习,都欢迎你加入这次移动测试技术大会中和我们一起分享经验.探讨话 ...

  3. [ZZ]Android UI Automated Testing

    Google Testing Blog最近发表了一篇Android UI Automated Testing,我把他转载过来,墙外地址:http://googletesting.blogspot.co ...

  4. [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述

    Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...

  5. Mobile testing基础之签名

    1. 什么是数字签名? 数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的 2. 为什么要数字签名? 最简单直接的回答: 系统要求的. Android系统 ...

  6. Mobile testing基础之Native、Web、Hybrid、activity、webview

    应用一词指的是app,即application.原生应用指的是能直接运行于当前操作系统的应用程序:web应用指需要在浏览器中运行的网页应用,由于界面体验.功能上都更加强大,可媲美原生应用,故称web应 ...

  7. 腾讯WeTest开启“测试扶持计划”赠送重磅福利(含MTSC/TiD门票)

    WeTest导语 伴随着互联网行业的发展,与各行各业的连接更加紧密,竞争也变得越发激烈,用户对于产品的体验开始变得更加“挑剔”.然而目前互联网产品却始终受到各类质量问题的困扰.以兼容问题为例,应用平台 ...

  8. MTSC 2019 深圳站精彩议题第一波更新! | 七五折门票火热售票中

      MTSC(中国移动互联网测试开发大会)到今年已经成功举办了五届,这四年里,TesterHome社区一直秉持着务实.能落地.有深度.高质量.重分享的原则,从讲师邀请到内容筛选都严格把控,只为将最能提 ...

  9. 美国政府关于Google公司2013年度的财务报表红头文件

    请管理员移至新闻版块,谢谢! 来源:http://www.sec.gov/ 财务报表下载↓ 此文仅作参考分析. 10-K 1 goog2013123110-k.htm FORM 10-K   UNIT ...

随机推荐

  1. 《团队-爬虫豆瓣top250项目-团队一阶段互评》

    团队名称:咣咣踹电脑 学号:2015035107217姓名:耿文浩 得分10 原因:组长带领的好,任务分配的好,积极帮助组员解决问题 学号:2015035107213姓名:周鑫 得分8 原因:勇于分担 ...

  2. 2019-04-19-day036-协程与进程池

    内容回顾 11:30 码云 :王老师检查作业+定期抽查 注册账号 考试的时间 threading.enumerate(),能够获取到当前正在运行的所有线程对象列表 守护线程 守护线程会等待所有的非守护 ...

  3. 博客 新址: https://pheromone.github.io/

    该博客暂时调整歇业,小店地址暂时搬迁至: https://pheromone.github.io/ 该博客只做旧文章的维护工作. 博客 新址:  https://pheromone.github.io ...

  4. 2018—自学Selenium+Python 笔记(一)

    在开始学习前,先唠几句: 身为一个开发人员,为何想要转测试..很多人不解. 但我觉得这并没有什么不可,测试人员是质量的把控者: 要出一个让客户满意的产品,单纯靠开发自测,是不够的..相信其中缘由大家都 ...

  5. React native中使用XMLHttpRequest请求数据

    一.代码 import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from ' ...

  6. 如何引入iconfont图标与Element-UI组件

    一.iconfont图标 iconfont方便又好用,介绍一下如何在vue项目中引入iconfont 1.进入iconfont官网 www.iconfont.cn 2.登录自己账户 3.选择图标后下载 ...

  7. 基于CDH5.12安装Kylin及官方用例测试

    1 kylin 简介 Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的.基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法 ...

  8. gulp在项目中的基本使用

    在项目中用gulp做项目的代码的管理,用起来很方便.主要用到了下面一些功能 关于js的处理,包括合并.压缩.加hash. 关于css的处理,编辑scss,合并css,加hash,自动加入前缀 本地开发 ...

  9. CCF 消息传递接口 (队列) 201903-4 (100分)

    [题目描述] 老师给了 T 份 MPI 的样例代码,每份代码都实现了 n 个进程通信.这些进程标号 从 0 到 n − 1,每个进程会顺序执行自己的收发指令,如:“S x”,“R x”.“S x”表示 ...

  10. Introduction tp Operating System

    一.虚拟化 为了让用户告诉操作系统如何利用虚拟机功能,OS提供给应用程序一些接口——系统调用,也会说提供了一个标准库. CPU通过分时达到虚拟化. 内存物理模型只是一个字节数组,读写修改需要制定地址. ...