測試用例方法總結
等價類法
1、 等價類的使用范圍?
答:一個項目中的某個功能需要用戶通過鍵盤在文本輸入框中輸入數據的時候需要用到等價類法。輸入的數據可以是正確的或者錯誤的數據。
2、 等價類的優缺點?
答:優:該方法具有簡單、高效的優點,它可以讓測試人員在不熟悉業務的前提下,根據需求中的要求,快速構造測試數據,並且開展測試工作。它同時還可以評估測試人員的工作量,
如果說:一個界面中有N個輸入框,最少用例數是N+1條,實際工作的用例數量是最少用例的4-6倍。
缺:而缺點就是數據都是隨機構造的,可能會漏到一些測試數據,導致測試人員發現不了缺陷。
3、 舉個例子(步驟)?
當我們看到有輸入框時,怎么開展測試?以下圖為例:
① :確認輸入的個數和名稱
本例中的輸入個數為5個,名稱分別為:郵件地址,密碼,確認密碼,驗證碼,是否同意條款。
② :確定每一個輸入的規則,從類型,長度,取值范圍,組成規則,是否為空,是否重復這幾個方面考慮。根據這些規則構造《輸入參數分析列表》。
126郵箱注冊功能輸入參數分析列表 |
||||||
輸入名稱 |
類型 |
長度 |
取值范圍 |
組成規則 |
是否為空 |
是否重復 |
郵件地址 |
字符串 |
[6-18] |
字母、數字、下划線 |
必須以字母開頭 |
否 |
否 |
密碼 |
字符串 |
[6-16] |
/ |
/ |
否 |
是 |
確認密碼 |
字符串 |
[6-16] |
/ |
必須與密碼完全一致 |
否 |
是 |
驗證碼 |
字符串 |
6 |
/ |
與圖片一致 |
否 |
是 |
是否同意條款 |
布爾型 |
/ |
選中/不選 |
/ |
否 |
/ |
③ :根據輸入的規則構造測試數據,包括:符合規則的有效數據和不符合規則的無效數據,也就是《等價類表》
字母注冊功能等價類表 |
||||
輸入名稱 |
有效類 |
有效數據 |
無效類 |
無效數據 |
郵件地址 |
6-18位的字母開頭的包含數字和_ |
test_176 |
長度為5位 |
te_12 |
以字母開頭,包含字母和數字 |
test176 |
長度為19位 |
test_176test_176abc |
|
以字母開頭,包含字母和_ |
test_test |
非字母開頭 |
12345678 |
|
|
|
已注冊的郵件地址 |
test176 |
|
|
|
包含非下划線特殊字符 |
test#!%*176 |
|
|
|
空 |
空格 |
|
|
|
不輸入 |
||
密碼 |
字母全大寫 |
AAAAAA |
長度為5位 |
|
字母全小寫 |
aaaaaa |
長度為17位 |
|
|
字母大小寫混合 |
AaAaAA |
空 |
空格 |
|
包含字母、數字、特殊符號 |
test!*%176 |
不輸入 |
||
確認密碼 |
與密碼完全一致 |
|
與密碼不一致 |
|
|
|
空 |
空格 |
|
|
|
不輸入 |
||
驗證碼 |
與圖片一致 |
MdBJ7J |
與圖片不一致 |
|
與圖片一致字母全大寫 |
MDBJ7J |
空 |
空格 |
|
與圖片一致字母全小寫 |
mdbj7j |
不輸入 |
④ :設計測試用例:在寫測試用例的時候遵循先寫正常的用例,目的是為了保證功能的基本實現,而原則是一條正常的用例要盡可能多的包含有效數據。再寫異常的用例,
目的是為了檢查功能能否處理用戶的錯誤輸入,原則為:一條異常的用例只包含一個無效的數據。
如下圖:為部分測試用例。
邊界值法
1、 邊界值法的適用范圍?
答:當一個文本輸入框有輸入長度的限制或者取值范圍的要求時,也就是輸入存在邊界的時候,就要考慮邊界值法。
2、 邊界值法的優缺點?
答:優:使用該方法取邊界上的數據更容易發現缺陷。
缺:它的使用范圍比較小,只能在有范圍限制的前提下使用。
3、 舉個例子(步驟)
答:步驟和等價類一樣,兩種方法常常結合起來使用。
① :確認輸入的個數和名稱
② :確定每一個輸入的規則,從類型,長度,取值范圍,組成規則,是否為空,是否重復這幾個方面考慮。根據這些規則構造《輸入參數分析列表》。
③ :根據輸入的規則構造測試數據,包括:符合規則的有效數據和不符合規則的無效數據,也就是《等價類表》
④ :設計測試用例
注:在構造邊界值的時候要注意三個點:
上點:邊界上的數據;
離點:離上點最近的數據,遵循的原則為:閉外開內;
內點:取值范圍內的任意一點;
輸入域覆蓋法
1、 輸入域覆蓋法的適用范圍?
答:該方法同樣是用在文本輸入框中,和等價類邊界值法不同的是,該方法考慮的是輸入類型的最大值、最小值,比如:int(整形):最大值為:232-1,最小值:-232。
還有就是一個文本框沒有長度限制,長時間的輸入會不會引起異常,然后就是考慮一下輸入的特殊值。比如:打電話時,110,120,119這些數據的可能性。
2、 舉個例子(步驟)?
答:輸入域覆蓋法實際上就是在分析等價類邊界值法的基礎上考慮一下特殊值和長時間輸入的情況,因此從步驟來講,和等價類邊界值法相同。
輸出域覆蓋法
1、 輸出域覆蓋法的適用范圍?
答:如果界面上存在默認數據,這些數據不需要用戶的輸入,這些數據一旦發生錯誤系統是不會提示報錯信息的,所以要測試數據來源/顯示是否正確,這個時候就要用到輸出域覆蓋法。
有輸出的結果倒推輸入的內容,來驗證數據是否正確。
判定表
1、 判定表的適用范圍?
答:當有多個復選框同時出現,他們之間存在邏輯條件(成立、不成立的關系或者判斷關系),不同的條件組合在一起,會產生不同的結果。這時需要用判定表對這些復選框的組合進行測試。
2、 判定表的優缺點?
答:優:該方法可以覆蓋到所有的邏輯組合;
缺:當條件樁過多時,判定表會非常龐大,一般為2的N次方。、
3、 舉個例子(步驟)?
① :根據需求,找出所有的判斷條件----條件樁;
條件樁 |
是否用華夏信用卡 |
是否是周三看 |
|
是否是情侶 |
② :分析需求,提取所有可能的輸出----動作樁;
動作樁 |
無優惠 |
8折 |
|
7折 |
|
女士免票 |
|
符合4 |
|
符合2、3 |
③ :填入條件項
買票 |
|||||||||
條件樁 |
是否用華夏信用卡 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
是否是周三看 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
是否是情侶 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
動作樁 |
無優惠 |
|
|
|
|
|
|
|
|
8折 |
|
|
|
|
|
|
|
|
|
7折 |
|
|
|
|
|
|
|
|
|
女士免票 |
|
|
|
|
|
|
|
|
|
符合4 |
|
|
|
|
|
|
|
|
|
符合2、3 |
|
|
|
|
|
|
|
|
④ :針對每一種條件組合找到對應的輸出結果----動作項;
買票 |
|||||||||
條件樁 |
是否用華夏信用卡 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
是否是周三看 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
是否是情侶 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
動作樁 |
無優惠 |
|
|
|
|
|
|
|
√ |
8折 |
|
|
|
√ |
|
|
|
|
|
7折 |
|
|
|
|
|
√ |
|
|
|
女士免票 |
√ |
|
√ |
|
√ |
|
√ |
|
|
符合4 |
|
|
|
|
|
|
|
|
|
符合2、3 |
|
√ |
|
|
|
|
|
|
⑤ :刪除已存在的條件組合,剩下的就是測試數據;
⑥ :編寫測試用例,遵循一列對應一條測試用例。
買電影票測試用例 |
|||||||
用例編號 |
測試項目 |
用例標題 |
優先級 |
預置條件 |
輸入數據 |
操作步驟 |
預期結果 |
MDYP—ST-SRS007-001 |
買電影票優惠功能測試用例 |
情侶購票在周三下午用華夏信用卡購票 |
高 |
/ |
/ |
“2、3、4” |
女士免票 |
MDYP—ST-SRS007-002 |
買電影票優惠功能測試用例 |
在周三用華夏信用卡購票 |
高 |
/ |
/ |
“2、3” |
享受折上折 |
MDYP—ST-SRS007-003 |
買電影票優惠功能測試用例 |
情侶用華夏信用卡購票 |
高 |
/ |
/ |
“2、4” |
女士免票 |
正交試驗法
1、 正交試驗法的適用范圍?
答:當輸入是由系統給定固定的值,不存在無效的輸入,出現多個復選框的時候,並且輸入之間是組合的關系,當選擇不同的狀態值,會有不同的處理路徑,這個時候用正交試驗法。
2、 正交試驗法的優缺點?
答:優:該方法能夠覆蓋輸入之間的兩兩組合,有效的減少了重復的組合數量,既保證了測試的全面性,又提高了測試的效率。
缺:該方法是一種基於風險的測試,它要求輸入參數之間只能是組合的關系,並且輸入之間必須是完全獨立的。
3、 什么叫因子和狀態?
答:因子:一個具體的輸入就是一個因子
狀態:輸入的每個具體的值就是一個狀態。
舉個例子(步驟)?
① :根據需求提取因子狀態,畫出因子狀態表
② :用符號去替換因子和狀態的名稱
③ :將符號版的因子狀態表代入到正交試驗表中,如果因子和狀態數量不一致,遵循對於狀態多的需要先合並狀態,對於狀態過少的需要用已有狀態補充。
④ :如果存在合並的狀態,要拆分合並的狀態
⑤ :將符號轉換成對應的文字
S4:將符號替換回文字 |
|||||
|
Betscaoe6.2 |
無 |
IIS |
Windows2000 |
|
|
Betscaoe6.2 |
RealPlayer |
Apache |
WindowsNT |
|
|
Betscaoe6.2 |
MediaPlayer |
NetscapeEnterprise |
Linux |
|
|
IE8.0 |
無 |
Apache |
Linux |
|
|
IE8.0 |
RealPlayer |
NetscapeEnterprise |
Windows2000 |
|
|
IE8.0 |
MediaPlayer |
IIS |
WindowsNT |
|
|
Opera4.0 |
無 |
NetscapeEnterprise |
WindowsNT |
|
|
Opera4.0 |
RealPlayer |
IIS |
Linux |
|
|
Opera4.0 |
MediaPlayer |
Apache |
Windows2000 |
⑥ :編寫測試用例,原則:一行對應一條測試用例
用例編號 |
測試項目 |
測試標題 |
預置條件 |
優先級 |
輸入測試數據 |
執行步驟 |
預期結果 |
WEB-ST-SRS001-001 |
web站點測試 |
不同的瀏覽器,不同的插件,不同的應用服務器,不同的操作系統顯示web站點的正常測試 |
/ |
中 |
1、WEB瀏覽器:Betscaoe6.2 |
/ |
web站點正常顯示 |
4、 用allpairs工具生成正交的測試用例?
① :把allpairs文件夾放在C盤的根目錄下
② :制作符號版的因子狀態表,注:不要加任何格式,從第一行第一列開始,其中第一行是因子名稱。
③ :在allpairs目錄下新建一個文本文件,然后把它進行重命名(注:起個簡單的名字)
④ :將因子狀態表復制到文本文件中,然后保存退出。
⑤ :進入DOS命令行,輸入:cd \ 點擊回車;
cd allpairs 點擊回車
allpairs.exe 111.txt -> 222.txt 點擊回車
⑥ :出現C:\allpairs>才代表成功
⑦ :打開222.txt ,其中testcase就是生成的測試用例。
狀態遷移圖
1、 狀態遷移圖的適用范圍?
答:當有多個狀態或輸入的取值,狀態的變化或取值變化有規定的順序取值,或者從一個狀態可以達到若干個狀態時,要用狀態遷移圖法。
2、 狀態遷移圖的優缺點?
答:優:該方法可以把某個功能的有效組合全覆蓋,
缺:該方法覆蓋不到無效的功能組合。
3、 舉個例子(步驟)?
答:①:根據需求提取所有的狀態、功能的名稱、輸入的名稱
②:將提取到的名稱繪制業務矩陣表-àN個功能就要畫N*N的表
|
快倒 |
暫停 |
播放 |
快進 |
錄音 |
快倒 |
|
√ |
√ |
√ |
|
暫停 |
√ |
|
√ |
√ |
√ |
播放 |
√ |
√ |
|
√ |
|
快進 |
√ |
√ |
√ |
|
|
錄音 |
|
√ |
|
|
|
③:將業務矩陣轉換成業務樹;
業務樹有兩種畫法:廣度優先和深度優先。
廣度優先的畫法:找一個合適的狀態作為起始節點(根節點),畫出根節點的所有可達節點,然后逐層按照從左向右的順序,依次畫出每個節點的可達節點,每個節點只畫一次可達節點,直到所有的節點都畫完,結束葉子節點。
深度優先的畫法:找一個合適的狀態作為起始節點(根節點),畫出根節點的所有可達節點,然后先畫第一個節點的最左側的葉子節點,把所有最左側的節點都畫完,每個節點只畫一次可達節點,從最后一層向上逐層遞推,直到所有的節點都畫完。
⑤ :編寫測試用例,從根節點到葉子節點,一條路徑對應一條測試用例。
因果圖
1、 因果圖的適用范圍?
答:每個功能都可以用因果圖法
2、 因果圖的優缺點?
答:優:因果圖法能夠幫助我們按照一定步驟,高效的選擇測試用例,設計多個輸入條件組合用例,通過因果圖分析還能為我們指出,程序規格說明描述中存在什么問題。
缺:輸入條件與輸出結果的因果關系,有時難以從軟件需求規格說明書得到,即時得到了這些因果關系,也會因為因果關系復雜導致因果圖非常龐大,測試用例數目及其龐大。
3、 舉個例子(步驟)?
① :根據需求列出所有的原因(輸入)
② :根據需求列出所有的結果(輸出)
③ :為原因和結果進行編號
④ :按照需求畫出因果圖
⑤ :按照因果圖列出判定表
⑥ :將不存在的判定表刪除
⑦ :剩余部分為測試用例的組合
異常分析法
該方法是針對系統羅列可能出現的故障/異常的情況來分析的。比如說:斷電,斷網,硬件損壞,內存不足,強制中止程序,程序進行中點擊取消了,支不支持斷電續傳?還有就是手機APP交互性測試。
錯誤猜測法
錯誤猜測法是根據以往的經驗和對系統內部的知識的了解,列出系統中可能有錯誤和容易發生錯誤特殊情況,再根據這些情況設計用例。
注意:該方法只能作為測試用例設計的補充而不能單獨用來設計用例。