本文共 2716 字,大约阅读时间需要 9 分钟。
我猜想和踢足球类似,还是那几个原因:
人太牛: 不世出的天才,例如高德纳写书时发现排版软件不好用,就自己写了一个。也没听说他为这个软件项目请了什么独立测试人员。对了,他不读Email,有秘书帮他处理这些事——这也是一种分工!
有些软件工程师是在后台钻研和开发高难度的算法,或者做某种后台的处理工作,这个工作本身的难度较高,测试主要是自己通过工具完成。如果一定要找一个测试人员,这个测试人员的水平要相当高才行,如果水平那么高,那就不如也一起参与开发就好了。
事太小:“我写了个小类库,全部自己测试”,这当然不错。
但是如果由此论点出发,大力顺水推舟,推广到所有情况,从而得出“程序员就应该自己测试,专职测试不需要”这样的结论,明显不合适。
人不够: 那就自己动手多做一些事情,也挺好。就像前面提到的,一个人可以扮演多个角色。
无知: 这就不好说什么了。
引起网上讨论的两篇文章在这里:
中文翻译在:。
其中打分最高的回答来自前雇员(Evan Priestley),他总结了Facebook这个公司为什么貌似没有全职测试人员:
a) 全公司人员经常使用自己的软件产品!(如果你开发的软件是航天飞行某控制模块,你怎么能经常使用呢?)
b) 使用log来分析问题可能出在哪里。(我们的一些程序员写程序都没有log,那大家看什么呢?)
c) 利用用户的反馈和实时状态分析(比较过去一小时和上周同一时间的数据来判断是否有bug。)
d) 应用开发商给Facebook报bug。(开发商其实比较不爽,但是FB有时就是无预警地修改API,你除了赶紧报bug,还能怎么着?)
e) 很多人自愿给Facebook报bug,这位贴主自称每月给他的前雇主报13,000个问题。(没错,是每月一万三千个!)
f) 最后这位前雇员还加了一句:还有一个原因是,Facebook大体上也不需要搞出太高水平的软件。
当你的公司也能有a)到e)这样的文化、流程、开发商和给力的前员工,而且你的软件“大体上也不要太高质量”,你的确不需要什么全职测试人员!
就像MSF原则讲的那样,有分工,有合作。微软开发测试主要有三种角色:
对于如何更有效地开发互联网应用,微软很多团队都做过不少探索。微软公司在创业之初也没有多少专门的测试人员,在1984年的时候,开发:测试的比例是20:1. 后来随着产品线的变化,有些项目的测试人员比例几乎和开发人员一样多。最近,一些团队,是做互联网业务相关的,尝试把SDE和SDE/T合成一体。每个人都负责开发/测试/发布这一整套流程。这种做法,根据我的观察,有好处,也有额外的成本。
测试、质量保障、软件工程的质量,团队和个人到底应该怎么办呢?我认为,
分工之后,每人负责一小块东西,怎么才能体现出个人的独特而巨大的价值呢?例如,你刚到一家出版社,领导让你做“二审”这份工作,或者你刚到一个软件公司,领导让你做“测试”这份工作,你怎么才能展现出你独特的价值呢?
请找到几个软件测试工程师(例如,软件学院的测试专业早几年毕业的师兄师姐,测试论坛上活跃的用户,软件公司的测试人员),和他们了解并探讨测试这门专业。
世界上三大最著名权威杀毒软件测试机构AV-Comparatives,AV-TEST,和 Virus Bulletin联合公开谴责了中国安全厂商奇虎360, 原因是360送给机构的测试产品和实际发放用户使用的产品表现出了显著不同的行为。三家测试机构宣布将撤销奇虎360产品今年以来获得的所有认证和评级,且会在今后的测试中坚持公开公平地对待参测厂商,保证用户收到的是最准确的信息。
在本书开头我们讲了如何证明自己做好了软件工程:
我们能否量化上面提到的这些要点呢? 小组的同学可以想出一些指标,也可以从文献中查到学术界的论述,还可以通过实践来总结。
下面是一些常用的量化指标:
团队可以选取 7 个指标 (包括自己想出的指标),然后在项目中计算这些指标并跟踪。
本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/p/3857368.html,如需转载请自行联系原作者