0. 责任感:
这恐怕是开发和测试之间最大的区别。就Bug在整个开发活动中造成的损失来看,在分析、设计处是最小的,而在测试时是最大的,依赖于具体使用的开发工程模型。每个环节引入的Bug都会在下一环节被放大,导致修正成本迅速扩大,到了测试这里再发现和修正Bug,返工成本相当高,拦截和修正的责任重大。
1. 成就感:
责任感越大,成就感也越大,相伴相生。在测试阶段能测出大Bug并修正,任何人都会感到自豪吧。
2. 实践经验密集型岗位:
相较于开发,测试需要更多更齐备的实践经验。从正向的系统知识、架构设计,到反向的破坏性思维,无所不包。开发人员通常在理想条件下编程,适时处理一些预想中的异常或错误;而测试则必须确保当这些异常或错误出现时处理代码能正确工作。这种检验工作远比开发工作困难得多。同样的业务代码,开发只需要面对少数“正常执行流”即可,而测试则需要面对大量的“异常执行流”。只有实践经验丰富者才能保持高测试效率。
3. 煎熬的协作关系:
开发向来难以认同测试的重要作用。还记得刚开始做开发时,SQA老是过来挑我的错,搞得我很恼火。但是Boss却说如果项目顺利收尾,我还必须请SQA吃顿饭,要不是他们的努力,说不定还得延期,严重的话甚至会导致用户体验指数下降,损失远远大过面子。幸而SQA组的同事都比较客观(天天看数据想不客观都难),他们是真正看结果不问过程的角色,一切就事论事。这一点,单向思维的开发人员很难企及。
写的代码越多,越认同测试的重要。曾经听过一个很贴切的比喻:写程序的人就像在造没有护栏的桥,自己去走那肯定安全无虞,那怕摸黑也不至于掉河里去;测试则像给桥修护栏的,让桥的普通使用者也能像开发那样来去自如。从这一点上说,测试远比开发重要。