忘掉游戏规则
方案部的同事问我:“测试部不了解我设计的模块,在我设计的模块中某些寄存器随便写某值,会出现什么情况”。我很愕然回答道:我也不知道。他很不解地问:“这个模块不是你设计的吗?”。我无奈地说:“是啊”。虽然你是某些规则的“始作俑者”,但是你并不能左右这些规则。
老大常说:“为什么经过UT、IT、ST等等这么都多测试的产品,到了测试部还会出现显而易见的bug,明显是我们对自己的东西折腾的不够”。对于我们来说,我们太了解产品测设计规则了,什么寄存器该怎么设置,要成读写要先做那几步骤再做哪几步骤。可是这只是证明了正确的是正确的,却没有证明错误的是错误的。对于一个是测试人员来说确实相当悲催的,属于正确之类的集是有限的,属于正确之外的集确实无限的。问题往往就是在在违反规则的折腾中暴漏的。消费者不会管你是怎么什么设计的,需要什么操作。消费者只需要用者随手满足需求就可以了。就像一个遥控器,谁知道一个淘气的小孩一屁股坐到遥控上会出现电视会出现什么状况。
这儿有个故事:在一个古老的村子的里部落一群族人世代相传在遥远的一片森林是禁地,谁进去了就会受到上帝的处罚,再也出不来,于是族人坚守这个传统,直到有一年大旱,秋天颗粒无收,人们都外出寻找食物,有一小孩实在饿得受不了就去那片传说中的禁地之林,这片森林被群山半包围,里面气温适宜、物肥水润,但是都是可以食用的野果。于是这个小孩偷偷的把野果带回来给父母,父母看到鲜美的果子惊奇不已,后来人们发现这边禁地之林竟是如此肥沃。可是族人不解这个地形奇异的原因,认识这是神的旨意,神在人间的栖息之地,这个发现果子的小孩不仅没有被当作救星,还因触犯神灵而受火刑。这年冬天死了不少族人,终于有人抑制不住饥饿,而冒死前往这边禁地再也不出来。这些人后来是这个族仅仅活下来的人。
是什么挡住我们的眼镜,就是那些认为我们已经探知的未知世界,这些条条框框的规则禁锢着我们,尽管打破这些规则或许是像那个受到火刑的小孩又或许是那些生存下来的人们,但是不打破禁锢必然是灭完。这就像玩双升的扑克游戏,我们是如此了解升级的游戏规则,先出什么牌后出什么牌,所以对家很容易根据此规则推断出自己还缺了哪门花色,还有多少主对。可是如果我们偶尔不按规则,偶尔贴几张大牌,或者偶尔送上几分,一定会严重干扰对方对自己手中牌的估计。这样反而能出其不意的获胜。
真正的规则就是不守规则。《孙子兵法》十三篇,开宗明义"兵者,诡道也"。曹操注释为"以诡诈为道",可谓 得其精髓。在兵家看来,蔑视一切规则就是规则。金庸对于“太极”的看法就是已无规则胜有规则。在《倚天屠龙记》中写道:“张无忌却始终持剑画圈,旁人除了张三丰外,没一个 瞧得出他每一招到底是攻是守。这路太极剑法只是大大小小、正反斜直各种各样的圆圈,要说招数,可说只有一招,然而这一招却永是应付不穷。”张无忌的招数无攻守规则,只是知道要打败敌人。就像武林高手都是无招胜又招。
新手都是不懂规则,所以像无头的苍蝇;熟手都是紧守自己学到的规则,欣欣然曰:吾得已;高手却是忘掉规则,只知道目标。不要惊讶为什么测试部这么轻易就发现自己折腾这么就都没发现的问题,因为你的思想已经被固化了。不以消费者的角度来把玩自己墨守陈规的业务测试,一个个bug必然深埋于其中。