1. 程式人生 > >為什麼程式設計師發現不了自己的BUG

為什麼程式設計師發現不了自己的BUG

0?wx_fmt=gif

0?wx_fmt=jpeg

最近在朋友圈流行了這樣的一張小學數學題,當然結果是“出乎意料”,看似簡單的結果,幾乎很少有人作對,而分析下來的原因無非是慣性思維下的粗心導致完全錯誤,那麼小編帶大家分析下思考過程。

0?wx_fmt=jpeg

看圖可知,貓=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

0?wx_fmt=png

一般大多數的第一結果可能都是這樣!等等,注意最後一個應該是Y+Z×X=?

0?wx_fmt=png

0?wx_fmt=jpeg

心中一百隻草泥馬奔過,再算一遍

Y+Z*X=5+2*10=25

0?wx_fmt=png

對不起還是錯的,因為貓爪從2只

0?wx_fmt=png

變成了1只

0?wx_fmt=png

0?wx_fmt=jpeg

所以應該是Y+Z/2*X=?

心中一千隻草泥馬奔過,再算一次

Y+Z/2*X=5+2/2*10=15

0?wx_fmt=png

對不起還是錯的,因為最後一隻貓少一個爪子,所以應該是Y+Z/2*(X-Z/2)=?

0?wx_fmt=png

0?wx_fmt=jpeg

心中一萬隻草泥馬奔過,再算一次

Y+Z/2*(X-Z/2)=5+2/2*(10-2/2)=14

0?wx_fmt=jpeg

其實大家會發現這個題目非常的“坑爹”,不就是故意折騰人麼,但是在很多系統中,開發看到測試提出的Bug也是這樣的感覺。作為開發就和我們成人一樣看到問題總是以自己的世界觀來理解,導致理所當然的就這樣就對了,而真正真相就被隱藏了。

0?wx_fmt=jpeg

而兒童一般能夠做對的原因是,老師有引導性的提示細心的重要性並且長期踩雷。這也是測試人員和開發人員的區別之一,現在知道為啥測試不是誰都能做的工作了吧,開發也為啥找不到BUG了吧。

0?wx_fmt=gif

推薦閱讀

小編喵喵個人微訊號:itmiao520 懶人回覆"喵喵"掃碼新增。

640?wx_fmt=jpeg

點選左下角閱讀原文檢視更多長知識文章!

0?