(二)Bug不能重現的原因分析及其對策

說明:在“高級”選項中,對測試起重要作用的是“禁止腳步調試”(不選擇,即前面不要有勾)和“顯示每個腳本錯誤的通知”(選擇它,即前面要出現勾)。

        這些設置對重現有關腳本錯誤的Bug起着重要的作用。根據這些腳本錯誤的通知,開發人員可以快速發現代碼中的錯誤,並及時修復它。

三、    內存泄露

        某些系統長期運行後出現運行速度慢、反應遲鈍等現象,其中一個主要的原因就是內存泄露。有的開發人員沒有養成及時回收內存的習慣,結果系統在不斷地申請內存空間,卻沒有一點內存釋放。這類錯誤在短期內不會出現,但當系統長期運行時就會出現,並且由此會引發一系列的問題。此類問題只有經過長時間的運行測試,纔可能會被發現。

四、    函數接口類型不匹配

        此類錯誤難以重現,並且難以發現它的真正原因,一般只有在查看源代碼後才能發現。某些類型的數據會被系統自動轉換,一般也不會出現錯誤;但有些數據被截斷或被強制轉換成另外一種數據類型時,會出現一些潛在的錯誤。在集成測試時此類錯誤最有可能發生。

 

        既然分析出了這些Bug不能重現的原因,我們就可以對症下藥了:

        1.  測試人員要有重視測試環境的意思,並在Bug Report裏面增加對測試環境的準確描述,特別是影響重現此Bug的那些環境因素。

        2.  Bug的Step要準確說明操作步驟。爲了重現一個Bug,測試人員可能需要對幾個Build進行連續跟蹤、測試和定位產生這個Bug的最根本原因。

        3.     正確設置瀏覽器的選項。

        4.  對性能有要求的軟件或系統一定要進行長期負荷測試(Loading Testing ),以發現內存泄露等需要長期運行才能出現的問題。根據微軟的測試經驗,如果軟件能通過72小時的強力測試,則該軟件72小時後出現問題的可能機率微乎其微。因此只需對軟件進行72小時的強力測試即可。

        5.  集成測試時一定要注意函數接口類型是否匹配。

        6.  測試人員要與開發人員、DBA等保持良好的關係。遇到問題要及時、主動與他們溝通,聽取他們的意見。在他們的幫助下,你可以更容易地找到問題的關鍵所在之處。

        根據上面的這些建議,我相信大多數不能重現的Bug都可以重現了。當然由於測試的系統的開發語言、開發平臺等因素的不同,恕筆者不能一一列舉出無法重現的Bug發生所有原因。如果還是遇到某些嚴重的、卻又無法重現的Bug,那麼也不必驚慌,你可以按照下面的操作去查找產生Bug的原因:

        1.  積極回憶Bug的症狀和所有的環境因素,一絲一毫的細節都不要錯過。

        2.  與開發人員、DBA、系統設計人員、項目經理等一起分析那些環境因素,根據以往的經驗分析影響此Bug重現的重要因素,並在相同的環境上安裝同樣的系統進行測試,以驗證所做的猜測。

        另外,對於某些無法重現、但嚴重程度不是很高的Bug,可以暫時只作記錄、而不必花費大量的人力和物力去分析。如果下次又出現了,那麼根據發生的頻率再去分析是否需要跟蹤此Bug。如果需要跟蹤它,那麼在它又出現後一定要立刻對當時的環境進行截圖,如錯誤信息、界面、日誌等。這樣也利於開發人員定位、分析它,從而準確、快速地修復它。如果條件允許,測試人員應立即保護現有環境,並邀請相關的開發人員和系統分析人員一起研討產生此問題的原因和解決方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章