任何一個軟件公司發(fā)布的產(chǎn)品都有缺陷,所以軟件測試是產(chǎn)品開發(fā)過程中必不可少的一部分。經(jīng)過長期的發(fā)展,軟件測試方法不斷完善,探索式測試方法也是其中的一種。本文將結合實際工作談談對探索式測試方法的理解。
探索式測試方法主要分為兩類:
局部探索式測試法針對測試人員在運行任何一個測試用例時所需要作出的細微決定;
全局探索式測試法針對測試人員在編制測試計劃和測試用例設計時所需要考慮的廣泛的戰(zhàn)略性問題。
一、局部探索式測試法
1 輸入:合法輸入、非法輸入
1)輸入篩選器
第一,開發(fā)是否正確的實現(xiàn)了該功能?
第二,是否可以繞過屏蔽器?或者當輸入值進入系統(tǒng)后還可以修改?
2)輸入檢查
測試時必須仔細閱讀每一條錯誤信息,檢查該信息是否寫錯了,錯誤信息還可以透漏開發(fā)編程時的一些想法。
3)異常處理
如果測試看到一個通用出錯信息,建議測試再反復測試同一段函數(shù),繼續(xù)使用剛才引發(fā)異常的輸入數(shù)據(jù),或稍微修改一下,看看會不會導致出錯。嘗試運行其他一些要調用該函數(shù)的測試用例,看看會發(fā)生什么情況。
4)常規(guī)輸入和非常規(guī)輸入
例如:
和Ctrl、Alt、Esc按鍵組合的字符,操作系統(tǒng)、編程語言、瀏覽器和運行時環(huán)境的特定保留詞或按鍵。
5)使用輸出來指導輸入選擇
①首先確定希望程序產(chǎn)生的輸出結果,然后考察所有用戶場景,來確定輸入;
②先觀察輸出結果,再選擇新的輸入,使新的輸出為重新計算后的結果。
2 狀態(tài)
軟件的一個狀態(tài)就是狀態(tài)空間中的一個點,它由所有內(nèi)部數(shù)據(jù)結構的取值來唯一確定。
①使用狀態(tài)信息來幫助尋找相關的輸入,如果兩個或更多個輸入在某種程度上關聯(lián),那么它們應該放在一起測;
②使用狀態(tài)信息來辨識重要的輸入序列,當一個輸入導致狀態(tài)信息被更新時,緊接著再多次使用同樣的輸入會導致一連串的狀態(tài)變化。
例如:
對數(shù)據(jù)庫中的表進行多次更新,查看數(shù)據(jù)是否會溢出。
3 代碼路徑
測試需明確知道代碼的所有選擇結構,并理解哪些輸入會導致軟件走這條分支而不走另一條。
4 用戶數(shù)據(jù)
①如何模仿真實的用戶數(shù)據(jù)
②使用真實的用戶數(shù)據(jù)時,應考慮如何解決“隱私問題”。
5 執(zhí)行環(huán)境
是指測試使用的操作系統(tǒng)及其當前的配置,還包括運行在同一操作系統(tǒng)上會和被測試軟件進行交互的其他一些應用程序,以及會間接或直接影響被測試軟件本身或影響被測試軟件運行的任何驅動程序、代碼、文件、設置等,還包括軟件當前連接的網(wǎng)絡情況、網(wǎng)絡的可用帶寬、性能等。