測試基礎—測試用例之場景法和狀態遷移法
(一)場景法原理
現在的軟體幾乎都是用事件觸發來控制流程的。象gui軟體、遊戲等。事件觸發時的情景並形成了場景,而同一事件不同的觸發順序和處理結果就形成了事件流。這種在軟體設計方面的思想可以引入到軟體測試中,可以生動地 描繪出事件觸發時的情景,有利於設計測試用例,同時使測試用例更容易理解和執行。
在測試乙個軟體的時候,在場景法中,測試流程是軟體功能按照正確的事件流實現的一條正確流程,那麼我們把這個成為該軟體的基本流;而凡是出現故障或缺陷的過程,就用備選流加以標註,這樣的話,備選流就可以是從基本流來的,或是由備選流中引出的。所以在進行圖示的時候,就會發現每個事件流的顏色是不同的。
基本流和備選流:如下圖所示,圖中經過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經過用例的最簡單的路徑。備選流用不同的色彩表示,乙個備選流可能從基本流開始,在某個特定條件下執行,然後重新加入基本流中(如備選流1和3);也可能起源於另乙個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。
右圖中經過用例的每條路徑都用基本流和備選流來表示:
基本流用黑色表示,是經過用例的最簡單的路徑。
備選流用不同的彩色表示,乙個備選流可能從基本流開始,在某個特定條件下執行,然後重新加入基本流中(如備選流 1 和 3);也可能起源於另乙個備選流(如備選流 2),或者終止用例而不再重新加入到某個流(如備選流 2 和 4)。
應用的範圍
1) 基本上每個軟體都會用到這種方法,因為每個軟體後面都有業務的支撐
2) 比較常見的有: 網上購物流程, atm機取款流程等
步驟:
1) 畫出需要測試路徑的流程圖(一般選擇工具office visio)
2) 分析基本流和備選流
3) 根據基本流和備選流設計測試用例
下面是場景法的基本設計步驟:
根據說明,描述出程式的基本流及各項備選流
根據基本流和各項備選流生成不同的場景
對每乙個場景生成相應的測試用例
對生成的所有測試用例重新複審,去掉多餘的測試用例,測試用例確定後,對每乙個測試用例確定測試資料值
案例
基本事件流:
1、使用者向atm提款機中插入銀行卡,如果銀行卡是合法的,atm提款機介面提示使用者輸入提款密碼;
使用者輸入該銀行卡的密碼,atm提款機與mainframe傳遞密碼,檢驗密碼的正確性。如果輸入密碼正確,提示使用者輸入取錢金額,提示資訊為,「請輸入您的提款額度」;
使用者輸入取錢金額,系統校驗金額正確,提示使用者確認,提示資訊為「您輸入的金額是***,請確認,謝謝!」,使用者按下確認鍵,確認需要提取的金額;
系統同步銀行主機,點鈔票,輸出給使用者,並且減掉資料庫中該使用者帳戶中的存款金額。
使用者提款,銀行卡自動退出,使用者取走現金,拔出銀行卡,atm提款機介面恢復到初始狀態;
備選事件流(考慮可能失敗的地方):
在基本事件流1中:
a) 如果插入無效的銀行卡,那麼,在atm提款機介面上提示使用者「您使用的銀行卡無效!」,3秒鐘後,自動退出該銀行卡。
在基本事件流2中:
a) 如果使用者輸入的密碼錯誤,則提示使用者「您輸入的密碼無效,請重新輸入」;
b) 如果使用者連續3次輸入錯誤密碼,atm提款機吞卡,並且atm提款機的介面恢復到初始狀態。此時,其他提款人可以繼續使用其他的合法的銀行卡在atm提款機上提取現金。
c) 使用者輸入錯誤的密碼後,也可以按「退出」鍵,則銀行卡自動退出。
在基本事件流3中:
a) 如果使用者輸入的單筆提款金額超過單筆提款上限,atm提款機介面提示「您輸入的金額錯誤,單筆提款上限金額是1500rmb,請重新輸入」;
b) 如果使用者輸入的單筆金額,不是以50rmb為單位的,那麼提示使用者「您輸入的提款金額錯誤,請輸入以50為單位的金額」;
c) 如果使用者在24小時內提取的金額大於4500rmb,則atm提款機提示使用者,「24小時內只能提取4500rmb,請重新輸入提款金額」輸入提取的金額超過了系統的設定的限制 ;
d) 如果使用者輸入正確的提款金額,atm提款機提示使用者確認後,使用者取消提款,則atm提款機自動退出該銀行卡;
e) 如果atm提款機中餘額不足,則提示使用者,「抱歉,atm提款機中餘額不足」,3秒鐘後,自動退出銀行卡。
在基本事件流4中:
a) 如果使用者銀行戶頭中的存款小於提款金額,則提示使用者「抱歉,您的存款餘額不足!」,3秒鐘後,自動退出銀行卡;
在基本事件流5中:
a) 如果使用者沒有取走現金,或者沒有拔出銀行卡,atm提款機不做任何提示,直接恢復到介面的初始狀態;
場景發分析過程
總結 1) 流程圖可以參考需求規格說明書中的相關流程圖
2) 如果沒有需求文件,和需求和開發溝通,確保了解被測試軟體的流程
3) 流程有大流程和小流程,大流程是指大功能的跳轉,小流程是指功能內的調整,大小流程需要都被覆蓋到.
我們都在當當網或china-pub華章網上書店都訂購過書籍,整個訂購過程為:使用者登入到**後,進行書籍的選擇,當選好自己心儀的書籍後進行訂購,這時把所需圖書放進購物車,等進行結帳的時候,使用者需要登入自己註冊的帳號,登入成功後,進行結帳並生成訂單,整個購物過程結束。
那麼我們通過以上的描述,從中確定哪是基本流,哪些是備選流:
根據基本流和備選流來確定場景:
設計測試用例
對於每乙個場景都需要確定測試用例。可以採用矩陣或決策表來確定和管理測試用例。
下面顯示了一種通用格式,其中各行代表各個測試用例,而各列則代表測試用例的資訊。
本例中,對於每個測試用例,存在乙個測試用例id、條件(或說明)、測試用例中涉及的所有資料元素(作為輸入或已經存在於資料庫中)以及預期結果。
通過從確定執行用例場景所需的資料元素入手構建矩陣。然後,對於每個場景,至少要確定包含執行場景所需的適當條件的測試用例。例如,在下面的矩陣中,v(有效)用於表明這個條件必須是 valid(有效的)才可執行基本流,而 i(無效)用於表明這種條件下將啟用所需備選流。下表中使用的「n/a」(不適用)表明這個條件不適用於測試用例。
我們看到以上表中,是把每個場景成立的條件進行了分析,基本上已經明確了測試用例的數量,現在只要把真實資料填充上,那麼整個測試用例就完成了
歡迎使用CSDN markdow
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
歡迎毛毛與妞妞使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
歡迎使用CSDN markdow1n編輯器
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...