《Google软件测试之道》
Google软件测试之道
Google对质量的理解
- 质量不等于测试,即质量不是被测出来的
- 开发和测试应该并肩齐驱,测试就是开发过程中不可缺少的一部分
- 质量是一种预防行为而不是检测
Google对软件测试的划分
抛却复杂的专业术语,简单按照测试范围去划分:
- 小型测试:对一个代码单元的测试,通常就是单元测试
- 中型测试:对两个或多个模块之间交互的测试,通常类比于“集成测试”
- 大型测试:对一个应用系统及其子系统整体的测试,通常类比于“端到端测试”
这样划分的好处有:
- 容易定位问题:测试范围从小到大,各自负责不同的功能,某个测试一旦失败容易让开发找到问题所在
- 产生较高的测试回报率:测试的回报率等于测试所产生的业务价值与测试执行成本之比。范围小的测试越容易被自动化,但因为覆盖业务范围小所产生的业务价值也就越小,范围大的测试则反之。根据团队和产品具体情况,通过制定合理的测试策略和划分测试范围,决定自动化测试的比例,可以产生较高的测试回报率
Google对软件测试角色的划分
- SWE(软件开发工程师):主要职责是实现用户功能,除编码外也具有编写和组织测试的能力,日常活动是代码设计、代码实现与编写测试
- SET(软件测试开发工程师):主要职责是让SWE更容易地去写测试,工作重心在可测试性和通用测试基础框架上,是SWE的紧密合作伙伴,关注质量提升,具备观察代码质量、编写测试框架等能力,日常活动是参与设计评审、代码重构、编写测试框架等
- TE(测试工程师):主要职责是专注于用户角度的测试,关注集成后的系统是否可以满足最终用户的需求,是真正的产品专家、质量顾问和风险分析师,具备全局审视与分析思考的能力,日常活动是模拟用户使用场景,对SWE和SET编写的测试进行分类组织,分析、解释和测试运行结果,特别是在项目最后阶段推进产品发布
与传统软件测试中的角色不同,Google将编写测试的工作大部分转交给SWE进行,因为测试本来就应该是开发工作的一部分,由开发去完成再合理不过。考虑到SWE在测试编写方面需要统一的支撑,SET作为SWE的紧密合作伙伴介入进来,予以框架工具和技术方面的支持,并帮助观察代码质量。而TE的作用向后推移,更关注系统集成为一个整体后,从用户角度是如何使用的,能否满足用户需求,因为毕竟质量的定义就是“满足用户需求”。TE看起来更像一个具备很强验收能力的产品经理,并且被验收的不仅仅是用户需求,还会用放大镜仔细看SWE和SET所做的测试工作细节。
Google的“工程生产力团队”
测试是独立存在并与业务领域部门平行的部门,横跨于各个业务领域,被称为“工程生产力团队”。测试人员以租借的方式进入产品团队帮助做提高质量相关的事情,寻找测试方面的可改进之处。测试人员并不直接向产品团队汇报。这种借调模式,一是可以帮助测试人员保持新鲜感,二是可以让一个好的测试实践迅速在公司内的不同团队间蔓延。
测试左移(前移)与测试右移(后移)
相对于传统的认为测试工作主要是测试人员的事的看法,Google提倡测试左移与测试右移:
- 测试左移:开发阶段就应该完成大部分测试工作,尽量将测试放在早期进行,有助于尽早发现问题和质量内建
- 测试右移:既然TE的主要工作是从用户角度审视产品是否满足用户需求,那为什么不直接找真实用户来进行测试呢?内测用户、众包测试都是测试右移的手段,直接、快速地收集来自真实用户的反馈,能得到更有用户价值的测试结果
但是,个人认为测试左移是测试右移的前提条件,即团队尚不能完全保障产品的功能完整与稳定性之前,不要仓促开放给哪怕只是部分用户。团队应该先着力于发展自己内建质量的能力,即让人人都来关注质量,以及提前预防问题的发生。
《Google软件测试之道》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 探究 Nginx 中 reload 流程的真相
今天这篇文章主要来介绍下 Nginx 的 reload 流程.实际上在之前文章中,在更改了 nginx 配置文件时,我们都会执行 nginx -s reload 命令,我们执行这条命令的原因是希望 n ...
- 打开TXT文件并显示
<!DOCTYPE html> <html> <head> <title></title> <script> function ...
- 使用Vim编辑器,如何退出
我们输入“冒号”,即":"(不需双引号),在下方会出现冒号,等待输入命令,我输入的是WQ.功能如下. W:write,写入 Q:quit,退出 再回车,就保存退出了 其实,保存退出 ...
- 代码检查又一利器:ArchUnit
Code Review总是让人又爱又恨,它可以帮助我们在提测之前发现很多代码中比较"丢人"的问题,但是,Code Review通常会比写代码更加耗费精力,因为你需要理解别人的代码, ...
- 深入解析Java反射
因为本人最近正筹备Samsara框架的开发,而其中的IOC部分非常依靠反射,因此趁这个机会来总结一下关于Java反射的一些知识.本篇为基本篇,基于JDK 1.8. 一.回顾:什么是反射? 反射(Ref ...
- html5 websocket 示例,websocket在线聊天,php websocket实例
WebSocket在线测试工具 http://ws.douqq.com/ 1.连接格式为 ws://IP/域名:端口(示例ws://119.29.3.36:5354) 2.对于内网的测试环境,只需填入 ...
- 安装完PyCharm,启动时弹出Failed to load JVM DLLbinserverjvm
安装完PyCharm,启动时弹出"Failed to load JVM DLL\bin\server\jvm.dll"解决方案 问题描述:打开PyCharm时,弹出"Fa ...
- SpringBoot电商项目实战 — Zookeeper的分布式锁实现
上一篇演示了基于Redis的Redisson分布式锁实现,那今天我要再来说说基于Zookeeper的分布式现实. Zookeeper分布式锁实现 要用Zookeeper实现分布式锁,我就不得不说说zo ...
- RabbitMQ 离线安装(带视频)
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...
- Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...