我们需要专职的QA吗(3)

发表于:2012-04-25来源:博客园作者:qileilove点击数: 标签:qa
同时,专业的测试人员和专业的开发人员一样,都是要经常系统、完善的培训才能正式以一名合格的测试人员的身份上岗的,所以说,不能单纯的去怀疑

  同时,专业的测试人员和专业的开发人员一样,都是要经常系统、完善的培训才能正式以一名合格的测试人员的身份上岗的,所以说,不能单纯的去怀疑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 的忙。”

  首先肯定作者话,如果能从开发中转过来部分专业的测试人员,这样对于项目肯定是有帮助的,但我们仍然需要质量管理体系来管理,通过流程来保证我们的产品/项目质量

  从文章作者的言语中可以看到他作为开发人员的优越性,而这种优越性容易造成的结果是:“我不应该来做这个事,我可以做更高级、更有难度的事”

  有人说态度决定一切,虽然我不太赞成这句话,但我也明白一个人的能力重要,一个人的心态也很重要

  最后,让一个优秀的开发人员做测试确实有些浪费,公司损失不起

原文转自:http://www.ltesting.net