我们需要专职的QA吗?
作者:网络转载 发布时间:[ 2012/4/17 11:48:39 ] 推荐标签:
另外,我始终不明白,为什么不做开发的QA会比Dev在测试上更专业? 这一点都说不通啊。
2)减少沟通,扯皮,和推诿
想想下面的这些情况你是否似曾相识?
● QA 做的测试计划,测试案例设计,测试结果,总是需要Dev来评审和检查。
● QA在做测试的过程中,总是需要Dev对其测试的环境,配置,过程做指导。
● QA总是会和Dev争吵某个问题是不是BUG,争吵要不要解决。
● 无论发现什么样的问题,总是Dev去解决,QA从不fix问题。
● 我们总是能听到,线上发生问题的时候,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的,那只是码农,不能称之为工程师。
4)其它问题
● 关于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的忙。
● 第三方中立,你会说人总是测不好自己写的东西,因为有思维定式。没错,我同意。但是如果是Dev交叉测试呢?你可能会说开发人员会有开发人员的思维定式。那这只能说明开发人员还不成熟,他们还不合格。没关系,只要吃自己的狗食,痛苦了,会负责的。
● 磨刀不误砍柴功。如果你开发的东西自己在用,那么自己是自己天然的QA,如果有别的团队也在用你开发的模块,那么,别的团队也很自然地在帮你做测试了,而且是真实的测试。
● 你可能会说吃狗食是个笑话,因为如果是我,我把干烂的事,离职走人了,让别人去吃我的狗食。这个在现实中的确会发生,也是很现实的。但是想一想,你为什么在一开始让他把事干烂了?另外,如果你的团队在设计评审和代码评审里没有把好关,让某人把事给干烂了,那么这个人的离职带来的问题还是这个团队来抗,于是整个团队都在吃自己的狗食,挺公平的。痛苦过一次,你的团队下次怎么干了,不敢乱招人了,不敢随意评审代码了,不敢让人只做一块东西了。终还是没有逃脱吃狗食的范畴。
● 关于系统集成测试。所谓集成测试,是把多个开发团队开发的模块集中起来测试。因为开发人员可以无法看到全局,不了解别个团队的系统,所以需要有统管全局的专职的QA进行测试。对这个方面,我并不反对,在实际操作过程中,好像的确用专职的做集成测试的QA更有效一些。不过,这还是不能让我停止去思考两个问题,1) 如果开发人员看不到全局,他能开发出更好的软件吗?2)这个全职的做集成测试的QA难道不能是各个团队的骨干Dev来组成吗?
● 关于自动化测试。所谓自动化的意思是,这是一个机械的重复劳动。我想让测试人员思考一下,你是否在干这样的事?如果你正在干这样的事,那么,你要思考一下你的价值了。但凡是重复性比较高的机械性的劳动,总有都会被机器取代的。
● 关于线上测试。我们都知道,无论自己内测的怎么样,到了用户那边,总是会有一些测试不到的东西。所以,有些公司会整出个UAT,用户验收测试。做产品的公司会叫Beta测试。无论怎么样,你总是要上生产线做真正测试的。对于互联网企业来说,生产线上测试有的在玩A/B测试,有的玩部分用户测试,比如,新上线的功能只有10%的用户可以访问得到,这样不会因为出问题让全部用户受到影响。做这种测试的人必然是开发人员。
好吧,我暂时写这么多,我会视大家的讨论再补充我的观点的。
相关推荐
最新发布
性能测试之测试环境搭建的方法
2020/7/21 15:39:32软件测试是从什么时候开始被企业所重视的呢?
2020/7/17 9:09:11Android自动化测试框架有哪些?有什么用途?
2020/7/17 9:03:50什么样的项目适合做自动化?自动化测试人员应具备怎样的能力?
2020/7/17 8:57:06几大市面主流性能测试工具测评
2020/7/17 8:52:11RPA机器人能够快速响应企业需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消灭吗?为什么?
2020/7/17 8:43:03软件测试基本概念是怎么来的?软件测试生命周期的形成历经了什么?
2020/7/16 9:11:10