谷歌如何做软件测试???第三部分
作者:网络转载 发布时间:[ 2012/4/9 14:57:23 ] 推荐标签:
经过前两篇的介绍之后,评论里留下许多问题。并没有逐一回复,当然不是想把这些评论置之不理,而是希望在这里和后面的文章中做详细介绍和解释这些问题。从这一篇开始,我将开始讲谷歌是如何测试软件的了。
在谷歌,质量不等于测试,是的,我确定在其他所有的公司也都是这样。“质量不是被测出来的”,这句陈词滥调是再正确不过的了。不管汽车制造还是软件开发,如果在初的设计建造的时候有问题,那它永远都会有问题。试问任何一家曾经被迫大量召回汽车的公司,逃避质量问题的代价是多么的昂贵。
但是,“质量不是被测出来的”这句话本身并不像它听起来的那么简单和准确。虽然质量并不是被测出来的,但同样也有证据表明,未经过测试,也不可能开发出有质量的产品。你连测试都没有做过,又是怎么知道产品功能是否正确,并有高质量呢?
对于这种难题,简单的办法是不要区分开发和测试,不要把他们当成对立的活动。测试和开发【注,两种行为,不是人】好能手牵手的并行,写一点代码立刻进行测试,写的越多,测的要越多。好是,在编码的同时,甚至在编码之前,考虑清楚这些代码将如何被测试。测试不是一个单独的工作,测试是开发的一部分。所以,质量并不等同于测试,当把开发和测试混在一起,搅拌直到分不清他们彼此的时候,得到了质量。
这是谷歌的想法,把开发和测试工作混在一起,不分彼此。写点代码,必须测试,多写一些多测一些。关键的问题是谁来做测试工作? 由于谷歌的专职测试人员非常的少,的答案只能是开发人员。还有比实际写代码的开发人员更适合来测试这些代码的人吗?还有比程序的作者更懂得怎样去发现程序bug的吗?是谁更想知道程序在第一次运行时是否有没有问题呢?谷歌之所以用这么少的专职测试人员的原因是开发对质量负全责。实际上,如果一个团队在过于依赖测试的时候,通常情况下这个团队在开发上一定也会有问题。如果在这个团队里,测试人员比较多,这也是一个强烈的信号,这表明开发和测试融入到一起的程度还不够,失衡了,缺乏测试,单纯地增加测试人员并不能解决任何问题。
这意味着,对于质量来说,预防问题比发现问题本身更重要。质量是开发人员的问题,而不是测试人员的问题。通过把测试工作融入到开发过程中,我们能降低那些富产Bug的人的出错机会,不仅可以避免了大量终用户的使用问题,而且还可以极大地降低测试人员报无效Bug的数量。在谷歌软件测试工程师的工作目标是检查这种预防措施是否有效,软件测试工程师不停地寻找一些证据来证明作为bug的作者和预防者的“软件开发工程师-软件测试开发工程师”组合是否存在问题,一旦发现任何不正常,会拉响警笛。
这种开发和测试一体的场景随处可见,不管是在代码审核的时候问“你的测试呢?”,还是在厕所蹲坑里张贴着的佳测试实践?臭名昭著的马桶测试指南【译者注,参见google test blog,有关于”Testing On The Toilet“的更多介绍】。测试是开发过程中必不可少的一环,质量是开发和测试合体的产物。软件开发工程师,软件测试开发工程师,软件测试工程师,所有的人都是测试人员。
如果你所在的公司也想要做这种开发和测试的统一,请也给大家分享一下其中经验和教训。如果没有,这将是一个帮助你公司的机会:让开发和质量划等号。你大概知道谚语里说的,鸡和猪为了一顿有培根和鸡蛋的早餐都乐于奉献自己,但是猪却牺牲了。好吧,这是事实,尝试跑到开发工程师那里,对他们”哼哼“(猪叫声)两声,看他们是否也用”哼哼“来回应,如果他们”咯咯哒“(鸡叫声)来回应,那说明有问题了。【译者注,崩溃了,这里比较难懂。James这里引用了一个猪和鸡的英语谚语,(参见,http://en.wikipedia.org/wiki/The_Chicken_and_the_Pig ),谚语的意思大概是,猪和鸡都参与制作培根鸡蛋早餐,猪变成了猪肉(培根),鸡只下了一个蛋,说明对于早餐,猪和鸡的奉献程度是不同的。并在这里把测试工程师比喻成鸡,开发工程师比喻成猪,早餐是质量,猪的奉献大。测试人员跑到开发人员那里,如果发现他们没有做猪的事情,早餐将做不成,那说明质量也将会有问题。】
相关推荐
最新发布
性能测试之测试环境搭建的方法
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