qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

说一下你的思考过程 Tell me what you think(编程测试)

 有这样一个脑筋急转弯的题目,不要试图去网络上寻找答案,思考一下,然后告诉我你的思考过程,不一定要有结果,找到答案不一定是最重要的,我更关心你的思考过程:以下是文章原文出处http://www.taixiaomei.com/archives/94。文章回答的很精辟,不敢独自保留,在此分享出来,供大家欣赏。

  这一个等式很奇怪,0比2大,2比5大,5比0大,为什么?

  When you see the following inequality, what will be the reasone, in your opinion? Don’t try to find the answer from the internet. Just tell me your thinking process.

  0>2,  2>5,  5>0

  Responses to 说一下你的思考过程 Tell me what you think

  看到这个等式首先想到的是为什么是反的。然后就想肯定不是代表普通的数学比大小,因为有计算机背景,初步就想到是不是asc编码符的比大小。但是继续验证ASCII编码是不正确的,其本质还是数字的比大小,没有摆脱那个思维,换种思路,上面这个等式的0,2,5其实并不是看做数字来理解而是一种图形,比如0代表圆圈,那2和5又代表什么呢?

  还是说不通,但是可以肯定的是0,2,5各自代表着某种已定的特殊含义,这种含义又有某种特殊的联系,现在就是要找出这种联。

  有了新的数据,推翻了上一次的猜测。并且推出新的猜测:“0,2,5其实并不是看做数字来理解,0,2,5各自代表着某种已定的特殊含义,这种含义又有某种特殊的联系”,现在需要用新的数据来证明这种猜测是正确的。

  这种既定联系的范围太广了,光从这个等式提供的信息量有点少啊。

  这种状态是否似曾相识?你测试的时候,是否有过这样的时候,感觉毫无头绪,感觉效率很低,感觉没有思路。。。

  这个时候,不妨试着运用Defocused Thinking,尽量拓宽自己的思路、找更多的数据(data)。或者运用Alternative Thinking,先做些别的事情,过一些时间再回来接着测试,也许就有新的思路了

  很好,你找到了题目与圆在某一方面的相似性。但是这个就是那个“答案(bug)”了吗?你需要找到更多的数据,证明它就是你要找的

  “答案”是我们最终要找的东西;我们测试的时候,bug不也是我们要找的东西吗?答案,事先你并不知晓在哪里,你也事先不知道bug藏在哪里,否则就没有必要测试了。都是在解决问题,都是在找寻未知,测试的乐趣也在于此了!

  可以从软件质量和软件测试的角度来思考这个问题:

  0、2、5分别表示软件测试中发现的bug数。0>2, 2>5:没有bug的程序固然比有2个bug的程序的代码质量高;类推,2个bug的比5个bug的代码质量高;5>0:0个bug不代表程序没有bug!而只能说由于个人测试方法、测试思维和知识的局限性导致了某些bug无法发现。从这个角度来讲,发现5个bug的测试用例和方法显然比没发现bug的用例和方法对保证软件测试质量的价值和意义重大。从某种角度来说0bug意味着测试方案的失败而非程序质量的成功。事实上,世界上最优秀的程序员,也不敢保证他的代码100%正确无误!

  这是不是软件测试的博弈?

  Well, I think I’ve got the key.0:石头;2:剪刀;5:布。

  非常棒!终于找到了答案。说说我能想到的启发吧:

  - 做这种题目就是一个寻找未知的过程,测试也是一个寻找未知的过程。这个未知可能是bug、可能是系统真实的表现

  - 当你知道答案时,你可能觉得这也没有什么高深的,很容易理解,剪刀、石头、布嘛,换句话说,正向思考还是很容易的出这道题的,可是让你找答案时,就不是那么容易了,因为这时你得利用反向思考的方法,这就是测试的思维

  - 不同的人思维方式区别很大,决定是否能找到这个答案和人的思维方式、知识经验都有很大关系,思维方式可以通过训练提高、知识经验可以通过学习和实践累积。【是的,我是在说,思维方式可以后天训练提升,而不是先天就决定了的】

  -  所以多做做这种动脑筋的题目、多解解各种谜题、多做做拼图游戏、多玩玩魔法和数独等,都可以训练你的思维,包括边际思考能力、系统思考能力、逆向思考能力等等,这些都是你的学习能力

  - 学习能力提高了,不管是产品知识还是测试知识,当然都对你来说不是什么难事了,你也能区分出来何时学习产品知识、何时补充测试知识、应该补充什么知识、应该补充多少知识了

  - 测试中,我们经常可以使用溯因推理法(adbuctive inference),也就是假设性诱导法

  1、你获得一些数据,希望能够解释这个数据

  2、你想到数个可能的解释

  3、你寻求更多的数据帮助你解释或反驳每一个解释

  4、你选择最能帮助你解释所有其中重要的数据的解释

  5、或者,你没有找到一个最合理的解释,那么继续寻找更多的数据

  - 科学家们会经常使用溯因推理法,测试人员也经常使用溯因推理法,实际上有些研究表明科学家们的思考方式与测试人员非常相似,他们经常质疑其他人习以为常的 东西、他们经常做各种可能的假设然后去验证、他们会时而想到其他人想不到的方面,科学家们的发现发明不是因为科学家们都是天才、都有超人的智慧,而是因为 他们的思维方式。所以多读读科学、社会学、人文学、认知学,了解发现问题、解决问题的思考过程,对测试大有裨益。

posted on 2012-06-27 09:51 顺其自然EVO 阅读(243) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜