原文发布于 2012 年 5 月 8 日
选择测试之路——路上的迷茫
2010 年 12 月 31 日,在网易从事了多年开发之后,依依不舍地离开,面临的是一个完全从零开始的全新职位:SQA,也就是 tester。
当时对为什么被选择做软件质量保证,而不是继续在研发上进取,持有保留态度:凭什么要我转,不是别人?这个时候,多年的伙伴、领队——雷叔就把我的优点暴露出来了:认真、心细、负责;好吧,基于以上几点,只有 "我行",只能给力了。
从心底里,对质量管理、SQA 等概念,我并没有多想,因为根本想不了,脑子里面没有太全面的认知,即使雷叔讲过一些,我还是觉得不够全面,不知道业界是如何做的?所以心里多多少少有点担心!
几个人成立一个新团队,什么都是从零开始,关键还是要有一些流程,这几年开发中也积累了些经验,总结了些问题。在 12 月底,我提交了《软件质量保证第一季度计划》,这个计划后来也成为了整个质量保证体系的核心,大概纲要如下:
2011 年 1 月 25 日,苦于没有规范的流程,做起事来还是不够顺畅,在奋战多日之后,制定了《产品研发质保流程手册》,简单来说,划分了:需求、开发、发布三个阶段,每个阶段定义验收的产物。为什么要制定这个?必须有章可依,否则步伐不稳健,走的再远,也会乱。
道路上,难免遭遇坎坷,要不断提升自己,也有三点切身体会:
同时,在调研期间,我意识到持续集成很重要,并按照当前的需求,重点关注以下几点:持续测试、持续审查、持续反馈。
图:早期的开发、测试流程原型图
无悔选择测试之路——路上的抉择、进取
有了流程规范,接下来是实施和持续改进。这些规范运用在一个项目上,先做了三个月,不停地测试,编写功能测试用例,也走了 2 条弯路:
事后想想,那段日子锻炼了什么?那三个月无法忘记,每天高强度测试,用的最多的就是:功能测试(边界值、场景法),白盒测试。其实就是锻炼了测试的基础技能和流程管理。
后来测试管理流程逐步建立起来,但是在测试过程中,应当如何提高代码质量?这个阶段我们参考了 敏捷开发中高质量 Java 代码开发实践 ,做了一些适合团队的改进,见下图:
图:质量提升的模式
这种迭代版本中 Java 代码质量提升的模式,已经采用了将近一年,非常有效。
同年 Q2,我们对测试管理进行了改进,其中是受到 @段念 - 段文韬 《组织敏捷测试》 影响,采用类似 "一页纸计划" 的测试文档(在此要感谢 @段念 - 段文韬 )在 redmine 进行管理。之前每次整理测试计划,发送给开发人员,实际上耗费了一些时间,并且成效不大,现在的任务:需求、开发、测试,全部交给 redmine 管理,所有事情一目了然,对任何人都是可见的,有没有完成,进度如何,非常清晰。
为了规范整个开发测试流程的管理,包括开发、测试的交互,我们又制定了轻量级的 SQA 框架,见下图:
图:最初制定的 SQA 框架
不过此后这个框架也发生了比较大的变化,做得更好、更轻量级。无独有偶,我偶然的机会买了一本 @朱少民老师 的: 《全程软件测试》 ,发觉这个 SQA 框架也是渗透到目前的每个环节,更适合目前团队的 scrum 模式,在此也要感谢 @朱少民老师,真是相见恨晚,不然可以少走很多弯路!!!
大家可能会问:Scrum 模式、用户故事,测试人员怎么利用?为什么想到这个?如果遗漏了测试场景,团队会很不爽,怎么避免呢?结合 @Aullyxiao 的 《软件测试之魂》 提到分层测试的想法,想了想,还可以这么整:
图:分层测试图
对于目前的开发架构来说,一个用户故事,涉及这四个点,可以从这四个点入手来进行质量保证。如何做呢?单元测试就开发人员处理了;代码审查,测试人员可以参与和监督,其实就是要保证:将开发任务与提交到 SVN 的代码进行关联。这样一来,当测试人员检查开发任务的时候,就可以找到改变过的代码。我曾经试过从这些代码里面查看逻辑,找到分支场景,补充到测试用例里面。
在此期间,我还看过 @架构师 Jack 原创的《功能测试用例基础设计模型》,这个文档 2 天转发已超过 150 次,我也向所有同行推荐该测试设计模型实例化的测试用例,供大家消化该设计模型。想要的朋友可以去微盘下载 《功能测试基础设计模型(24 个设计方法的实例化用例)》 。
我当时还借鉴了 @季哥来自淘宝 的《探索式测试》系列文章,包括: 《探索式测试的秘密——记在淘两年》 、 《组合测试法中的全对偶测试法》 、 《探索式测试实践之缺陷大扫除和结对测试》 。
当然这么多东西,我觉得自己还需要时间来消化。
继续测试之路——路上的风景
也许会有人问:有没有后悔做 tester?
我过去也常问自己:做得开心吗?产品质量提升了吗?看到自己的前景了吗?找到 high 点了吗?
现在我可以回答:OK,我做到了,并且还可以持续做得更好。
可能有很多测试人员会问:测试人员的价值到底何在?在这里,我套用和整合 @朱少民老师的一些术语,给出我的回答。
我认为,Scrum 中测试人员价值应当体现在:
测试人员,应当在自己的道路上看到风景,以前作为开发,写好一个功能,很 high;测试人员也要有这种心境,提高了产品质量,预防了缺陷,很 high。找到自己的 high 法,才可以把测试玩得更爽 ,我知道 @朱少民老师 、 @季哥来自淘宝 、 @段念 - 段文韬 、 @架构师 Jack ,都玩得很爽,但是有一点:要爽得靠自己,多跟高手交流,有利于提升自己,但是不要刻意复制别人成功的经验,因为每个团队的模式和环境不大相同。
总结
每个人离开自己熟悉的领域,投入到新的领域中(说实在软件测试也囊括了开发领域),必然存在一些迷茫,不知如何入手,身边如果有一个靠谱的高手,指点一下,眼前将会一片明亮。可惜,现实总是残酷的,往往很多时候,都要靠自己去摸索,只有经历了、深刻体会了,才知道如何改变,以及如何迎接新挑战,调整到恰到好处的心态。这样子,才能够稳健进入转型的轨道。不要害怕改变和投入,一定要坚定信念,在前进的道路上,多参考同行的成功经验: @朱少民老师 、 @段念 - 段文韬 、 @季哥来自淘宝 、 @架构师 Jack 、 @Aullyxiao ,迎合团队价值,不断修正自己的偏差,走出一条华丽的直路!
我很庆幸,经历了一个测试团队从无到有的创建,同时也帮助开发人员掌握了一些测试的基本技能,用于推进质量保证,让整个团队达到共识。现在的我,只是刚过了转型的痛苦期,测试工作也仅仅是刚刚开始,还有很多有意义的事情需要去做。
路漫漫其修远兮,吾将上下而求索!
来源: https://kb.cnblogs.com/page/141729/