回忆之城
生命在于折腾
posts - 575,comments - 9,trackbacks - 0

昨天从51testing论坛看到一道题目,很有意思,如果是面试时突然提问,可能还真不太好回答。

“给你一个软件,你测试了一个月都没有发现bug,这说明什么?你怎么办?”

当时看到这个题目,也颇为一惊,一时之间真不知道如何回答,因为的确没有遇到过这样的情况。坛子里的回答五花八门,有的说“说明软件已经没有bug了”,也有的讲“需要补充新的测试用例”云云,都不太认同。

其实上面的问题属于极端情况,对于一个新软件和有经验的测试工程师来讲,很少会遇到,至少我的经验是这样。更常见的情况可能是,测试员和程序员长期在项目间合作,程序员渐渐习惯了测试员的用例思维,他在写代码的时候,根据以前多次修改BUG的经验,已经在自觉的规避可能出错误的代码写法,从而写出的代码更规范更可靠。由于程序员在主动规避测试员可能发现的错误,测试员如果还按照惯性思维去测试,当然就不太容易再发现BUG了。

下班回家的路上,心情比较放松,又想起这道题目,同时还想起了我最喜欢的电视剧之一《暗算》。先回忆一下《暗算》第一部《听风》中,安在天在河边给阿炳讲的一个比喻。以下文字来自新浪读书频道《暗算》第六章(8)(http://book.sina.com.cn/nzt/lit/ansuan/58.shtml

.....................

阿炳“噢”了一声,若有所思。

  “我爱人的老家在无锡乡下,太湖边上,离你们乌镇不远。这河水应该是先流到太湖,然后再往下流,才流到你们乌镇。太湖边上的人家都以捕鱼为生,我岳父是当地出了名的好手。到了冬天,鱼都沉入湖底,出去捕鱼的人经常无功而返,唯独我岳父,从来不会空手回来,他的竹篓里总是装着别人想不到的大鱼,或者其它水鲜。”

  “为什么?”

  “因为我岳父在冬天捕鱼有个绝活儿,就是他能从水面上冒出的纷繁凌乱的水泡中,一眼认出哪些水泡是冬眠的鱼吐出来的,哪些不是。知道鱼在哪里就好办了,只要将鱼网对着“鱼泡”铺天盖地撒下去,鱼便成了瓮中之鳖……”

  其实,阿炳搜寻敌台给安在天的感觉就是这样,他不但能从众多水泡中看出哪些是鱼泡,而且还能从各式各样的鱼泡中分辨出各式各样的鱼。换句话说,他不但知道哪些水泡下面有鱼,而且还知道是什么鱼,是鲤鱼,还是鲫鱼……

  安在天继续说:“……有一年冬天,我岳父照常去湖里捕鱼,但接连几天,都看不到湖面上冒出‘鱼泡’。我岳父因此认为湖里的大鱼都被他抓完了,从此就呆在家里,靠吃鱼干过日子。但是有一天,他去湖边随便走,不经意地发现成群的大鱼在岸边的浅水区里游来游去……”

  阿炳惊讶地:“真的?”

  “真的。这就是说,湖里还有很多的大鱼,只不过这些大鱼都变狡猾了,它们知道假如沉在湖底的话,总有一天要被我岳父识破‘秘密’,抓走,所以都离开湖底,游出深水区,来到岸边的浅水区。岸边虽然寒冷,但空气充足,用不着使劲儿呼吸就可以存活,不使劲儿呼吸就不会冒出气泡,不冒气泡,我岳父自然就找不着它们。”

  “后来呢?”

  “后来,我岳父知道了这些鱼新的秘密,就又把它们都抓走了。”

  阿炳感叹着:“你岳父本事真大……”

  安在天就这样让阿炳明白了:我们至少还有一部分敌台没有找到,为什么找不到呢?是因为它们“像狡猾的大鱼一样” 躲起来了,躲到我们想不到的地方,我们需要一种新的办法去寻找它们。

  阿炳站了起来:“我们回去上班吧。”

  安在天试探地:“你愿意试一试吗?”

  阿炳:“我想试……”

................

我想以上的比喻用来回答这个问题再合适不过了。当然BUG不像鱼,没有鱼那样会思考会变“狡猾”,但BUG的主人即程序员比鱼可聪明“狡猾”多了。

回到本文开始的问题,测试工程师已经按照惯性思维测试了一个月,还没有发现BUG,这并不能说明BUG真的没有了,只能说明BUG隐藏的更深了。我想此时就应该借用安在天岳父的做法,积极转换思维方式,发现自己惯性思维测试的盲点,经常和“高手”交流,拓展自己的思维方法,必要时可邀请其他有经验的测试工程师一起进行,我想这也是β测试和随机测试能够存在的重要缘由之一了。

其实在这方面,51testing高手很多,前几天看的一篇blog文章《BUG Bash 大扫除总结》,文中提到的方法就是一种很好的解决此类问题的方法,请看 http://www.51testing.com/?115619/action_viewspace_itemid_75493.html

以上仅代表本人观点!

posted on 2008-03-18 11:46 回忆之城 阅读(114) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。