同时,专业的测试人员和专业的开发人员一样,都是要经常系统、完善的培训才能正式以一名合格的测试人员的身份上岗的,所以说,不能单纯的去怀疑Tester对测试的专业性……
“2)减少沟通,扯皮,和推诿
想想下面的这些情况你是否似曾相识?
QA 做的测试计划,测试案例设计,测试结果,总是需要 Dev 来评审和检查。(不是说测试需要依赖开发,这是本身的一个沟通、交流,是保证质量的一个流程需要,在CMMI\ISO中是有明文的规定的)
QA 在做测试的过程中,总是需要 Dev 对其测试的环境,配置,过程做指导。(这个是为了保证测试的正确性,要是因为配置不正确而导致误报,当如何?)
QA 总是会和 Dev 争吵某个问题是不是 BUG,争吵要不要解决。(是不是缺陷需要相互沟通,需要判断优先级,需要参考需求,需要领导定夺,而不是开发和测试的吵,凡事要有依据)
无论发现什么样的问题,总是 Dev 去解决,QA 从不 fix 问题。(Tester fix Bug?部分的缺陷是可以,如果他有开发的经验,但你会放心么?项目经理能放心么,术业有专攻)
我们总是能听到,线上发生问题的时候,Dev 的抱怨 QA 这样的问题居然没测出来(出现漏测,是双方的责任,不要想到推诿责任,这样的人不仅人品存在问题,连职业道德也值得重新审视)
QA 也总会抱怨 Dev 代码太差,一点也不懂测试,没怎么测就给 hand over 给 QA 了。(所以说开发要懂测试,提高交付质量,避免低级错误,但有偶尔有也是可以理解的,人非圣贤嘛)
QA 总是会 push Dev,这个 bug 再不 fix,你就影响我的进度了。(相互理解、支持)
等等,等等。
如果没有 QA,那么就没有这么多事了,DEV 自己的干出来的问题,自己处理,没什么好扯皮的。
而一方面,QA 说 Dev 不懂测试,另一方面 Dev 说 QA 不懂技术,而我们还要让他们隔离开来,各干各的,这一点都不利于把 Dev 和 QA 的代沟给填平了。要让 Dev 理解 QA,让 QA 理解 Dev,减少公说公有理,婆说婆有理的只站在自己立场上的沟通,只有一个方法,那就是让 Dev 来做测试,让 QA 来做开发。这样一样,大家都是程序员了。”
(扯皮,多么俗的字眼,当然不是说这种情况没有,但这种情况是不应该的,还是那句:相互的沟通、相互的理解、统一的目标很重要)
“3)吃自己的狗食
真的优秀的开发团队都是要吃自己狗食的。这句话的意思是——如果你不能切身体会到自己干的烂事,自己的痛苦,你就不会有想要去改进的动机。没有痛苦,就不会真正地去思考,没有真正的思考,就没有真正的进步。
在我现在的公司,程序员要干几乎有的事,从需求分析,设计,编码,集成,测试,部署,运维,OnCall,从头到尾,因为:
只有了解了测试的难度,你才明白怎么写出可测试的软件,怎么去做测试的自动化和测试系统。
只有自己真正去运维自己的系统,你才知道怎么在程序里写日志,做监控,做统计……
只有自己去使用自己的系统,你才明白用户的反馈,用户的想法,和用户的需求。
所以,真正的工程师是能真正明白软件开发不单单只是 coding,还更要明白整个软件工程。只明白或是只喜欢 coding 的,那只是码农,不能称之为工程师。”
这段的理解,说明文章作者对开发者自测还是有比较深的理解,比较重视的!
一个优秀的程序员,不,应该是工程师,要知道的、要做的还是很多的!
“关于 SDET。全称是 Software Development Engineer on Test。像微软,Google, Amazon 都有这样的职位。但我不知道这样的职位在微软和 Google 的比例是多少,在 Amazon 是非常少的。那么像这样的懂开发的专职测试可以有吗?我的答案是可以有!但是,我在想,如果一个人懂开发,为什么只让其专职做测试呢?这样的程序员分工合理吗?把程序分成两等公民有意义吗?试问有多少懂开发的程序员愿意只做测试开发呢?所以,SDET 在实际的操作中,更多的还是对开发不熟的测试人员。还是哪句话,不懂开发的人是做不好测试的。”
虽然我对上面的“不懂开发是做不好测试的”这句话表示同意,但反过来我是不能同意的,是存在需求(业务)测试工程师,也就是说他们不懂开发,但相当的精通业务、需求
只要是对工作、对最终的目标是合理的,那么怎样的工作都是需要人去完成的,所以不要认为做哪样工作就不怎么的,这个可以做为你奋斗的动力,但不能作为评价一个人的标准
“如果你说 Dev 对测试不专业,不细心,不认真,那么我们同样也无法保证 QA 的专业,细心和认真。在 Dev 上可能出现的问题,在 QA 也也会一样出现。而出了问题 QA 不会来加班解决,还是开发人员自己解决。所以,如果 QA 不用来解决问题,那么,QA 怎么可能真正的细心和认真呢?”
是的,都会出现问题,开发人员开发代码时会出现问题,所以需要测试;测试人员测试会出现问题,所以需要开发人加班加点解决问题;而往往两者都会出现问题
在这个问题上作者陷入了一个死循环中,记住“没有成功个人,只有成功的团队”
“如果你说不要 QA 的话,Dev 人手会不够。你这样想一下,如果把你团队中现有的 QA 全部变成 Dev,然后,大家一起开发,一起测试,亲密无间,沟通方便,你会不会觉得这样会更有效?你有没有发现,在重大问题上,Dev 可以帮上 QA 的忙,但是 QA 帮不上 Dev 的忙。”
首先肯定作者话,如果能从开发中转过来部分专业的测试人员,这样对于项目肯定是有帮助的,但我们仍然需要质量管理体系来管理,通过流程来保证我们的产品/项目质量
从文章作者的言语中可以看到他作为开发人员的优越性,而这种优越性容易造成的结果是:“我不应该来做这个事,我可以做更高级、更有难度的事”
有人说态度决定一切,虽然我不太赞成这句话,但我也明白一个人的能力重要,一个人的心态也很重要
最后,让一个优秀的开发人员做测试确实有些浪费,公司损失不起