如何看待那些不能重现的bug
生活随笔
收集整理的這篇文章主要介紹了
如何看待那些不能重现的bug
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在我們?nèi)粘y試活動中,經(jīng)常會發(fā)現(xiàn)一些bug,但是這些bug可能就是曇花一現(xiàn),再也無法(或者很難)重現(xiàn)出來,內(nèi)心灰常崩潰。那到底有哪些方面可能會導致這類的缺陷發(fā)生呢?
我以自己工作中所遇到的給出一些自己的總結(jié),當然如有補充請自行添加。
?
一.環(huán)境問題
這個問題導致的缺陷無法重現(xiàn)的情況還是比較多的,測試和開發(fā)環(huán)境的不一致可能導致開發(fā)那邊缺陷無法重現(xiàn),還有實際運行環(huán)境和我們測試的環(huán)境不一致。如(硬件的配置,軟件的配置,網(wǎng)絡(luò)因素),當然極少數(shù)是系統(tǒng)內(nèi)部問題或者時間觸發(fā)的(這類bug重現(xiàn)非常困難)
?
二.操作問題
很多時候我們在執(zhí)行測試用例的時候會不經(jīng)意間做了一些其他操作,這種不經(jīng)意間完成,而又忽略了這一操作,以至于很難重現(xiàn)。
還有一種是沒有找到正確的引發(fā)bug的操作順序,因為很多bug需要滿足多個條件。在滿足這些條件下再去做某些操作,才能夠被觸發(fā)。
?
三.特殊數(shù)據(jù)
有些bug需要使用特殊數(shù)據(jù)才會出現(xiàn),并且往往我們測試人員沒有意識到自己用的數(shù)據(jù)的特殊性,導致后面很難去重現(xiàn)。
?
四.內(nèi)存泄露或鎖
有一些系統(tǒng)只有經(jīng)過長時間運行才會暴露出bug,這個問題也很難重現(xiàn)。需要經(jīng)過長時間的測試才能確認以及特殊情況下數(shù)據(jù)鎖的問題,導致的一些bug都很難重現(xiàn)
?
遇到這種問題,我們應(yīng)該如何做呢?
?
(1)提交(不要因為沒重現(xiàn)出來,可能是自己眼花而不提)
把不可重現(xiàn)的BUG記錄下來,以后再遇到的時候可能就會了解發(fā)生的原因。同時盡力去查找出錯的原因,比如有什么特別的操作,或者一些操作環(huán)境等。而且程序員對程序比測試人員熟悉的多,因為測試人員看到的只是程序的外部,無法深入程序內(nèi)部,也許你提交了,即使無法重新,程序員也會了解問題所在。無法重現(xiàn)的問題再次出現(xiàn)后,也可以直接叫程序員來看看問題。
但是針對一些比較嚴重的、隨機發(fā)生無法重現(xiàn)的bug,測試人員提交上去后,有可能會出現(xiàn)以下三個情形:a.開發(fā)人員試圖重現(xiàn),重現(xiàn)不出,Reject回來;b.開發(fā)人員找不到規(guī)律,所以不去解決,問題一直處于Open狀態(tài);c.開發(fā)人員因為問題難以解決,所以直接Resolved回來,覺得反正是偶發(fā)的,先改成解決狀態(tài)再說。
(2)盡量詳細的描述缺陷
盡可能的詳細記錄BUG產(chǎn)生的相關(guān)信息;如重現(xiàn)頻率,發(fā)生情況并有截圖,操作步驟,軟件的版本,發(fā)生錯誤時的各種變量、內(nèi)存、存儲器等存儲的數(shù)據(jù)內(nèi)容,軟件出錯時的軟硬件環(huán)境等。
(3)由開發(fā)人員進行人工代碼走查和工具靜態(tài)檢查
無法重現(xiàn)的代碼找對系統(tǒng)最熟悉的開發(fā)人員重新Review代碼,最好是多人一起查。查代碼還找不出來,就要檢查操作系統(tǒng)、應(yīng)用服務(wù)器及其環(huán)境是否有問題,是否有兼容性問題。或者采用靜態(tài)檢查工具(如pclint,splint等工具)檢查代碼,消除所有的error與warning。
(4)受限于瀏覽器的需要檢查瀏覽器版本和瀏覽器配置
對于瀏覽器設(shè)置不正確引起的BUG,設(shè)置好瀏覽器選項,就能使BUG重現(xiàn)。
總之,在遇到某些嚴重的、卻又無法重現(xiàn)的Bug,應(yīng)積極回憶BUG的癥狀和所有的環(huán)境因素,一絲一毫的細節(jié)都不要錯過。并與開發(fā)人員、DBA、系統(tǒng)設(shè)計人員、項目經(jīng)理等一起分析那些環(huán)境因素,根據(jù)以往的經(jīng)驗分析影響此Bug重現(xiàn)的重要因素,并在相同的環(huán)境上安裝同樣的系統(tǒng)進行測試,以驗證所做的猜測。而對于某些無法重現(xiàn)、但嚴重程度不是很高的Bug,可以暫時只作記錄、而不必花費大量的人力和物力去分析。如果下次又出現(xiàn)了,那么根據(jù)發(fā)生的頻率再去分析是否需要跟蹤此Bug。如果需要跟蹤它,那么在它又出現(xiàn)后一定要立刻對當時的環(huán)境進行截圖,如錯誤信息、界面、日志等。這樣也利于開發(fā)人員定位、分析它,從而準確、快速地修復它。如果條件允許,測試人員應(yīng)立即保護現(xiàn)有環(huán)境,并邀請相關(guān)的開發(fā)人員和系統(tǒng)分析人員一起研討產(chǎn)生此問題的原因和解決方法。
我以自己工作中所遇到的給出一些自己的總結(jié),當然如有補充請自行添加。
?
一.環(huán)境問題
這個問題導致的缺陷無法重現(xiàn)的情況還是比較多的,測試和開發(fā)環(huán)境的不一致可能導致開發(fā)那邊缺陷無法重現(xiàn),還有實際運行環(huán)境和我們測試的環(huán)境不一致。如(硬件的配置,軟件的配置,網(wǎng)絡(luò)因素),當然極少數(shù)是系統(tǒng)內(nèi)部問題或者時間觸發(fā)的(這類bug重現(xiàn)非常困難)
?
二.操作問題
很多時候我們在執(zhí)行測試用例的時候會不經(jīng)意間做了一些其他操作,這種不經(jīng)意間完成,而又忽略了這一操作,以至于很難重現(xiàn)。
還有一種是沒有找到正確的引發(fā)bug的操作順序,因為很多bug需要滿足多個條件。在滿足這些條件下再去做某些操作,才能夠被觸發(fā)。
?
三.特殊數(shù)據(jù)
有些bug需要使用特殊數(shù)據(jù)才會出現(xiàn),并且往往我們測試人員沒有意識到自己用的數(shù)據(jù)的特殊性,導致后面很難去重現(xiàn)。
?
四.內(nèi)存泄露或鎖
有一些系統(tǒng)只有經(jīng)過長時間運行才會暴露出bug,這個問題也很難重現(xiàn)。需要經(jīng)過長時間的測試才能確認以及特殊情況下數(shù)據(jù)鎖的問題,導致的一些bug都很難重現(xiàn)
?
遇到這種問題,我們應(yīng)該如何做呢?
?
(1)提交(不要因為沒重現(xiàn)出來,可能是自己眼花而不提)
把不可重現(xiàn)的BUG記錄下來,以后再遇到的時候可能就會了解發(fā)生的原因。同時盡力去查找出錯的原因,比如有什么特別的操作,或者一些操作環(huán)境等。而且程序員對程序比測試人員熟悉的多,因為測試人員看到的只是程序的外部,無法深入程序內(nèi)部,也許你提交了,即使無法重新,程序員也會了解問題所在。無法重現(xiàn)的問題再次出現(xiàn)后,也可以直接叫程序員來看看問題。
但是針對一些比較嚴重的、隨機發(fā)生無法重現(xiàn)的bug,測試人員提交上去后,有可能會出現(xiàn)以下三個情形:a.開發(fā)人員試圖重現(xiàn),重現(xiàn)不出,Reject回來;b.開發(fā)人員找不到規(guī)律,所以不去解決,問題一直處于Open狀態(tài);c.開發(fā)人員因為問題難以解決,所以直接Resolved回來,覺得反正是偶發(fā)的,先改成解決狀態(tài)再說。
(2)盡量詳細的描述缺陷
盡可能的詳細記錄BUG產(chǎn)生的相關(guān)信息;如重現(xiàn)頻率,發(fā)生情況并有截圖,操作步驟,軟件的版本,發(fā)生錯誤時的各種變量、內(nèi)存、存儲器等存儲的數(shù)據(jù)內(nèi)容,軟件出錯時的軟硬件環(huán)境等。
(3)由開發(fā)人員進行人工代碼走查和工具靜態(tài)檢查
無法重現(xiàn)的代碼找對系統(tǒng)最熟悉的開發(fā)人員重新Review代碼,最好是多人一起查。查代碼還找不出來,就要檢查操作系統(tǒng)、應(yīng)用服務(wù)器及其環(huán)境是否有問題,是否有兼容性問題。或者采用靜態(tài)檢查工具(如pclint,splint等工具)檢查代碼,消除所有的error與warning。
(4)受限于瀏覽器的需要檢查瀏覽器版本和瀏覽器配置
對于瀏覽器設(shè)置不正確引起的BUG,設(shè)置好瀏覽器選項,就能使BUG重現(xiàn)。
總之,在遇到某些嚴重的、卻又無法重現(xiàn)的Bug,應(yīng)積極回憶BUG的癥狀和所有的環(huán)境因素,一絲一毫的細節(jié)都不要錯過。并與開發(fā)人員、DBA、系統(tǒng)設(shè)計人員、項目經(jīng)理等一起分析那些環(huán)境因素,根據(jù)以往的經(jīng)驗分析影響此Bug重現(xiàn)的重要因素,并在相同的環(huán)境上安裝同樣的系統(tǒng)進行測試,以驗證所做的猜測。而對于某些無法重現(xiàn)、但嚴重程度不是很高的Bug,可以暫時只作記錄、而不必花費大量的人力和物力去分析。如果下次又出現(xiàn)了,那么根據(jù)發(fā)生的頻率再去分析是否需要跟蹤此Bug。如果需要跟蹤它,那么在它又出現(xiàn)后一定要立刻對當時的環(huán)境進行截圖,如錯誤信息、界面、日志等。這樣也利于開發(fā)人員定位、分析它,從而準確、快速地修復它。如果條件允許,測試人員應(yīng)立即保護現(xiàn)有環(huán)境,并邀請相關(guān)的開發(fā)人員和系統(tǒng)分析人員一起研討產(chǎn)生此問題的原因和解決方法。
總結(jié)
以上是生活随笔為你收集整理的如何看待那些不能重现的bug的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李莉c语言,李莉
- 下一篇: kafka+flink集成实例