生活中一个常见的歪理是, 既然有清洁工, 那我乱扔点儿垃圾算什么, 这才是他们工作啊!
尽管有专人负责QA 中的测试工作, 但是保证质量仍然是所有成员的职责。软件团队中的一些人往往在有意无意中忘记这一点。最常见的现象是开发人员写好一个功能之后, 迫不及待地宣布成功, 然后希望测试人员去发现所有问题。如果问题在发布后才被发现, 开发人员会说– 测试人员怎么搞的,这种bug 都没找出来!?
某项目的某功能有重要的改进, 这个改进经过研究员的研究,开发人员的设计, 美工的美化, 两个开发人员的配合实现, 项目管理人员的督促, 测试人员的测试, 最后所有人都号称做好了, 上线了! 为此, 我约了某个目标用户给他做实地展示, 几天后, 大家都到齐了, 开始演示。开始进行的不错, 马上最重要的killer feature 就会出来了 … 嗳, 预想的效果怎么还没出现呢? 再试试, 还没有? 各相关人员面面相觑, 大家小声说:
“我不是把那个新模块给你了么?”
“我就是照着那个接口实现的啊…”
“我不是已经交给那啥… ”
“所有的bug 不是已经都搞定了么…”,
会议在尴尬中胜利结束了。
后来查问题的根源, 这个复杂的功能由于两个模块的接口在最后没有同步, 某重要的参数被忽略了, 这个功能中最出彩的部分压根就不可能工作! 那负责测试的角色怎么解释 "所有测试用例通过, 同意发布" 的呢?
这还是开发人员引以自豪的“杀手级功能” (killer feature), 那其它普通的功能是什么命运呢?
回过头来, 我们可以问:
· 这件事真的要通过这么多环节么?
· 测试人员真的知道最最关键的地方如何测试么?