Distinguish proximate causes from root causes. Proximate causes are typically the actions (or lack of actions) that lead to problems, so that they are described with verbs (I missed the train because I didn't check the train schedule). Root causes run much deeper and they are typically described with adjectives (**I didn't check the train schedule because I am forgetful) You can only truely solve your problems by removing their root causes, and to do that, you must distinguish the symptoms from the disease.
這段話的意思是我們解決問題要找到根本原因憋他,問題才能被真正解決。正好今天復(fù)盤的一個TT击蹲,可以作為一個很好的例子來說明直接原因和根本原因挨务。
問題復(fù)盤
這個版本上線以后倘待,有一個微信查單功能,第一次點(diǎn)查詢,結(jié)果正常孝常,第二次點(diǎn)查詢苟跪,查詢結(jié)果為空廷痘,為此緊急上了一個TT修復(fù)了這個問題蔓涧。
問題的直接原因
DEV和QA都專注于需求內(nèi)容的測試上,都沒有想到要測試點(diǎn)兩次查詢按鈕這種情況笋额,所以沒有測試出來元暴,QA表示再來一遍也想不到要點(diǎn)兩次查詢按鈕。
這個線上問題是我發(fā)現(xiàn)的兄猩,其實(shí)我也不是一上來就點(diǎn)兩次查詢按鈕發(fā)現(xiàn)的茉盏,我是按照正常的操作流程,先點(diǎn)查詢按鈕枢冤,再到其它頁面鸠姨,再返回才發(fā)現(xiàn)問題的。
問題的根本原因掏导?
然后我表達(dá)了我對這個TT的看法和建議:
“在時(shí)間允許的情況下享怀,QA能否把我們的系統(tǒng)看成一個玩具,在每個用戶故事上多花5到10分鐘的時(shí)間(如果花太多時(shí)間趟咆,可能就不值得了)添瓷,多做一些破壞性測試或組合測試,把系統(tǒng)玩壞值纱?”
然后QA回答說:
“我們的系統(tǒng)太脆弱了鳞贷,如果我用破壞性測試,肯定能發(fā)現(xiàn)很多問題虐唠,報(bào)出一堆bug搀愧,但是開發(fā)一定沒有時(shí)間修〗ィ”
聽完QA的回答咱筛,我想根本原因是不是因?yàn)橄到y(tǒng)脆弱而導(dǎo)致QA在特殊流程上稍稍發(fā)力就會暴露很多問題,而暴露出的問題又不能及時(shí)修復(fù)導(dǎo)致的杆故?
但是從另外一個角度來看迅箩,是不是正因?yàn)橄到y(tǒng)是脆弱的,我們更要在特殊流程或操作上做一些測試处铛,把潛在的問題都暴露出來呢饲趋?
當(dāng)然怎么逐步解決暴露出來的問題是另外一個需要解決的問題。