一直以来,到底测试应该由独立的团队来做,还是由开发团队内部来做,是一个在自己所身处环境被讨论的问题。
由于在这个环境里,有专门做独立测试的评测机构。而我们正在尝试的敏捷方法,又在强调测试与开发的融合。那些做第三方测试的人强调说,第三方测试是多么的必要,建议将我们要建立独立的测试团队,开展独立测试。而我们在尝试敏捷的过程中,又说现在的趋势是测试左移,测试与开发融合。双方都缺乏对对方工作背景的了解与思考,因此讨论时也基本就是鸡同鸭讲,各说各的。
今天碰巧有点想法,记录之。
做独立第三方评测的多为军品领域。军品领域计划性强,非充分的市场竞争机制,而且因产品质量本身造成的后果会十分严重,不只是巨大的经济损失,还可能会有人员伤亡,会关乎领导、官员的政治前途,因此质量被提升到很高的高度。但软件开发过程虽然在推一些软件工程,其实效果并不如意,大家能想到的最简单的办法就是引入一道额外的保险就机制:第三方评测。而一般来说,这个领域都是“不差钱”的。在软件开发过程保持现状的情况下,通过第三方评测确实能够发现大量的缺陷,这又用事实证明了第三方测评的有效性、必要性。
而在民用软件领域,是充分的市场竞争行为,自己的质量不过关会失去市场,因此对于市场竞争意识十分强烈的公司,自会十分关注内部开发质量,如互联网公司,同时,他们又对成本很敏感,与其花一大笔钱给第三方来保证质量,不如让自己人想办法保证质量。于是就不断的让开发人员要保证自己的质量。因此民品领域的趋势就变成了测试与开发不断的融合,让开发在过程中就要保证质量,总体上降低研发的成本。而实践也证明,这条路是能走通的,但对管理的要求更高,是通过“自组织”实现“精细化”管理——当然,作坊开发模式不在探讨和比较范围内。相比而言,军品领域的管理要粗犷一些。
对测试人员成长的一个疑惑:
刚参加工作时,觉得做第三方测试没意思,干开发多好,能够用代码实现自己的想法。
现在来看,干测试也有若干好处:看不同人编写的代码,应该能够学习到很多好的东西。通过对不同团队、不同人、不同业务领域的学习,如果能够融汇贯通,也可成为大神级人物。
当然也有弊端:大部分人写的代码可能没什么值得学习的,但作为专业的测试人员还必须得去看。另外需要深入测试面向不同领域的程序,要求测试人员深入学习不同领域的业务知识,也是一个大的挑战。