基於風險的測試(Risk-based testing)
文/楊學明
一、基於風險的測試起源
基於風險的測試起源,在軟件測試領域,基於風險測試最早的是測試大師Boris Beizer《軟件測試技術》提及,測試時需要考慮到風險。
接下來James Bach 在1995年第一次介紹了基於風險的測試(RBT),然后又在1999年在《啟發式基於風險的測試》(“Heuristic Risk-based Testing”)中更詳細的描述:
二、基於風險的測試定義
基於風險的測試定義:根據軟件產品的風險度通過出錯的嚴重程度和出現的概率來計算,測試可以根據不同的風險度來決定測試的優先級和測試的覆蓋率。
三、基於風險的測試分析流程
1 列出軟件的所有功能和特性
2 確定每個功能出錯的可能性
3 如果某個功能出錯或欠缺某個特征,對顧客的影響有多大
4 計算風險度
5 根據可能出錯的跡象,來修改風險度
6 決定測試的范圍,編寫測試方案
四、基於風險的測試實踐三步
1 如何識別風險(頭腦風暴會議,和專家的討論,以及檢查表等
2 如何評估識別出的風險(利用二維可能性與結果模型表述)
可能性相關的屬性有:
使用頻度
使用復雜度
實現復雜度
與風險的結果相關的屬性有:
用戶結果
業務結果
測試的結果
如下表是經典的基於測試風險的分析表,僅參考:
序號 |
風險特性 |
需求變更頻繁 |
架構設計擴展性 |
編碼人員經驗欠缺 |
。。。 |
風險概率 |
用戶影響 |
業務影響 |
測試策略 |
1 |
特性1 |
|
|
|
|
|
|
|
|
2 |
特性2 |
|
|
|
|
|
|
|
|
3 |
特性3 |
|
|
|
|
|
|
|
|
3 如何確定合理的減輕風險的活動(用一組適合的測試用例來覆蓋每一個風險項)
每一個高風險必須被正向測試用例及負向測試用例所覆蓋。另外,至少50%與高風險相關的測試用例應該具有最高等級的測試用例優先級。中間等級的風險主要由正向測試用例覆蓋,並且可以分布於最高的三個測試用例優先級中等。