一、場景法
場景法就是模擬用戶操作軟件時的場景,主要用於測試系統的業務流程。當拿到一個測試任務時,我們並不是先關注某個控件的邊界值、等價類是否滿足要求,而是先要關注它的主要功能和業務流程是否正確實現,這就需要使用場景法來完成測試。當業務流程測試沒有問題,也就是該軟件的主要功能沒有問題時,我們再重點從邊界值、等價類等方面對控件進行測試。
在冒煙測試時也主要采用場景法進行測試進行測試。
1.1 場景法中重要的概念
(1)基本流:按照正確的業務流程來實現的一條操作路(也就是模擬正確的操作流程);
(2)備選流: 導致程序出現錯誤的操作流程(So,模擬錯誤的操作流程)。
給大家截了個圖,可以參考一下:

1.2 場景法的基本設計步驟
(1)根據說明,描述出程序的基本流及各項備選流;
(2)根據基本流和各項備選流生成不同的場景;
(3)對每一個場景生成相應的測試用例。
案例:
使用場景法設計ATM機取款功能的測試用例
步驟一:根據說明,描述出程序的基本流及各項備選流;



步驟二:根據基本流和各項備選流生成不同的場景


步驟三:對每一個場景生成相應的測試用例,例如:

大家可以試着編寫更好的測試用例,在之后,我也會相繼給大家寫一些或上傳比較好的用例,我認為還是可以的\(^o^)/~
二、狀態圖
給大家展示的狀態圖轉換法案例:貨幣轉換器
2.1.1案例演示
輸入人民幣金額,選擇要轉換的國家,再輸入匯率,即可計算所輸入的人民幣等價的貨幣金額。
用戶的操作可能是:
輸入人民幣金額->選擇國家->輸入匯率->點擊“計算”按鈕;
選擇國家 ->輸入匯率->輸入人民幣金額->點擊“計算”按鈕;
輸入人民幣金額->選擇國家->點擊“清除”按鈕。。。
2.1.2兩個重要的概念
1、軟件的狀態
軟件運行到某個時刻所處的情況
例如:
(1)剛剛啟動處於“空閑”狀態;
(2)輸入人民幣金額以后變為“人民幣金額已輸入”狀態;
(3)所有輸入正確完成后,點擊“計算”按鈕,程序應該處於“顯示等價金額”狀態;
(4)點擊“清除”按鈕后處於清除狀態。
2、輸入的動作
用戶向軟件進行的操作
例如:
(1)輸入人民幣金額
(2)點擊某個國家單選按鈕
(3)點擊“計算”按鈕
2.2 狀態轉換圖法
找出軟件所有的狀態以及導致這些狀態發生變化的所有輸入動作,進而用圖形的方法把相關聯的輸入動作和狀態聯系在一起,真實模擬用戶的操、作順序流程。
2.2.1 狀態轉換圖法的核心
(1)軟件所有的狀態
(2)導致狀態發生變化的所有輸入動作
2.2.2 使用狀態轉換圖法的步驟
(1)找出程序的所有輸入動作,
並進行編號列出用戶能夠向軟件輸入的每一個獨立的動作,並進行編號;
(2)找出程序的所有狀態,
可以認為用戶每輸入一個動作就會使程序的狀態發生變化,如果不能決定是否為一個獨立狀態,可以先假設“是”
(3)找出什么動作會導致什么狀態發生,畫出狀態轉換圖(一般情況下這是一個反復的過程);
(4)把相關聯的動作和狀態聯系起來,設計測試用例。
例子:
使用狀態轉換圖法分析貨幣轉換器程序
步驟一:找出程序的所有輸入動作,並進行編號;

步驟二:找出程序的所有狀態
可以認為用戶每輸入一個動作就會使程序的狀態發生變化
1.系統啟動后處於空閑狀態
2.人民幣金額已輸入狀態
3.國家已選擇狀態
4.國家已選擇、匯率已輸入狀態
5.人民幣金額已輸入、國家已選擇狀態
6.所有輸入已完成狀態
7.顯示等價金額狀態
8.錯誤提示狀態
(1)人民幣未輸入或輸入錯誤;
(2)國家未選擇錯誤;
(3)匯率未輸入或輸入錯誤。
9.清除狀態
把清除狀態看做空閑狀態也可以
10.退出狀態
步驟三:找出什么動作會導致什么狀態發生,畫出狀態轉換圖(一般情況下這是一個反復的過程)
第1輪、將所有可能的輸入單獨加載到被測系統的空閑狀態,得到新的狀態

第2輪、將所有可能的輸入單獨加載到上一步得到的每一個狀態中,再得到新的狀態。

第3輪、1.先找到主要動作和狀態

第3輪、2.先找到次要動作和狀態

第4輪、1.先找主要動作和狀態

第4輪、2.先找次要動作和狀態

第5輪

步驟四:根據狀態轉換圖,把相關聯的動作和狀態聯系起來,設計測試用例
(1)先寫主要操作(功能比較重要或用戶操作比較頻繁的動作),后寫次要操作。
(2)為了減少測試用例數量,一條測試用例最好沿着狀態轉換圖的一條路徑編寫完。




以此類推,寫出所有測試用例。。。
最后給大家總結了狀態轉換圖法小知識點:
(1)每種狀態至少訪問一次。無論用什么方法,每一種狀態都必須測試。
(2)測試看起來最常見最普遍的狀態轉換。可以根據產品說明書,通過與客戶、開發人員溝通,了解哪些操作更常用、更重要。
(3)測試狀態之間最不常用的分支。這些分支是最容易被產品設計者和程序員忽視的。
(4)測試所有錯誤狀態及其返回值。錯誤沒有得到正確處理、錯誤提示信息不正確等情況是常有的。
