
本期,我們通過經典案例——ATM機的操作,來為大家詳細說說如何撰寫對應的測驗用例,
【案例】
在我們日常生活中,ATM機是個大家都非常熟悉的事物,銀行為例提高作業效率,方便客戶隨時辦理基礎的儲蓄和提現業務,于是,ATM機就誕生了,我們都知道,所謂用戶取款業務,就是指為用戶提供插卡、校驗和取款操作的全程序,那么,圍繞用戶取款業務,我們應該如何為之設計測驗步驟呢?
【決議】
在這一場景下,我們首先需要做的,就是構造基本流和備選流,詳情如下:
1)基本流
對于ATM機來說,它的基本流的初始狀態是:熒幕出現歡迎頁面,表示系統已經準備就緒,可以開始自主操作,接下來,它的業務處理流程基本如下:
① 插卡:用戶將銀行卡插入ATM機的卡槽;
② 卡校驗:系統讀取被插卡的賬戶代碼,判斷該卡是否為本系統可接受的卡,
??在基本流中,插卡校驗順利通過后,即表示這是一張系統可以識別接受的ATM卡,因此,此處對應第1個校驗點,
③ 密碼輸入:系統自動讀取卡的賬戶,獲取其預設密碼,并要求用戶輸入6位數字取款密碼,
④ 密碼校驗:系統根據卡賬戶的預設密碼,并與用戶輸入的密碼比較,判斷二者是否一致,
??對基本流而言,輸入的密碼正確,表示可接受該銀行卡接受后續操作,所以,此處對應第2個校驗點,

⑤ 取款交易選擇:基于我們是針對用戶取款業務做的場景測驗,因此,我們將在這一測驗處,簡化操作流程,默認我們直接選擇取款交易,且該銀行卡處于活期賬戶狀態,在此處,我們暫時忽略系統還支持存款、查詢余額、修改密碼等其他操作,并忽略銀行卡可能屬于定期、凍結賬戶等狀態;
⑥ 取款金額設定:系統要求用戶輸入要取款的金額數,注意,取款的金額應為50的整數倍,且應受到數目上的各種限制;
⑦ 取款校驗:系統將賬戶、密碼、交易型別(本例為“取款”交易)及金額數作為一筆交易發送給銀行系統,啟動校驗程序,
??對于基本流而言,系統處于聯機狀態,對用戶的授權請求予以答復,且批準完成取款,并更新賬戶余額,此處對應第3個校驗點,
⑧ 出鈔:系統從現金槽中提供現金鈔票,
⑨ 憑條列印選擇:一般在處理完成一次事務后,系統會再次提示選擇交易型別,為了簡化流程,本案例中我們暫且忽略這個步驟,而是認為完成交易后,直接提示是否進入后續交易憑條列印環節,
??對于基本流而言,用戶選擇列印交易憑條,此處對應第4個校驗點,
⑩ 提供交易憑條:系統從ATM機的小票卡槽中提供交易憑條,并更新ATM機內部記錄,
? 退卡:系統返還用戶的ATM卡,
??用例至此結束,這時ATM機再次回到準備就緒狀態,
2)備選流
基本流中得到4個關鍵校驗點如下:
校驗點1:對應步驟②,對卡的有效性進行校驗,判斷卡是否有效;
校驗點2:對應步驟④,對用戶輸入的密碼進行校驗,判斷輸入的密碼是否匹配預設密碼;
校驗點3:對應步驟⑦,對輸入的取款金額進行校驗,判斷取款金額設定是否有效;
校驗點4:對應步驟⑨,對憑條列印進行選擇,判斷是否需要列印交易憑條,

根據上述4個校驗點,我們可以分別得到各個校驗點的備選流,對此,我們可以做出如下的分析判斷:
① 備選流1:卡錯誤
在基本流步驟②處觸發,在校驗ATM卡時,發現該卡無效,則應提示無效卡并將卡退回,退回后,系統回到準備就緒狀態,本用例終止,
② 備選流2:密碼錯誤
在基本流步驟④處觸發,校驗密碼時有3次輸入密碼的機會,當第一次或第二次密碼輸入錯誤后,仍有繼續輸入密碼的機會,則系統提示密碼錯誤,要求用戶再次輸入密碼,系統回傳密碼輸入狀態,在步驟③處重新加入基本流,
③ 備選流3:密碼失敗
該備選流仍在基本流步驟④處觸發,校驗密碼時,當密碼第3次輸入錯誤后不再有輸入機會,此時系統提示密碼失敗,并直接吞掉用戶的ATM卡,并提示用戶到銀行柜臺辦理相關取卡事宜,系統回傳準備就緒狀態,本用例終止,
??值得我們注意的是,備選流2、3是由相同事件觸發的(密碼輸入錯誤),區別只是在于觸發次數問題,多次觸發后,將導致系統產生不同的處理結果,這與程式執行中的回圈結構,其實是非常類似的,
④ 備選流4:輸入金額錯誤
在基本流步驟⑦處觸發,校驗用戶輸入的取款金額時失敗,禁止取款,要求用戶重新輸入取款金額,系統回傳金額輸入狀態,在步驟⑥處重新加入基本流,
??這里需要注意的是,取款金額錯誤可分多種情況,包括:取款賬戶的余額不足;金額格式錯誤;ATM機現金不足;達到賬戶單次取款的最大金額等等,但是,機智的小伙伴可能發現了,我們比昂沒有針對所有可能出現的錯誤情況,分別構建不同的備選流,這是為什么呢?感興趣的小伙伴,可以在留言區告訴小編你的答案,
(我們將從答對的小伙伴中抽取一人,給與獎勵哦,)
⑤ 備選流5:不列印憑條
在基本流步驟⑨處觸發,選擇是否列印交易憑條時選擇不列印,則直接退還用戶的ATM卡,
小結:我們通過上述所有的基本流與備選流,可以得出一張清晰的畫像,如下圖:

值得一提的是,在卡密碼校驗處,一旦用戶3次輸入密碼錯誤,系統將會把用戶的卡沒收,之后,ATM機仍會回到系統歡迎畫面,這似乎應從基本流的退出狀態來結束?但事實上,由于此處包含了一個吞卡的動作,因此,與備選流1和備選流5的執行結果不完全一致,所以,備選流3的執行結果是不同于備選流1和備選流5的,
【場景設計】
根據取款業務的基本流和5個備選流得到的場景集合如下:
場景1(取款成功,且列印憑條):基本流;
場景2(卡錯誤):基本流+備選流1;
場景3(密碼錯誤):基本流+備選流2;
場景4(密碼失敗):基本流+備選流3;
場景5(取款金額錯誤):基本流+備選流4;
場景6(取款成功,不列印憑條):基本流+備選流5,
【測驗用例設計】
雖然每個場景對應系統業務流程(從開始到結束狀態)的一系列執行程序,但實質上,它仍然是對應測驗用例的一組輸入和預期輸出,因此,對應每個場景可設計一個或多個測驗用例,比如:
(1)根據某場景所包含的執行流程,分析出系統應滿足的所有輸入條件和預期輸出;
(2)當場景中包含備選流時,應確定觸發該備選流執行的輸入條件,并予以標記,
由此,我們可以得出如下結論:
(“V”表示該條件必須有效才可以執行該用例;“I”表示其是觸發對應某個備選流的條件;“N/A”表示此測驗用例中不需要設定該輸入條件,)

為了保證覆寫準確率,我們可以通過以下途徑來判斷:
(1)應用獨立路徑測驗的策略,每條獨立路徑對應一個場景;
(2)檢查測驗用例表,查看是否所有輸入都取到“I”的情況,即曾經作為測驗用例的觸發條件,只要存在某條件從未取到“I”,就證明測驗用例存在漏洞,未覆寫所有的場景,
另外,我們還應注意測驗資料的設計,對于測驗用例來說,我們可以繼續根據邊界值、等價劃分等方法,為它們一一設計具體的測驗資料,舉個例子,假設正確密碼是8個8,那么,我們會得到如下測驗結果:

寫在最后
通過上述內容,相信大家對場景測驗的內容有了一定的了解,希望大家在實際作業中,也能按照上述方法一步一步去做,通過多次實踐,對場景測驗有更加深刻的認識,祝大家在測驗的道路上越走越順暢~
下面是測驗資料,對于做【軟體測驗】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

最后: 可以在公眾號:傷心的辣條 ! 免費領取一份216頁軟體測驗工程師面試寶典檔案資料,以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
學習不要孤軍奮戰,最好是能抱團取暖,相互成就一起成長,群眾效應的效果是非常強大的,大家一起學習,一起打卡,會更有學習動力,也更能堅持下去,你可以加入我們的測驗技術交流扣扣群:914172719(里面有各種軟體測驗資源和技術討論)
喜歡軟體測驗的小伙伴們,如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325488.html
標籤:其他
