場景法是經過運用場景來對系統的功能點或業務流程的描述,從而提升測試效果的一種方法。數據庫
場景法通常包含基本流和備用流,從一個流程開始,經過描述通過的路徑來肯定的過程,通過遍歷全部的基本流和備用流來完成整個場景。場景主要包括4種主要的類型:正常的用例場景,備選的用例場景,異常的用例場景,假定推測的場景。測試
上圖爲,用例基本流和備選流(注意:備選流的起止點)網站
基本流:採用直黑線表示,是通過用例的最簡單的路徑(無任何差錯,程序從開始直接執行到結束)spa
備選流:採用不一樣顏色表示,一個備選流可能從基本流開始,在某個特定條件下執行,而後從新加入基本流中(如1和3),也能夠起源於另外一個備選流(如2),或終止用例,不在加入到基本流中(如4);(各類錯誤狀況)設計
上圖生成的場景以下:orm
場景1:基本流事件
場景2:基本流 備選流1圖片
場景3:基本流 備選流1 備選流2ci
場景4:基本流 備選流3get
場景5:基本流 備選流3 備選流2
場景6:基本流 備選流3 備選流2 備選流1
場景7:基本流 備選流4
場景8:基本流 備選流3 備選流4
爲何場景法能如此清晰的描述整個事件?由於,如今的系統基本上都是由事件來觸發控制流程的。如:咱們申請一個項目,需先提交審批單據,再由部門經理審批,審覈經過後由總經理來最終審批,若是部門經理審覈不經過,就直接退回。每一個事件觸發時的情景便造成了場景。而同一事件不一樣的觸發順序和處理結果造成事件流。這一系列的過程咱們利用場景法能夠清晰的描述清楚。
1.根聽說明,描述出程序的基本流及各項備選流
2.根據基本流和各項備選流生成不一樣的場景
3.對每個場景生成相應的測試用例
4.對生成的全部測試用例從新複審,去掉多餘的測試用例,測試用例肯定後,對每個測試用例肯定測試數據值
對於每個場景都須要肯定測試用例。能夠採用矩陣或決策表來肯定和管理測試用例。
下面範例中顯示了一種通用格式,其中各行表明各個測試用例,而各列則表明測試用例的信息。
本例中,對於每一個測試用例,存在一個測試用例ID、條件(或說明)、測試用例中涉及的全部數據元素(做爲輸入或已經存在於數據庫中)以及預期結果。
經過從肯定執行用例場景所需的數據元素入手構建矩陣。而後,對於每一個場景,至少要肯定包含執行場景所需的適當條件的測試用例。例如,在下面的矩陣中,V(有效)用於代表這個條件必須是 VALID(有效的)纔可執行基本流,而 I(無效)用於代表這種條件下將激活所需備選流。下表中使用的「n/a」(不適用)代表這個條件不適用於測試用例。
有一個在線購物的實例,用戶進入一個在線購物網站進行購物,選購物品後,進行在線購買,這時須要使用賬號登陸,登陸成功後,進行付錢交易,交易成功後,生成訂購單,完成整個購物過程。
1. 根聽說明,描述出程序的基本流及各項備選流
基本流:登陸網站,選購物品,帳號登陸,付錢交易,生成訂單
備選流:無帳號,帳號或密碼錯誤,帳號沒有錢,帳號餘額不足 用戶退出系統
2. 根據基本流和各項備選流生成不一樣的場景
場景1:登陸網站,選購物品,帳號登陸,無帳號
場景2:登陸網站,選購物品,帳號登陸,帳號或密碼錯誤
場景3:登陸網站,選購物品,帳號登陸,付錢交易,帳號沒有錢
場景4:登陸網站,選購物品,帳號登陸,付錢交易,帳號餘額不足
場景5:登陸網站,選購物品,帳號登陸,付錢交易,生成訂單
場景6:登陸網站,選購物品,帳號登陸,用戶退出系統
3. 根據場景生成相應的測試用例
測試用例ID |
場景/條件 |
帳號 |
密碼 |
餘額 |
預期結果 |
1 |
場景1:無帳號 |
I |
n/a |
n/a |
提示無帳號 |
2 |
場景2:帳號或密碼錯誤(帳號錯誤,密碼正確) |
I |
V |
n/a |
提示帳號或密碼錯誤從新輸入 |
3 |
場景2:帳號或密碼錯誤(帳號正確,密碼錯誤) |
V |
I |
n/a |
提示帳號或密碼錯誤從新輸入 |
4 |
場景3:帳號餘額不足 |
V |
V |
I |
提示帳號餘額不足 |
5 |
場景4:帳號沒有錢 |
V |
V |
I |
提示帳號餘額不足 |
6 |
場景5:購物成功 |
V |
V |
V |
生成訂單 |
7 |
場景6:操做中退出系統 |
V |
V |
用戶退出系統 |
4. 根據上表,設計數據,填入數據
測試用例ID |
場景/條件 |
帳號 |
密碼 |
餘額 |
預期結果 |
1 |
場景1:無帳號 |
h |
n/a |
n/a |
提示無帳號 |
2 |
場景2:帳號或密碼錯誤(帳號錯誤,密碼正確) |
f |
0 |
n/a |
提示帳號或密碼錯誤從新輸入 |
3 |
場景2:帳號或密碼錯誤(帳號正確,密碼錯誤) |
ff |
I |
n/a |
提示帳號或密碼錯誤從新輸入 |
4 |
場景3:帳號餘額不足 |
ff |
0 |
10 |
提示帳號餘額不足 |
5 |
場景4:帳號沒有錢 |
ff |
0 |
0 |
提示帳號餘額不足 |
6 |
場景5:購物成功 |
ff |
0 |
500 |
生成訂單,餘額減小 |
7 |
場景6:操做中退出系統 |
ff |
0 |
用戶退出系統 |