探索性測試是一個特殊的測試過程,它的測試活動和測試內容是動態變化的,更多的是通過測試執行的結果來指導后續的測試活動,花在文檔上的時間很少,這也就意味著探索性測試的可管理性不強,對于每個測試人員執行的測試活動的進度和效果很難監控。為了更好地開展探索性測試,Jonathan Bach提出了一種“基于會話的測試管理(Session-basedtest management,縮寫為SBTM)”方法,這種方法可以對探索性測試進行更好地管理,把探索性測試的優勢更好地發揮出來。
基于會話的測試管理是一種用于管理探索性測試的方法。這里的會話(Session)是指測試工作的基本單位,在一個會話中測試工作是連續進行的,不會被打斷。會話中的測試活動是為了實現某個具體的目標,同時測試活動的結果是可評審的。任何可能會被電話、會議、電子郵件或其他非測試活動打斷的測試活動,都不適合成為一個會話。在一個會話中,測試人員應該專注于測試活動而不被打擾。在每個會話結束的時候,應創建描述已進行的測試活動的報告,該報告通常稱為會話單(Session Sheet)。測試經理需要對該會話的報告或者會話單進行評審。一個會話可以持續90分鐘,也可以是3個小時,對于會話的持續時間并沒有嚴格的要求,通常情況下,每個測試人員一天完成的測試會話不要超過3個。
由于每個會話持續的時間比較短,所以對于每個會話進行報告的周期也相應比較短,但是內容也很簡潔。Jonathan Bach將一個測試會話中的任務分成三類:
1、創建會話:建立測試環境和增進對產品的理解。
2、測試設計和執行:細查測試對象,尋找問題。
3、缺陷調查和報告:開始于測試人員發現某些疑似失效的問題。
上述的三個任務并不一定是順序執行的,在實際的操作中經常都是重疊的。每個測試會話完成后,測試人員要填寫會話單。基于會話的測試管理中的會話單主要包括:
1、會話章程(Session Chapter):主要描述會話的任務和可能采用的策略,會話的章程可能是測試人員自己選擇的,也可能是測試經理分配的。
2、測試人員姓名。
3、起始的日期和時間。
4、任務分解(以會話的形式):通常分別描述測試設計和執行、缺陷調查和報告。
5、數據文件:描述測試會話中使用的數據文件。
6、測試備注:對于測試活動中的任何特別的說明都可以記錄在這里。
7、問題:描述測試過程中碰到的問題,例如:由于測試環境不足,有些測試沒有執行。
8、缺陷:描述測試過程中發現的缺陷。
測試經理根據測試人員提交的會話單,在測試團隊內進行任務報告會議。在任務報告會議中,測試經理回顧測試活動、改善章程、從測試人員處取得反饋、估算和計劃進一步的會話。任務報告的議程主要是簡要地檢驗以下各項,并明確下一步的測試會話章程。
1、經過:在會話期間發生了什么?
2、結果:會話取得了什么成果?
3、展望:還有什么有待解決的問題?
4、障礙:要進行良好的測試有些什么障礙?
5、感受:測試人員對上述項的感覺?
在探索性測試中,測試的對象和內容比較發散,經常出現具體的測試活動和會話章程不一致的情況。那么在最后的會話單中要對會話章程進行修改,以保證提交的會話單如實地反映了實際的測試活動。如果需要的話,也可以新建一個新的會話來記錄這次測試活動。雖然不建議會話的持續時間太長,但是在實際的測試過程中,仍然會出現一個會話占用測試人員一整天的情況,通??赡苁且驗闀挱h境的搭建或者缺陷的調查花費的時間比預期的要大。這種情況下也沒有必要強行把會話拆成多個更小的會話,可以根據測試的需要保留這些持續時間較長的會話。一個測試會話最好是在沒有被打斷的情況下持續地進行,但有時候可能需要參加一個緊急的會議,或者開發人員修復緊急的缺陷而需要測試人員的幫助,這個時候測試會話不得不被打斷。這種情況下,測試會話的中止和恢復是允許的。