*建立起一個全局目標后,再開始測試
探索式測試的幾個目標:
1、理解應用程序如何工作、它的接口看起來怎樣、它實現了哪些功能
2、強迫軟件展示全部能力:
*目的是讓軟件努力運行,證明軟件確實實現了設計時所要求達到的功能
3、找到缺陷,并有目的的使缺陷數量降為零
把軟件特性劃分成幾個相互重疊的“區域”,具體區域和測試方法如下:
商業區:
*含義:用戶所要使用的軟件特性和功能,你的軟件包裝盒上描述的特性和掩飾的特性及代碼
測試方法:
1、指南測試法:根據用戶說明書來測試
2、賣點測試法:觀摩哪些銷售演示,測試演示過程,并且可以加上質疑測試法
3、地標測試法:提前確定關鍵的軟件特性,確定他們的前后順序
4、極限測試法:向軟件提出最困難的問題
5、快遞測試法:關注于數據,找到每個和數據有接觸的軟件特性
6、遍歷測試法:通過選定一個目標(例如所有菜單項、所有錯誤消息或所有對話框),然后使用可以發現的最短路徑來訪問目標包含的所有對象
歷史區:
*含義:從前版本遺留下的代碼,還有那些曾經出現較多缺陷的特性和功能
測試方法:
1、惡鄰測試法:反復測試缺陷特別多的地方
2、博物館測試法:關注被接受重新修改的老代碼,或者是沒被改動就放到新環境中運行的老代碼
3、上一版測試法:回歸測試,關注新版本中無法再運行的測試用例
娛樂區:
*含義:軟件的輔助特性,而不是主線特性
測試方法:
1、配角測試法:關注和主要的特性非常鄰近的特性,例如和主要的特性一同出現在顯示器上,容易被用戶注意
2、深巷測試法:軟件中最不可能被用到的或者最不吸引用戶的特性,有助于提高代碼覆蓋率
*注:多個特性混合在一起測試時,比如重要的和不重要的混在一起時,可以考慮:
**有關輸入的問題:這兩個特性會不會處理同一輸入
**有關輸出的問題:這兩個特性功能是否在可見的用戶界面上操作同一塊區域?他們會產生同一個輸出嗎?
**有關數據的問題:這兩個特性會操作其共享的一些內部數據?是讀取共享數據、還是修改共享數據
3、通宵測試法:性能測試和壓力測試,永遠不關閉程序,連續不斷的使用某些特性來測試軟件
旅游區:
*含義:只對新用戶有吸引力的特性和功能,它關心的是快速訪問軟件的各種功能,而不是關心軟件是否工作
測試方法:
1、收藏家測試法:收集軟件的輸出,收集的越多越好
*背后的思想是測試人員到達所有那些可到達的地方并把觀察到的輸出結果記錄下來
2、長路徑測試法:測試離應用程序開始點盡可能遠的特性,例如:哪個特性需要點擊N次才能被用到,選定該特性,一路點擊過去,然后測試它
*指導思想:到達目的地前盡量多的在應用程序中穿行,因而要選取埋在應用程序最深處的特性
*可以結合收藏家測試法
3、超模測試法:只關心表面的東西
4、測一送一測試法:測試時運行一個應用程序,然后運行該應用程序的另外一個拷貝,然后再運行一個拷貝時,關注網絡傳輸數據、文件操作等方面
旅館區:
*含義:指一些經常被忽視的或者在測試計劃中較少描述的次要的及輔助功能
測試方法:
1、取消測試法:
*啟動操作然后停止它,并花些時間在應用程序里四處檢查
*找應用程序中最耗時的操作來充分實施這種方法
*可以嘗試開始一個操作,不要停止它,然后再開始另一個同時的操作
*在取消被測對象之前應該改變被測對象的狀態,這點也很重要
2、懶漢測試法:做盡量少的實際工作,
*可以嘗試接受所有的默認值,測試程序對默認值的處理情況
破舊區:
*含義:指一些經常被忽視的或者在測試計劃中較少描述的次要的及輔助功能
測試方法:
1、注意輸入的限制,哪些是非法輸入;注意不按照指定的順序做事情
2、重復執行同樣的操作,重復輸入同樣的數據
總結:
跟蹤哪種測試法發現的缺陷最多,哪種執行時間最少,哪種的代碼、界面、功能覆蓋最多等