居然今天才看到这个问题,我来简单说下我厂的情况。
我厂是有独立测试人员的,这些人只做测试。至于他们是否同时做N个项目的测试,这个我不确定(应该是会的),但他们肯定不做开发。
我厂很注重开发流程控制,流程控制的目的是尽可能地提高交付质量,每个人都要通过强制培训,最新一次培训时的反面案例之一,便是前段时间的光大乌龙指事件。这年头程序交易都是受到监管的,假如你的程序写错了,例如某个交易的参数没有交验其合理性就发送出去了,你自己赔钱是一码事,监管部门对你进行罚款,甚至吊销你一段时间交易牌照,因为你扰乱了市场。这时候你只能吃不了兜着走,基本上Head of Technology就要跑路了。
这个流程细节要求很多,其中之一便是测试人员“不能了解系统的实现细节”,当然,他们必须懂技术,例如内存使用情况不正常,他们也得能告诉我们。他们也必须懂业务,这样能设计出更符合实际场景的测试用例,像我这种对业务不太明白的人来说,基本没法去做他们的事情。但我作为一个Power Developer可以把工作完成地很好,而测试人员可以帮我节省了很多精力,这可以看做是一种互补,需要有人用另一个角度来看问题。
所以,这自然必须要有独立测试人员了,这就跟需要独立的会计师事务所对你进行审计一样:你自己能做的再好,我也不放心你,必须别人来做。
通过这种流程控制,软件交付的质量(的期望值)自然会有提高。至于投入产出比如何,或者说项目质量是否达到了足够的标准,这就是另一回事情了。事实上项目不同,对于测试的力度可以有很大差别。例如一个互联网项目,随随便便丢上去把用户当测试来使亦无不可。但比如交易软件出了问题分分钟几百万刀损失,医疗软件出了问题分分钟死个把人,火箭发射系统出了问题分分钟几亿刀血本无归……
真到了某些时候,专职堆测试人员都不够,还得上形式化证明。当然这就是另一回事了。
— 完 —
本文作者:赵劼
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 26 个回答,查看全部。
延伸阅读:
互联网产品如何进行测试?
软件测试有哪些前景?