說一下你的思考過程 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 閱讀(246) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄