在前述的文章中对独立测试无用论做了“激烈”的回击,支持者有之,反对者有之,总之能引起大家的思考就好。这篇我打算写温和一点的内容,那就是,反向思考,为什么有些独立测试不招人待见?如果从独立测试工程师自身出发,我们应该如何避免做“庸俗”的测试工程师?以下是观点:
1、做发动机,不做拖油瓶。
当码农那年,刚开始进一项目,对面的核心开发就开始被一个测试大哥“骚扰”,此测试大哥言谈高调,目光如炬,最善发现类似页面俩空格只有一个,俩输入框不该在一行这类问题。
发现UI错误本身没错,确实现在好多页面的界面也够呛。但是,哥,咱们是在项目的前期啊,开发脑子里都是核心业务如何实现,三个表四百个字段怎么高效操作,你确定他们该停下来改UI吗?
UI是重要,UAT(客户验收测试)之前抽个几天就可以做出很大改进,不是吗?
团队利益的核心是什么?按时交付。而测试人员的价值是:项目高质量交付。那么团队利益和测试利益在根本上就可能冲突。这还怎么一块过?......其实也能过。男人的价值观和女人还不一样呢,那么多两口子不也一过一辈子。
所以,后来做测试经理和团队负责人时,在项目前期,都要求测试人员提高对这类UI、易用性缺陷的容忍度,这么做有两个好处:
第一, 开发和测试在前期不会因为这些问题争执不下,前提是,开发人员必须耐心的给核心测试讲清楚,现在重要的是什么。小问题不一定不重要,什么时候你准备把这些东西拾起来?
第二, 测试人员避免心理收到打击:为什么我辛苦测试出来的bug没人重视。在这种时候,耐心的把项目的情况解释清楚,测试人员一般都会接收团队价值。
不做拖油瓶测试,核心的要求就是:你得知道项目处于什么阶段,最大的风险是什么,该做什么不该做什么,不该做的什么时候捡起来做。
在最极端情况下,测试组的结论是“产品质量是狗屎,不能发布”,但是项目经理的要求是“一定要发布,除非从老子尸体上踩过去”,那怎么办?
三国中关羽失荆州被杀,刘备大怒准备伐吴,诸葛亮劝谏不可,刘备不听,最后果然刘备大败。
大概,项目经理有更高的诉求,测试所为,只能是把情况列出,含泪再拉一把:主公,我们还是准备准备在Release吧…Orz
现实就是这样,决策就有风险,测试就是提供决策支持,至于听不听,结局如何,只能让历史去评说了。
PS: 文中那位测试大哥,真心不适合做测试,适合去当公务员,当那个圈儿的人,最后他还真去事业单位了。
2、做谢耳朵,不做软耳朵。
以前面试测试工程师的时候,很喜欢问一个问题,如果你提的bug,开发人员激烈反对,你怎么办?
注意!这个问题没有标准答案。只是想通过测试人员的回答检验他们对于反对意见的处理方式。
软耳朵测试要不得:开发说这不是bug,这是特性,好吧那就是特性;开发说这是你用的方式不对,好吧那就是方式不对;开发说这是你点鼠标的姿势不对,好吧那就是姿势不对;开发说测试没技术含量,好吧那就是没技术含量;开发说不需要测试,好吧那就不需要测试!
拜托,拿着这样的测试人员写出来的报告,你晚上能放心的睡觉?
个人喜欢有点小强迫症的测试工程师:不能复现的一定想办法复现;开发不接受的一定要据理力争,真理是越辩越明。
看生活大爆炸吗?里面的谢耳朵最多人喜欢,他有时候够讨厌,但是他的观点很多时候也最有价值,不是吗。
3、不抱怨。
哥上大学的时候最讨厌的那种人就是:整天自言自语,如果运气好一点就去清华了~~喵的,有那功夫倒是退学去复读啊?
有些庸俗的测试工程师,整天把如下的话挂在嘴边:
唉,我的工作还真的是没有技术含量。
如果我运气好一点我就去做开发了。
我的工作好重复。
整天吐槽这些,你还不如放弃测试,去随便做个什么你认为可以解放你的职位。哪些你没有从事的职位就那么好?
你说工作充满重复,可你知道那些话剧大师的台词重复了多少遍?
你说开发有技术含量,可你知道get,set一千遍一点技术含量也没有吗?
我尊重那些即使大部分是重复,仍然兢兢业业不放过任何细节,自己寻找新意的工程师;尊重那些别人都在无所事事给淘宝做人肉压力测试时,自己默默在画bug鱼骨图的工程师;尊重那些真正热爱这个职业,维护这个职业的人。
有句话叫做,世间三件好:别人家的饭菜,别人家的媳妇,别人家的工作。
4、争论,不争吵。
我们的工作就是给人挑茬,正常人被找茬都会下意识的反应:md,老子才没有错。差别就是年轻开发会张嘴而出,成熟开发会在心里默念一遍然后给你一个职业的笑脸。所以开发和测试经常吵起来,所谓的小吵怡情,大吵伤身,一定要在可控范围。
如何要做到争论而不争吵,借用捷克政治家哈维尔的论坛讨论守则(个人不同意他的不少政见,但是支持几个观点)
《对话守则》: a. 对话的目的是寻求真理,不是为了斗争。 b、不做人身攻击。 c、保持主题。 d、辩论时要用证据。 e、有可能承认自己是错的。 f、要分清对话与只准自己讲话的区别。 g、对话要有记录。 h、尽量理解对方。
另外加一条,能在工程师级别解决的,就不要交给你的老板…
我觉得很多测试和开发之间的矛盾,实际上是沟通的方式不对。就开发人员来说,他们只是不太善于沟通,他们真的是一些单纯的好人?
因为写用例的习惯,一篇争取只有一个观点,但是“庸俗”测试者真的是一个大话题,这篇内容多一点,忍耐这看吧。后续对这个话题,我再补充。
PS:有一个工程师有天问,如果把开发和测试对等于工地上的职位,开发是码砖的,测试就是质检或者监理吗?我回答,错误,开发是码砖的,那测试就是那个抹泥的。开发测试是配合关系,绝不是管理关系。