軟件測試用例設計(三)——場景法

場景法

影子

本來想直接跳過場景法的,今天羣友提出問題:
1、面試官問:場景法舉例說明,怎麼回答?
反正我有點懵,雖然在工作過程中,我一直運用的是場景法,但我說不出場景法的觀點來。
2、羣友熱心回答:正向流和逆向流,基本流和備選流
然而,我還是非洲問號臉???

場景法介紹

首先上網查資料,給了我一個圖,這個圖是啥啊???
場景業務流通常分爲基本流、備選流、異常流程
在這裏插入圖片描述
然後看文字:
我先放上查到的定義。·
基本流:基本流表示通過業務流程時輸入都正確,能達到目標的流程。

(插卡–》輸入正確密碼–》輸入金額–》取款–》取卡)

備選流:備選流表示通過業務流程時輸入錯誤(或者操作錯誤)導致流程存在反覆,但是經過糾正後仍能達到能達到目標的流程
.(插卡–>輸入錯誤密碼–》輸入正確密碼–》輸入金額–》取款–》取卡)

異常流:異常流表示通過業務流程時輸入錯誤(或者操作錯誤)產生異常終止流程 (插卡–>輸入3次錯誤密碼–》吞卡)

結合例子和文字描述就很清楚了:
基本流:
業務流程開始——業務流程結束
(1)只有1種情形,中間的所有業務流程也是正確的,最後達到的結果是正確結束,這個場景是一個基線。
舉個例子:就是你從起點開始,一直沿着正確的道路走,最後到達終點。
備選流:
(1)業務流程開始——業務流程存在反覆——業務流程結束
(2)業務流程開始——業務流程存在反覆——業務流程中斷——未結束
舉個例子:
你從起點開始,走到中途走錯了路,但是你認得路,於是沿着新的路線,雖然繞了路,但是最終還是走到了終點
你從起點開始,走到中途走錯了路,但是你不認得路,於是開始探路,但是最終還是沒有走到終點

異常流:
業務流程開始——業務流程中斷——未結束
在這種情況下正確的業務流程沒有走完
舉個例子:
就是你從起點開始,走到中途走錯了路,但是你被困於死迷宮,然後你就一直到不了終點

場景法用例設計舉例

例子舉的有點不是很恰當,但我對場景法很自信,因爲我測試的項目天天在用。
一個重要的測試模塊就是登錄,我們的登錄方式是密碼+短信,密碼輸錯5次後賬號會凍結,短信驗證碼有效時間是200s,驗證錯誤超過3次後,短信驗證碼也會失效
我先用文字描述一下
基本流:
(1)輸入正確賬號——輸入正確密碼——點擊登錄,獲取短信驗證碼成功——200s內輸入正確短信驗證碼——再次點擊登錄按鈕——登錄成功——返回上次登錄時間和IP——登錄日誌記錄正確
備選流
(1)輸入正確賬號——輸入四次錯誤密碼——輸入正確密碼——點擊登錄,獲取短信驗證碼成功——200s內輸入正確短信驗證碼——再次點擊登錄按鈕——登錄成功——返回上次登錄時間和IP——登錄日誌記錄正確
(2)輸入正確賬號——輸入五次錯誤密碼——輸入正確密碼——點擊登錄,提示賬號已被凍結——登錄失敗——登錄日誌記錄正確

異常流
(1)輸入正確賬號——輸入錯誤密碼——登錄失敗——登錄日誌記錄正確
(2)輸入凍結賬號——輸入正確密碼——登錄失敗——登錄日誌記錄正確

 這裏強調一下,場景流梳理實際上是業務的梳理,意味着相關的業務場景必須都考慮進去,真正達到業務流程開始從業務流程結束
 實際的業務場景要考慮的更多
 區分備選流和異常流主要是看用例結束後業務流程是否是正確結束

場景法設計用例步驟和表示

步驟:
1、首先確定執行用例場景所需的數據元素
2、然後構建矩陣,最後要確定包含執行場景所需的適當條件的測試用例。
在矩陣中,V表示這個條件必須是有效的纔可執行基本流,I表示這種條件下將激活所需備選流 ,n/a表示這個條件不適用於測試用例。
表示:
每一個場景都需要確定測試用例,一般採用矩陣或決策表來確定和管理測試用例。第一行是測試用例ID、場景/條件、測試用例中涉及的所有數據元素和預期結果。

場景法舉例

【舉例1:】
還是登錄場景,我們的登錄方式是密碼+短信,密碼輸錯5次後賬號會凍結15分鐘,短信驗證碼有效時間是200s,驗證錯誤超過3次後,短信驗證碼也會失效
在這裏插入圖片描述符號定義:
V:Valid
I:Invalid
n/a:Not Applicable
涉及到的數據元素
賬號、密碼、短信驗證碼

這裏舉的例子比較簡單

擴展例子

遊戲簽到場景測試用例
這裏先看一下游戲策劃書寫的遊戲簽到策劃方案
https://gameinstitute.qq.com/community/detail/111163
其中:附上一個APP的簽到界面
在這裏插入圖片描述再配上一個遊戲的簽到界面。
在這裏插入圖片描述
1、進入簽到界面,頁面顯示正確和美觀
2、第N(N=1,2,3,4,5,6,7)天簽到,當天簽到狀態變爲已簽到,領取當天的簽到獎勵
3、第N(N=1,2,3,4,5,6,7)天沒有簽到,當天簽到狀態變爲未簽到,無法領取當天的到獎勵
4、連續M(M=1,2,3,4,5,6,7)天簽到,當天簽到狀態變爲已簽到,領取到當天的簽到獎勵和累計的簽到獎勵
5、連續M(M=1,2,3,4,5,6,7)天簽到中斷,當天簽到狀態變爲未簽到,無法領取到當天的簽到獎勵和累計的簽到獎勵,重新計算累計簽到時間
6、當天簽到後,領取簽到獎勵,獎勵領取狀態變更正確,文字提示,增加到累計簽到時間
7、獎勵領取成功,獎勵發放的物品種類、數量增加正確,並且領到的物品能夠在遊戲內正常的消耗和被使用
8、一天簽到結束後,當天不再顯示簽到界面,如果當天一直不簽到,當天登錄首先進入的是簽到界面
9、一段時間的簽到活動時間(比如:一週)結束後,是否開始新一輪的遊戲簽到7天活動
10、簽到的時間規則:在約定時間範圍內簽到,簽到得到今天的獎勵,在約定時間外簽到,可能沒有獎勵(一般情況下,簽到時間範圍和自然日有區別)
11、簽到對所有等級用戶都開放,VIP等級有加倍獎勵

異常場景:
1、連續點擊N次簽到,只領取一次獎勵,
2、多次領取一天簽到、累計簽到獎勵

擴展:補籤功能
1、補籤的天數+實際簽到天數<=最大簽到天數
2、補籤次數限制

其實簽到的這個例子並不是找的特別好,但我覺得有代表性。你們發現沒有:當我把場景法的矩陣順時針旋轉90度時,是不是演化成了判定表,這是因爲簽到只有兩種狀態。
但是我覺得你在面試遊戲測試的時候,面試官肯定想考察的是你的場景考慮的全不全的問題。也就是文章末尾提到的整體業務感覺的問題。

總結

最後,總結一下場景法和因果圖(用例設計二和三提到的方法)兩種方法的區別和適用範圍。
因果圖的分析步驟:
1、在需求規格說明書中找出哪些是輸入條件(原因),哪些是輸出條件(結果)
2、判定表的每一行首寫輸入條件、輸出條件
3、根據原因和結果找對應的邏輯關係,用符號0,1,-分別表示滿足、不滿足和無關,每一列是一個用例

場景法的分析步驟:
1、根據說明,找出基本流
2、根據基本流中不同的數據元素據此找出備選流和異常流
3、根據備選流和異常流構造新的場景

因果圖的適用範圍
因果關係很複雜,用場景法很難找到一個基本流時,不妨關注需求規格說明,找出輸入條件和輸出條件的因果關係,利用因果圖法和判定表反而能快速梳理條件之間的因果關係
eg:上一篇博文中的售貨機就不使用場景法,因爲你用場景法很難去構造一個基本流。沒有了基本流作爲一個準繩,用場景法構造會很費腦力,而且也很容易忽略條件之間的因果關係

場景法的適用範圍
場景法多用於系統的典型業務和典型功能,首先能很方便的構造一個基本流,因果圖側重因果關係,用0和1區分有效無效的數據元素,不如場景法的矩陣圖來的直觀,也不能窮盡場景法的所有場景
(因爲場景法不只有0和1兩種場景,舉個例子:登錄場景賬號狀態的校驗有賬號是否輸入、賬號是否存在、賬號是否過期等校驗,用判定表會增加行數,也不方便於我們理清所有的業務流)

場景法的注意點

注意:
場景法偏重於大的業務流程,目的是用業務流把各個孤立的功能點串起來,所以在用場景法設計用例時,測試人員必須建立整體業務感覺,避免忽略業務流程要點
當然,在整理測試用例的過程中,我們也不要忘記使用等價類和邊界值方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章