專注于軟件測試理論+實踐,自動化測試(功能、性能),希望廣交天下愛好測試的朋友,積極加入我的圈圈!測試者家園期待您的加入!
如何復現不可復現的Bug
上一篇 /
下一篇 2007-06-20 16:56:12
摘自51testing
從標題來看大家可能會覺得暈,這里說到的不可復現是指這些
Bug有時出現,有時候不出現。相信大家在
測試過程中肯定遇到過這種Bug,不少這種不可復現的 Bug定位起來非常困難,可能很長時間都不能得到解決。能否復現這些不可復現的Bug成為大家關注的一個話題,最近國外的測試專家James Bach、Jonathan Kohl等對這個話題進行了一些探討,這里把他們的一些思路理出來和大家分享。
要想復現不可復現的Bug,需要先提到一個概念就是ET(Exploring Test),也就是探索式測試,這種
測試方法是由James Bach首先提出來的,在所掌握的被測對象的信息不是很充分的情況下,這是一種很有效的測試方法,如果大家感興趣,我再整理一篇ET的文章出來。
在給大家闡述如何復現不可復現的Bug的思路之前,先說說為什么要復現這些不可復現的Bug(廢話兩句^_^)。對于整個項目或者產品而言,如果這些不可復現的Bug是很嚴重的Bug,比如導致系統崩潰等,如果不能及時、準確的定位和解決,最終發布出來的軟件到達用戶手中后,一旦出現勢必會影響軟件已經公司在用戶心中的形象,嚴重的會“迫使”用戶選擇競爭對手的產品,這些顯然都是公司所不愿看到的。而對于
測試人員而言,出現了這些不可復現的Bug,實際上是一次很好的鍛煉和提高機會,如果只是提交
缺陷報告將這個大皮球踢給
開發人員,不僅喪失了一次提高測試水平的機會,還有可能破壞和開發人員之間的關系。
廢話完了,進入正題。當出現不可復現的Bug時,大家可以從以下五個方面來進行考慮:
1、被測對象的版本信息
我測試的到底是哪個版本,這主要是有兩個作用:一是確認我測試的是正式的軟件版本,如果不是就先記錄下該問題,然后選擇正式的版本進行測試(開發人員基于嘗試的一次非正規的修改可能會導致不可復現的Bug);二是可以和其它版本進行對比,如果其它的版本沒有類似的問題,就可以去對比這兩個版本之間的區別。
2、環境
這里的環境是指出現不可復現的Bug時所對應的
測試環境等,比如測試所用的計算機,如果出現不可復現的Bug,那我換一臺機器是不是還會出現類似的問題,也就是說通過環境的改變來進一步搜集不可復現Bug的相關信息。
3、模式
這里的模式是指我對這個Bug如何出現的一個理解,先給這個Bug設定一個模式,比如是不是
數據庫通信中斷,然后再進行測試,收集更多的信息去修改和完善這個模式,這樣不斷進行,最終直到Bug能完全復現為止,這個時候只要使用這個模式就可以復現出Bug了。
4、人
這里提到的人有兩個含義:一是測試是由人來進行的,人的操作、人的思維方式會有不同,通過分析這些信息也有可能找到這些不可復現的Bug的蛛絲馬跡;二是想復現不可復現的Bug,往往需要多個人之間的相互協作,比如測試人員、開發人員等,通過大家的溝通和協作就能更容易去復現了。
5、測試工具
通過一些de
bug工具或者log工具等搜集內存等信息,根據這些信息來進行分析,找出不同信息之間的共同點,比如某一塊內存始終都會被改寫等,通過這種方式來去復現Bug。
上面的五個方面都是和ET的思想緊密相關的,通過不斷的測試和不斷的信息收集和分析,逐步的把模糊的、不確定的測試變成清晰的、確定的測試,這樣就能復現那些不能復現的Bug了?紤]信息時可以從以上五個方面來進行考慮。
相應的文章鏈接:
http://www.kohl.ca/blog/archives/000115.htmlhttp://blackbox.cs.fit.edu/blog/james/archives/000197.html

Link URL:
http://www.cnblogs.com/tester2test/archive/2006/06/14/425512.html
導入論壇
引用鏈接
收藏
分享給好友
推薦到圈子
管理
舉報
TAG: