找到bug的根源,问五次为什么
在學(xué)習(xí)《問題分析與解決》時學(xué)到了一種找到問題根源的方法——問五次為什么。具體內(nèi)容是:當(dāng)遇到一個問題,不要只看當(dāng)前答案,要繼續(xù)往下問,為什么,連問五次,就能夠找到更深層次的問題。
最近在復(fù)盤bug的時候,也使用了這種方法,屢試不爽。
案例
前端發(fā)布后,頁面按鈕點擊失效,用戶反饋問題,前端回滾代碼后恢復(fù)。
問題一、為什么按鈕點擊會失效?
因為前端代碼寫出了一個bug,沒有對空對象進行判空,導(dǎo)致頁面js拋出異常,按鈕失效。
一般到這里就結(jié)束了,把代碼加上對象判空,繼續(xù)發(fā)布就完成了。
但是大家集思廣益,問五次為什么,看看是否有新的發(fā)現(xiàn)。
之后又問了幾個為什么,果真有收獲。
問題二、為什么是用戶反饋,而不是告警發(fā)現(xiàn)?
因為當(dāng)時發(fā)現(xiàn)了告警,但是看日志沒有查出什么異常,就忽略了。
問題三、為什么沒有查出日志,是沒寫日志,還是寫了沒查到?
有寫日志,但是當(dāng)時查日志系統(tǒng)特別慢,平時要十多分鐘才能查出來,那天一個小時都沒出來。
問題四、為什么系統(tǒng)會查不出日志?
不知道。后來找維護系統(tǒng)的人查了下,發(fā)現(xiàn)硬盤有問題,緊急更換了磁盤。
問題五、為什么平時要十多分鐘才能查出來日志,這么慢?
因為查詢?nèi)罩緵]有用主key查詢,日志量太多,導(dǎo)致查詢慢。改進:記錄日志時把key值寫好,精簡不需要的日志。
總結(jié)
經(jīng)過問五個為什么,把一個看似簡單的線上bug,挖出了更多可以修改的點。為以后及時發(fā)現(xiàn)問題,少出事故,做了很大的貢獻。
如果只問一個為什么,那么修改的只有表象問題,把代碼判斷空加上就結(jié)束了。
問了五個為什么之后,做了這幾件事:
特別是2,如果不找出來,其他系統(tǒng)也會掉到這個坑里,也算是舉一反三。發(fā)現(xiàn)一個問題,把關(guān)聯(lián)問題,和根本問題都解決了
很多時候,我們遇到的問題都有更深層次的原因。一個問題出現(xiàn),也都是多個問題同時發(fā)生的結(jié)果。在大問題發(fā)生之前,一定有很多次小問題出現(xiàn)。問5個為什么,就像進行了5次深度和廣度的搜索,把問題又向四周和更深的地方挖掘。
每次出問題時都能多問幾次為什么?才是從根本上消除問題的一個好方法!
轉(zhuǎn)載于:https://www.cnblogs.com/owenandhisfriends/p/10322015.html
總結(jié)
以上是生活随笔為你收集整理的找到bug的根源,问五次为什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查找-------(HashCode)哈
- 下一篇: 遗留问题,排雷会炸,不排也会炸!