1.測試用例是什么
測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以及預期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求
2.測試用例的作用
以前一直覺得寫測試用例是一種特別費時且沒有意義的工作,一直很排斥,后來經(jīng)過同事的指點以及百人計劃的分享,才發(fā)現(xiàn)測試用例非常重要,很有必要好好學寫。主要的作用如下:
a.測試用例可以讓測試新人快速了解整個項目的業(yè)務
b.執(zhí)行測試,發(fā)現(xiàn)缺陷,讓測試更加方便的執(zhí)行
c.防止漏測,只需要根據(jù)用例一條一條執(zhí)行即可
d.對執(zhí)行者的要求不高,人員緊缺的情況下沒有任何經(jīng)驗的人都可以參與進來測試
e.可以作為評估測試人員進度,工作量以及跟蹤/管理測試工作人員的工作效率的主要因素,從而更加合理的做出測試安排或調(diào)整。
3.測試用例設計的基本準則
a.測試用例的代表性:能夠代表并覆蓋各種合理的和不合理,合法的和不合法的,邊界和越界的,以及極限的輸入數(shù)據(jù),操作和環(huán)境設置等
b.測試結(jié)果的可判定性:即執(zhí)行測試結(jié)果的正確性是可判定的,每一個測試用例都應該有相應的期望結(jié)果
c.測試結(jié)果的可再現(xiàn)性:即對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應當是相同的
4.黑盒測試用例設計方法
等價類劃分法
在規(guī)定了輸入條件必須遵守的規(guī)則的情況下(取值范圍/值個數(shù)/值集合/布爾值)可確立一個有效的等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。
如:姓名文本框允許輸入10個vachar,則應分別測試輸入10個英文字符(區(qū)分大小寫),10個中文字符,10個全數(shù)字字符,10個混合字符等
邊值分析法
對輸入或輸出的邊界值進行測試,若邊界附近的取值不會導致程序出錯,那么其他的取值導致程序錯誤的可能性也很小
如:姓名文本框允許輸入10個vachar,則應分別測試輸入10個英文字符,0個英文字符,1個英文字符,11個英文字符
一般來說,邊值分析法時等價類劃分的補充
正交試驗法
從大量的試驗點中挑選出適量的,有代表性的點,應用依據(jù)迦羅瓦理論導出的“正交表”,合理的安排試驗的一種科學的試驗設計方法
如:某所大學通信系共2個班級,剛考完某一門課程,想通過“性別”、“班級”和“成績”這三個查詢條件對通信系這門課程的成績分布,男女比例或班級比例進行人員查詢:根據(jù)“性別”=“男,女”進行查詢;根據(jù)“班級”=“1班,2班”查詢;根據(jù)“成績”=“及格,不及格”查詢
步驟:
a.提取功能說明,構造因子-狀態(tài)表
共3個因子,每個因子有兩個狀態(tài),因此,全部測試用例數(shù)為2*2*2=8個

b.計算各因子和狀態(tài)的權值,刪去一部分權值較?。ㄖ匾暂^小的因子或狀態(tài)),使最后生成的測試用例集縮減到允許范圍內(nèi)
套用三因素兩水平的剛好有L4(2^3)的正交表,得到的測試用例個數(shù)是n=3*(2-1)+1=4? ?


c.利用正交表的每行數(shù)據(jù)構造測試用例

流程分析法
主要針對測試場景類型屬于流程測試場景的測試項下的測試子項進行設計
如:用戶進入一個在線購物網(wǎng)站進行購物:
1)該網(wǎng)站必須使用注冊帳號購買商品;
2)選擇物品后,進行在線購買,若帳號已登錄,則直接生成訂單;
3)若帳號未登錄,則必須先登錄帳號,再生成訂單;
4)帳號登錄成功后,生成訂單,可進行付錢交易,付款成功后,完成整個購物過程;
5)登錄帳號時,若帳號錯誤,則提示“帳戶不存在”;若密碼錯誤,則提示“密碼錯誤”;帳號或密碼錯誤均需重新輸入帳號和密碼;
6)付款時,若帳號余額不足,則提示“帳戶余額不足”。
步驟
a.畫出業(yè)務流程圖

b.定義狀態(tài)節(jié)點和條件分支
c.確定測試路徑
? ? ? ? 1)正常流程,購買成功(基本流程):對應一次性購買并付款成功;
? ? ? ? 2)異常流程,購買失?。ǚ种Я鞒蹋簩】钍?,包括退卡、吞卡;
? ? ? ? 3)異常流程,購買成功(循環(huán)流程):對應中間出現(xiàn)意外,比如密碼輸入錯誤,賬號輸入錯誤,付款時余額不足,但是最終成功付款的情況。
d.選取測試數(shù)據(jù),構造測試用例
根據(jù)上一步確定的測試路徑,編寫詳細的測試用例
判定表法
判定表是分析和表達多種輸入條件下系統(tǒng)執(zhí)行不同動作的工具,它可以把復雜的邏輯關系和多種條件組合的情況表達得既具體又明確
因果圖法
把規(guī)格轉(zhuǎn)化為判定表的系統(tǒng)化方法,從該圖中可以產(chǎn)生測試數(shù)據(jù)。其中,原因是表示輸入條件,結(jié)果是對輸入執(zhí)行的一系列計算后得到的輸出
步驟:
a.把大的系統(tǒng)規(guī)格劃分解成可以測試的規(guī)格片段
b.分析分解后待測的系統(tǒng)規(guī)格,找出哪些是原因,哪些是結(jié)果
c.畫出因果圖
d.把因果圖轉(zhuǎn)換成判定表
e.簡化判定表
f.用判定表中的每一項生成測試用例
狀態(tài)遷移圖法
許多需求用狀態(tài)機的方式來描述,狀態(tài)機的測試主要關注在測試狀態(tài)轉(zhuǎn)移的正確性上面。對于一個有限狀態(tài)機,通過測試驗證其在給定的條件內(nèi)是否能夠產(chǎn)生需要的狀態(tài)變化,有沒有不可達的狀態(tài)和非法的狀態(tài),可能不可能產(chǎn)生非法的狀態(tài)轉(zhuǎn)移等。用這種方法可以設計逆向的測試用例,如狀態(tài)和事件的非法組合
如下圖

輸出域覆蓋法
分析各輸出的等價類, 通過選擇那些會導致各個輸出的等價類被達到的輸入點來執(zhí)行測試,期望達到輸出域等價類覆蓋
異常分析法
系統(tǒng)異常分析法就是針對系統(tǒng)有可能存在的異常操作、軟硬件缺陷引起的故障進行分析,依此設計測試用例。主要針對系統(tǒng)的容錯能力、故障恢復能力進行測試
錯誤猜測法
錯誤猜測法就是根據(jù)經(jīng)驗猜想可能有什么問題并依此設計測試用例
在使用時要針對開發(fā)項目的特點對方法加以適當?shù)倪x擇要采用的用例設計方法
5.白盒測試用例設計方法
語句覆蓋法
分支覆蓋法
條件覆蓋法
分支條件覆蓋法
路徑覆蓋法
基本路徑覆蓋法