場景法設計測試用例數據庫
在面向對象的軟件開發中,事件觸發機制是編程中常常遇到的。編程
(一)場景法原理測試
如今的軟件幾乎都是用事件觸發來控制流程的。像GUI軟件、遊戲等。事件觸發時的情景造成了場景,而同一事件不一樣的觸發順序和處理結果就造成了事件流。這種在軟件設計方面的思想能夠引入到軟件測試中,能夠生動地描繪出事件觸發時的情景,有利於設計測試用例,同時使測試用例更容易理解和執行。網站
在測試一個軟件的時候,在場景法中,測試流程是軟件功能按照正確的事件流實現的一條正確流程,那麼咱們把這個稱爲該軟件的基本流;而凡是出現故障或缺陷的過程,就用備選流加以標註,這樣的話,備選流就能夠是從基本流來的,或是由備選流中引出的。因此在進行圖示的時候,就會發現每一個事件流的顏色是不一樣的。spa
基本流和備選流:以下圖所示,圖中通過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是通過用例的最簡單的路徑。備選流用不一樣的色彩表示,一個備選流可能從基本流開始,在某個特定條件下執行,而後從新加入基本流中(如備選流1和3);也可能起源於另外一個備選流(如備選流2),或者終止用例而再也不從新加入到某個流(如備選流2和4)。設計
在這個圖中,有一個基本流和四個備選流。對象
每一個通過用例的可能路徑,能夠肯定不一樣的用例場景。從基本流開始,再將基本流和備選流結合起來,能夠肯定如下用例場景:blog
場景 1 基本流遊戲
場景 2 基本流 備選流 1事件
場景 3 基本流 備選流 1 備選流 2
場景 4 基本流 備選流 3
場景 5 基本流 備選流 3 備選流 1
場景 6 基本流 備選流 3 備選流 1 備選流 2
場景 7 基本流 備選流 4
場景 8 基本流 備選流 3 備選流 4
下面是場景法的基本設計步驟:
(二)場景法例子
1、在線購物系統
咱們都在噹噹網或china-pub華章網上書店都訂購過書籍,整個訂購過程爲:用戶登陸到網站後,進行書籍的選擇,當選好本身心儀的書籍後進行訂購,這時把所需圖書放進購物車,等進行結賬的時候,用戶須要登陸本身註冊的賬號,登陸成功後,進行結賬並生成訂單,整個購物過程結束。
那麼咱們經過以上的描述,從中肯定哪是基本流,哪些是備選流:
基本流 |
用戶登陸到網站,書籍的選擇,進行訂購,把所需圖書放進購物車,等進行結賬的時候,登陸本身的賬號,登陸成功後,生成訂單 |
備選流1 |
賬號不存在 |
備選流2 |
賬號錯誤 |
備選流3 |
密碼錯誤 |
備選流4 |
無選購書籍 |
備選流x |
退出系統 |
根據基本流和備選流來肯定場景:
場景1-購物成功 |
基本流 |
|
場景2-賬號不存在 |
基本流 |
備選流1 |
場景3-賬號錯誤 |
基本流 |
備選流2 |
場景4-密碼錯誤 |
基本流 |
備選流3 |
場景5-無選購書籍 |
基本流 |
備選流4 |
咱們來設計用例
對於每個場景都須要肯定測試用例。能夠採用矩陣或決策表來肯定和管理測試用例。
下面顯示了一種通用格式,其中各行表明各個測試用例,而各列則表明測試用例的信息。
本例中,對於每一個測試用例,存在一個測試用例ID、條件(或說明)、測試用例中涉及的全部數據元素(做爲輸入或已經存在於數據庫中)以及預期結果。
經過從肯定執行用例場景所需的數據元素入手構建矩陣。而後,對於每一個場景,至少要肯定包含執行場景所需的適當條件的測試用例。例如,在下面的矩陣中,V(有效)用於代表這個條件必須是 VALID(有效的)纔可執行基本流,而 I(無效)用於代表這種條件下將激活所需備選流。下表中使用的「n/a」(不適用)代表這個條件不適用於測試用例。
測試用例ID |
場景/條件 |
賬號 |
密碼 |
選購書籍 |
預期結果 |
1 |
場景1:購物成功 |
V |
V |
V |
成功購物 |
2 |
場景2:賬號不存在 |
I |
n/a |
n/a |
提示賬號不存在 |
3 |
場景3:賬號錯誤 |
I |
V |
n/a |
提示賬號錯誤,返回基本流步驟2 |
4 |
場景4:密碼錯誤 |
V |
I |
n/a |
提示密碼錯誤,返回基本流步驟3 |
5 |
場景5:無選購書籍 |
V |
V |
I |
提示選購書籍,返回基本流步驟5 |
咱們看到以上表中,是把每一個場景成立的條件進行了分析,基本上已經明確了測試用例的數量,如今只要把真實數據填充上,那麼整個測試用例就完成了。
測試用例ID |
場景/條件 |
賬號 |
密碼 |
選購書籍 |
預期結果 |
1 |
場景1:購物成功 |
xu |
123456 |
《書》 |
成功購物 |
2 |
場景2:賬號不存在 |
zhang |
n/a |
n/a |
提示賬號不存在 |
3 |
場景3:賬號錯誤 |
zhou |
123456 |
n/a |
提示賬號錯誤,返回基本流步驟2 |
4 |
場景4:密碼錯誤 |
xu |
123$%^ |
n/a |
提示密碼錯誤,返回基本流步驟3 |
5 |
場景5:無選購書籍 |
xu |
123456 |
空 |
提示選購書籍,返回基本流步驟5 |