為什麼程式設計師發現不了自己的BUG
阿新 • • 發佈:2019-01-09
最近在朋友圈流行了這樣的一張小學數學題,當然結果是“出乎意料”,看似簡單的結果,幾乎很少有人作對,而分析下來的原因無非是慣性思維下的粗心導致完全錯誤,那麼小編帶大家分析下思考過程。
看圖可知,貓=X 貓頭=Y 貓爪=Z 既
3X=30
X+Y+Y=20
Y+Z+Z=9
所以X=10 Y=5 Z=2
故結果 Y+Z+X=5+2+10=17
一般大多數的第一結果可能都是這樣!等等,注意最後一個應該是Y+Z×X=?
心中一百隻草泥馬奔過,再算一遍
Y+Z*X=5+2*10=25
對不起還是錯的,因為貓爪從2只
變成了1只
所以應該是Y+Z/2*X=?
心中一千隻草泥馬奔過,再算一次
Y+Z/2*X=5+2/2*10=15
對不起還是錯的,因為最後一隻貓少一個爪子,所以應該是Y+Z/2*(X-Z/2)=?
心中一萬隻草泥馬奔過,再算一次
Y+Z/2*(X-Z/2)=5+2/2*(10-2/2)=14
其實大家會發現這個題目非常的“坑爹”,不就是故意折騰人麼,但是在很多系統中,開發看到測試提出的Bug也是這樣的感覺。作為開發就和我們成人一樣看到問題總是以自己的世界觀來理解,導致理所當然的就這樣就對了,而真正真相就被隱藏了。
而兒童一般能夠做對的原因是,老師有引導性的提示細心的重要性並且長期踩雷。這也是測試人員和開發人員的區別之一,現在知道為啥測試不是誰都能做的工作了吧,開發也為啥找不到BUG了吧。
推薦閱讀
小編喵喵個人微訊號:itmiao520 懶人回覆"喵喵"掃碼新增。
點選左下角閱讀原文檢視更多長知識文章!