质量不是被测试出来的。从制造业到软件行业,如果在最开始设计创建的时候就是错的,那它永远不会变成正确的。试问一下汽车行业的公司,大量召回有质量问题的产品,代价是多么的昂贵。因此,从最初的创建阶段就要做正确,否则将会陷入混乱的万丈深渊。
虽然质量不是被测试出来的,但同样有证据可以表明,未经测试也不可能开发出有质量的软件。如果连测试都没有做,如何保证你的软件实现了需求呢?
那么,软件产品到底要不要测试呢?有一个简单的方法可以解决这个难题,那就是停止开发和测试的隔离和对立,开发和测试应该并肩齐驱。你需要在写完每一段代码后立即测试这段代码,当完成了更多的代码时就要做更多的测试。测试不是独立的可隔离的活动,它本身就是开发过程的一部分。质量不等于测试,当你把开发过程和测试放在一起,就像在搅拌机里混合搅拌那样,直到不能区分彼此的时候,你就得到了质量。
在谷歌,我们的目标是把开发过程和测试融合在一起--开发和测试必须同时开展。写一段代码就立即测试这段代码,完成更多的代码就做更多的测试。那么,由谁来做这些测试呢?唯一可能去做的就是写这段代码的开发人员,他是最适合测试这段代码的人。开发对质量负责,意味着质量更像是一种预防行为,而不是检测行为。质量是开发过程的问题,而不是测试问题。
把开发过程和测试混合在一起,密不可分,从代码评审时询问:“你的测试在哪儿?”,再到在卫生间张贴着的、用来提醒开发人员的最佳测试实践(如TDD)。测试是开发过程必不可少的一部分,当开发过程和测试一起携手并进时,既是质量达成之时。
网友评论