转:google测试分享-GTA
原文: http://blog.sina.com.cn/s/blog_6cf812be0102viuh.html
上一次分享了google测试分享-分层测试,有很多自动化测试的策略和实施都要有一个重点和计划,那这次会把google是如何来对SUT制定测试计划的分享下。
为了让这些blog分享更有逻辑性,我打算分几个专题来分享google测试相关的测试理念。
google测试分享-GTA
google测试分享-测试经理
google测试分享-问题和挑战
google测试分享-未来测试
在讲GTA之前,必须先讲下测试计划,而测试计划对于很多人来说都不陌生,很多测试书籍里面都会描述如何编写一个好的测试计划,需要考虑多少内容,当然,这个也是测试工程师面试的必备题目。在这里,我只想引用某个大师说的话:测试计划本身的价值不是测试计划最后的文档,而是制作测试计划的过程。我还想让大家知道的是James bach有个很好的指导书,就是关于如何编写测试计划的。参考下面的图:
《测试计划图》
这里可以看到制定测试计划的过程很负责,需要考虑很多因素,某些因素都会影响着计划的有效性,虽然实际工作过程中,我们不可能一步步按照上面的方法去check这些因素,但是其思想和意识是值得大家思考的。相信各自团队都有自己的测试计划模板,里面会涉及到很多的内容。一般来说,测试计划包含:及时地更新、描述了软件的目标和卖点、描述了软件的结构、各种组件和功能特性的名称、功能和操作简介。而且测试计划还必须要避免散漫的文字,推荐使用简明的列表;不必推销;保持内容简洁;不要把不重要的、无法执行的东西放进测试计划;多采用渐进式的描述;真正的指导计划者的思路;当然最终结果应该还是测试用例。但是我这里还想强调三点:
第一点是这个看起来非常全面的测试计划模板是传统行业测试的测试模板,不适合互联网产品测试的特点,之前做完一个项目的测试计划需要2-3天,其中过程中就不说了,现在采用敏捷方式来做项目,测试计划只需要2-3个小时就完成了,更多的也是类似于one page plan。
第二点是真正体现价值的不是最后输出的测试计划结果,而是得出这样的计划的过程,其中有多少是融合了执行计划、策略、范围、风险以及项目上下文背景信息。
第三点是我们是否充分的了解测试计划的共享性、有效性、可变性、以及在测试阶段的引导性,这个说起来比较玄乎,其实这个是实时在在发生的,测试执行整个周期,我们的计划肯定是改变的,都是我们体现出来了吗;灵活变化的结果是否得到一致认可;怎样让计划和风险和范围灵活变化且受控制;怎样提前预估风险和计划的差异性等。
同样的,google也同样认为测试计划是最早出现、最先被遗忘的测试产物。但是google测试理念更加认为测试文档的作用不可扩大化,测试人员不应该对测试文档过于珍爱,大家最关心的是代码库,包括测试代码库。
为了充分的了解被测产品,google开发了一个测试计划工具GTA来展现被测产品和测试计划的关系。GTA:Google Test Analytics 来记录计划里面的ACC(特质、组件、能力),这也是个开源工具:https://code.google.com/p/test-analytics/。当测试人员完成一个被测系统的ACC设置后,有几个测试策略可以参考:
(1)使用10分钟编写测试计划:花费30分钟左右,80%的完整性
(2)分组展示产品能力,按照测试组进行bug bash,或帮助执行探索式测试执行的计划
(3)我们无法避免风险,但是我们首先需要进行风险分析,考虑两个要素:失败频率和影响。然后进行打分。风险分析的目标不是对一个风险给出一个精确的值,而是要识别一个可执行的有优先级的执行计划。
(4)邀请开发、PM、运营、PD、管理层一起review风险。
(5)TE是缓解风险活动的协调人,决定对风险较大的领域进行内部测试,要求SWE和SET增加回归测试。也可以借助dogfood用户、beta用户以及众包进行测试
(6)TE仔细思索高风险的区域,咨询可能的回滚和恢复机制。同时对风险最高的领域负有个人责任,必须编写测试指导。
(7)对于风险较低的区域,可以降低要求,为这些区域编写特定的测试用例是得不偿失的,我们更多的是选择探索式测试,或众包测试。
(8)按照风险顺序进行测试。原则:如果不能全测,就先测最重要的,也就是风险最大的。
补充一下,风险因子里面的失败频率包括:罕见、少见、偶尔、常见。影响包括:最小、一些、较大、最大。
(9)TE在了解了SET和SWE的测试后,评估这些测试对风险的影响,实时改变测试计划和策略。对于高风险区域的每个bug都应该有一个回归测试用例与之对应。
为了更多的引导开发自测以及团队质量意识的培养,google测试团队对一个开发团队进行测试认证,完成了一系列的测试任务。SET或TE可能会变成测试认证教练。
google的TE在编写测试用例时,需要对TC进行标签化,创建的时候设置name、content、public fables/ private fables。另外,对于用户反馈的bug,使用了聚类算法来自动识别充分记录并确定最频繁的问题。而测试人员自己发现bug后,应该花些时间细细品味。不仅仅是有权利享受自己劳动的果实,而且,理解此bug微妙的细小差别及其出现的条件是很重要的。还应该找同伴来分享他的发现。
现在再来了解下GTA,GTA是根据项目的ACC得到项目的风险热图,再进行内部数据库的绑定,比如bug数据库、代码树、测试用例的位置或查询,随着这些指标的变化,通过简单的线性代数来自动更新风险级别。GTA 包括这些内容:项目规格(项目介绍、ACC);风险(总览);导入数据(测试用例、bug、checkins);数据设置(数据源、数据筛选)。
GTA 可以很快的把能力列表变成一次测试执行,包括了一个简单的概要测试用例列表。GTA可以帮忙TE根据测试执行背后的ACC矩阵来分配测试人员。GTA旨在使风险分析足够的简单和实用,以便人们能够真正的用起来。
为了最高效的做web产品测试,google设定了一个零成本测试流程:通过GTA进行测试计划;测试覆盖度,Quality Bot区分回归和新特性,区分手工和自动化测试;bug评审,利用BITE来快速判断;探索式测试,外包和早期用户执行;bug提交,SUT里面进行bug快速提交;Bug triage和调试;重新部署新版本回到第一步。
上面是大概说了下google是如何使用GTA来管理整个测试阶段,特别是测试计划的安排,总的说来,流程开放、简单、直接、有效。希望大家对google如何进行测试计划和测试管理有一定的了解。下期准备分享google测试经理是如何带领团队进行测试技术创新和团队管理的,google测试分享-测试经理。
转:google测试分享-GTA的更多相关文章
- 转:google测试分享-问题和挑战
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vxer.html 前言:这个系列分享的内容大部分都是出自于<google是如何测试的>的书, ...
- 转:google测试分享-测试经理
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vode.html 前言:这个系列分享的内容大部分都是出自于<google是如何测试的>的书, ...
- 转:google测试分享-分层测试
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vctg.html 上一次分享了google测试分享-SET和TE,有一些自动化测试的细节没有说清楚,那这 ...
- 转:google测试分享-SET和TE
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vbnb.html 前端时间看了google测试之道,收获了一些,在此总结下并打算写一个系列blog,顺 ...
- Google测试分享-测试经理
首先大家可以思考下,google的测试经理角色必须具备什么样的能力.据不完全统计,google的测试经理,超过一半之前都做过TE的角色(大家可以想想为啥):对于与被测产品相关的任何使用问题,测试经理都 ...
- 网易测试分享会——“一起打造你想要的QA团队”
昨天(2016.11.30)参加了网易资深测试专家王晓明的测试分享会——“一起打造你想要的QA团队”,以下为笔者做的归纳总结. 重点 1.让测试更加容易做好.不容易测试的代码,不具有健壮性. 2.Ke ...
- 缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo
此文已由作者王婷英授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 缓存,看到这两个字,第一反应,最近怎么又要弄缓存的改造啊,这个测试好复杂,一不不留心就踩一个线上bug.实在 ...
- Google测试精华文章(1) - 测试行为,而非实现
Your trusty Calculator class is one of your most popular open source projects, with many happy users ...
- Google大牛分享的面试秘籍
我憋了很长时间想写点关于去Google面试的秘籍.不过我总是推迟,因为写出来的东西会让你抓狂.很可能是这样.如果按统计规律来定义“你”的话,这文章很可能让你不爽. 为啥呢?因为啊……好吧,对此我写首小 ...
随机推荐
- Oracle Parameter使用
string sqlStr = "update sys_case t set t.content =:CONTENT,t.property=:PROPERTY where id=:ID&qu ...
- 《Linux内核设计与实现》学习总结 Chap1~2
第一章 Linux内核简介 一.历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统 ...
- 【Python3的进制扫盲】
一.进制 1.进制简介 进制就是进位制,是人们规定的一种进位方法.计算机底层的数据运算和存储都是二进制数据.计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别. 2.常用进制 对 ...
- Android APK打包流程
简单build流程图 官网给了我们一张非常简单的编译.打包.apk生成内容以及签名的图片.图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容 ...
- 使用Java解析XML文件或XML字符串的例子
转: 使用Java解析XML文件或XML字符串的例子 2017年09月16日 11:36:18 inter_peng 阅读数:4561 标签: JavaXML-Parserdom4j 更多 个人分类: ...
- 使用 openssl 生成证书(转)
一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现.官网:https://www.openss ...
- 对SLIP,PPP,PPPoE,EtherNet的理解。[zz]
经常看到PPP,PPPoE这些名词,当时也查了不少的资料,但是一直不太理解这是什么东西,干什么用的,今天静下心来,多看了点资料,有了一些初步理解,记录下来,以后有了新的理解再修改. 首先,SLIP ...
- bzoj 1510 [POI2006]Kra-The Disks 二分
1510: [POI2006]Kra-The Disks Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 466 Solved: 272[Submit][ ...
- mysql 给用户赋值权限
解决办法 grant all privileges on *.* to joe@localhost identified by '1'; flush privileges; 拿 joe 1 登陆 附: ...
- JS数组---转及补充--
javascript之数组操作 1.数组的创建 var arr=Array();//写的角标数及直接写角标对应的内容简写 var arr=Array("我","爱&quo ...