需不需要测试人员?在csdn上的口水战

作者:半瓶墨水   链接:http://www.2maomao.com/blog/does-development-need-tester/

CSDN开了一个测试区口水战专页:http://testing.csdn.net/subject/testid.htm

我在里面和1073X同学口水横飞,csdn的mjj同志让我总结一下发篇blog以便引用,我写不惯论文,就这么贴在这儿吧:

@1073X
“测试当然很重要,但是程序员做测试比设立专职测试人员更合理.”

你的理由大概是这个:

“第一层是unitest,或者开发者测试,程序员来做;第二层是system test,或者验收测试,由用户来做,当然很多时候他们并不知道自己在做测试. 我们使用TDD进行开发,交付给客户进行测试的版本通常情况下不会有严重到影响使用的缺陷”

我的一些观点
1、TDD是什么?是否叫做”测试“驱动开发?TDD全由Dev来完成的吗?如果一个Dev只做TDD,那么这个Dev是测试员(测试员也不是只有手工测试,也需要写程序自动化测试)

2、在解决问题的时候,如果两个角色比较冲突,是把他们分开好一点还是合在一起好一点?Dev和Test的目标相同:为了产品质量更好。但是Dev倾向于掩盖bug,或者说忽略一些自己认为不严重的小bug,这不是Dev是否优秀能够决定的。在Dev心中,做出来的东西是假定是正确的(否则开发的时候就改掉了),直到发现错误为止。在Tester心中,做出来的东西是错的,直到我找不到问题为止。或许有些夸张,但是“屁股决定脑袋”,你坐在那个位置上,你就会按照那个位置的需要进行思考。

3、我很奇怪,你做的产品是多长的周期。在小的软件开发周期,比如说两周开发一个软件,测试没有必要。但是很长的软件开发周期,每个人都会很紧张,Dev 每改动一个代码都会想:我是否又导致了其他问题?如果没有测试,答案未知,人心惴惴。如果有合格的自动化测试,非常好办,Check-in专用测试跑一遍,没有问题就Check-in。每天都有有daily build,每个daily build都会自动运行所有的测试。产品健康度的信心就是这么建立起来的。大家都很清楚的知道:“我们正在向更好的方向前进”

4. 客户验收测试只会对产品的功能进行测试。但是一个产品的正确性、健壮性,还是在交给客户测试以前进行测试的好,哪个客户也不愿意见到一个经常crash的产品。这对公司的信誉很有影响。

当然,所有的基础:你做的项目足够大,而客户关系足够长

为什么火车站旁边的饭店卖什么烂东西都无所谓?因为这是一次性生意,口碑也不会影响到他。如果你做的是这种项目,测试的确不需要,就当我没说好了。
BTW:一个优秀的测试开发人员,至少也是一个合格的程序员。

BTW:CSDN的评论系统竟然需要自己手工加上<br/>才能换行,烂。

留下回复