微信号:grzlwx

介绍:光荣之路官方资讯

嘿,那你说我们需要专职的QA吗?(Ⅲ)

2015-08-04 23:01 光荣之路


“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 的忙。”

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

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

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

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

“第三方中立,你会说人总是测不好自己写的东西,因为有思维定式。没错,我同意。但是如果是 Dev 交叉测试呢?你可能会说开发人员会有开发人员的思维定式。那这只能说明开发人员还不成熟,他们还不合格。没关系,只要吃自己的狗食,痛苦了,就会负责的。”

思维定式、个人习惯、自我保护意识是三个魔鬼

当然测试人员也有这三个魔鬼,所以测试负责人在安排测试时,一般会交叉测试,具体的涉及到测试策略的问题,就不在这里说了

越多的测试越能保证产品的质量,所以一般都会要求开发人员对自己的程序进行测试,会有代码评审,会有同行评审,其中的原因也就不言而喻

“磨刀不误砍柴功。如果你开发的东西自己在用,那么自己就是自己天然的 QA,如果有别的团队也在用你开发的模块,那么,别的团队也就很自然地在帮你做测试了,而且是最真实的测试。”

说的没有错,是测试,但是不完全的测试,对于质量我们追求的是质量的零缺陷,虽然那不可能实现,而实现的基础是专业、系统、完整的测试

“关于自动化测试。所谓自动化的意思是,这是一个机械的重复劳动,我想让测试人员思考一下,你是否在干这样的事?如果你正在干这样的事,那么,你要思考一下你的价值了。但凡是重复性比较高的机械性的劳动,总有一天都会被机器取代的。”

知道为什么人没有被机器人替代么?
因为人有无穷无尽的思想

“关于线上测试。我们都知道,无论自己内测的怎么样,到了用户那边,总是会有一些测 试不到的东西。所以,有些公司会整出个 UAT,用户验收测试。做产品的公司会叫 Beta 测试。无论怎么样,你总是要上生产线做测试的。对于互联网企业来说,生产线上测试有的玩A/B测试,有的玩部分用户测试,比如,新上线的功能只有 10% 的用户可以访问得到,这样不会因为出问题让全部用户受到影响。做这种测试的人必然是开发人员。”

UAT是用户会要求进行的,如果不做接收测试,客户不满意你的项目,后期的款项如何收回?

Beta测试一方面是通过线上的真实情况,检查程序的功能、性能,同时也是对市场的试探、对用户的试探,观察市场、用户对产品的响应,为公司的后期决策做以参考。

写在结尾:
对于你的耐心,Tester Chen很感谢,成文时间仓促,如有不妥,希望留下你宝贵的意见、建议。

(作者:Tester Chen 来源:http://www.cnblogs.com/hncjp1989/archive/2012/04/12/2443706.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 它是什么? IPv6迁移过程当中踩的坑 JSPatch 实现原理详解 脱颖而出的背后,大都包含一段艰辛的历程! 微软予力青年创客,激发新一代创新能量