功能測試中遇到不可重現軟件缺陷的解決策略軟件測試
在測試人員提交軟件缺陷報告后,最不希望看到的這些缺陷被開(kāi)發(fā)人員忽略,盡管你堅信這一定是軟件缺陷,而罪魁禍首就是這些缺陷不可重現!一旦出現這樣的情況,測試人員會(huì )很被動(dòng),開(kāi)發(fā)人員也會(huì )對測試人員有意見(jiàn)。這就使得關(guān)系本來(lái)就不怎么融洽的測試人員和開(kāi)發(fā)人員之間的關(guān)系更加緊張;對于整個(gè)時(shí)間緊湊的項目來(lái)說(shuō),無(wú)異于是火上澆油。為了減少這種尷尬情況的出現,非常有必要分析一下軟件缺陷不能重現的原因。
1. 測試環(huán)境不一致
從廣義上來(lái)說(shuō),保證或影響軟件的任何因素都是環(huán)境,例如,系統的構造版本、應用服務(wù)器的類(lèi)型和版本、瀏覽器的語(yǔ)音和版本等。
以下就是我們會(huì )遇見(jiàn)的錯誤:某個(gè)B/S(Web應用)架構的系統軟件運行于IE8上,出現了JS(Java Script)腳本錯誤導致頁(yè)面瀏覽異常的軟件缺陷,把IE8降級到IE6或7后,此軟件缺陷就自動(dòng)消失了。
2. 測試配置不一致
程序運行都是基于一定的配置條件下進(jìn)行的,包括被測系統參數設置、基礎數據完整性、業(yè)務(wù)流程完整性等,比如,我們曾經(jīng)在某數據庫產(chǎn)品測試過(guò)程中,由于在安裝界面中選擇了非默認路徑進(jìn)行安裝,結果導致該數據庫物理備份會(huì )恢復功能出錯,而對方在核對缺陷時(shí)按照默認路徑進(jìn)行了安裝,因此缺陷總是無(wú)法重現。
3. 內存泄露
某些系統長(cháng)期運行后出現速度慢的原因是開(kāi)發(fā)人員未養成回收內存的習慣。這類(lèi)錯誤在短期內不會(huì )出現,但當系統長(cháng)期運行時(shí)就會(huì )出現,并且由此會(huì )引發(fā)一系列的問(wèn)題。
4. 數據接口不匹配
一般只有在查看源代碼后才能發(fā)現。某些類(lèi)型的數據會(huì )被系統自動(dòng)轉換,有些數據被截斷或被強制轉換成另外一種數據類(lèi)型時(shí),會(huì )出現一些潛在的錯誤。
基于以上測試過(guò)程中出現的軟件缺陷不能重現的原因,我們提出如下一些解決策略,以更好地從源頭上減少不可重現軟件缺陷的出現。
1. 測試環(huán)境配置充分細致
測試人員在測試前,嚴格核對系統的運行環(huán)境配置要求,并充分考慮系統在線(xiàn)運行后的環(huán)境變化,做好測試環(huán)境配置的全面規劃,注意細節。另外可以使用Ghost對硬件或某個(gè)分區進(jìn)行鏡像備份。
2. 捕獲系統日志,分析異常信息
測試人員應養成記錄系統錯誤日志的習慣,保留系統在出錯時(shí)的真實(shí)狀態(tài)。比如將IE瀏覽器高級選項設置為“顯示每個(gè)腳本錯誤的通知”。
3. 監測系統狀態(tài),異常及時(shí)告警
在實(shí)施系統測試過(guò)程中,我們必須充分關(guān)注系統運行狀態(tài)的變化,一旦系統運行狀態(tài)發(fā)生較大的波動(dòng),勢必會(huì )對后期的業(yè)務(wù)執行帶來(lái)較大的影響。因此,系統運行監測的一個(gè)重要內容是需要及時(shí)反饋系統運行異常,并提供異常報告。
4. 測試數據翔實(shí),易于追溯
測試數據是軟件測試的核心,很多情況下,測試人員為了縮短測試周期,在實(shí)際測試前并沒(méi)有充分編寫(xiě)足夠的測試數據,也沒(méi)有記錄這些測試數據的執行順序和運行軌跡,一旦程序在某個(gè)節點(diǎn)出現問(wèn)題,我們無(wú)法判斷其產(chǎn)生的過(guò)程和引起這個(gè)缺陷的具體測試數據,對我們進(jìn)一步分析軟件缺陷產(chǎn)生的原因會(huì )造成一些不必要的障礙。
正是基于此我們強調在軟件測試開(kāi)始前,我們必須制定完整的測試用例,輔以詳細的測試數據,并明確測試數據的操作步驟和每一步的預期結果,這樣,一旦軟件出現問(wèn)題,我們可以很快進(jìn)行重現和定位。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/