測試用例的設計方法(全)
等價類劃分方法:
一.方法簡介
1.定義
是把所有可能的輸入資料,即程式的輸入域劃分成若干部分(子集),然後從每乙個子集中選取少數具有代表性的資料作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。
2.劃分等價類:
等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的,並合理地假定:測試某等價類的代表值就等於對這一類其它值的測試,因此,可以把全部輸入資料合理劃分為若干等價類,在每乙個等價類中取乙個資料作為測試的輸入條件就可以用少量代表性的測試資料取得較好的測試結果。
等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
1)有效等價類
是指對於程式的規格說明來說是合理的、有意義的輸入資料構成的集合。利用有效等價類可檢驗程式是否實現了規格說明中所規定的功能和效能。
2)無效等價類
與有效等價類的定義恰巧相反。無效等價類指對程式的規格說明是不合理的或無意義的輸入資料所構成的集合。對於具體的問題,無效等價類至少應有乙個,也可能有多個。
設計測試用例時,要同時考慮這兩種等價類。因為軟體不僅要能接收合理的資料,也要能經受意外的考驗,這樣的測試才能確保軟體具有更高的可靠性。
3.劃分等價類的標準:
1)完備測試、避免冗餘;
2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的並是整個集合;
3)並是整個集合:完備性;
4)子集互不相交:保證一種形式的無冗餘性;
5)同一類中標識(選擇)乙個測試用例,同一等價類中,往往處理相同,相同處理對映到"相同的執行路徑"。
4.劃分等價類的方法
1)在輸入條件規定了取值範圍或值的個數的情況下,則可以確立乙個有效等價類和兩個無效等價類。如:輸入值是學生成績,範圍是0~100;
2)在輸入條件規定了輸入值的集合或者規定了"必須如何"的條件的情況下,可確立乙個有效等價類和乙個無效等價類;
3)在輸入條件是乙個布林量的情況下,可確定乙個有效等價類和乙個無效等價類。
4)在規定了輸入資料的一組值(假定n個),並且程式要對每乙個輸入值分別處理的情況下,可確立n個有效等價類和乙個無效等價類。
例:輸入條件說明學歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學歷之外的任何學歷作為無效等價類。
5)在規定了輸入資料必須遵守的規則的情況下,可確立乙個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則);
6)在確知已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。
5.設計測試用例
在確立了等價類後,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然後從劃分出的等價類中按以下三個原則設計測試用例:
1)為每乙個等價類規定乙個唯一的編號;
2)設計乙個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步,直到所有的有效等價類都被覆蓋為止;
3)設計乙個新的測試用例,使其僅覆蓋乙個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。
二.實戰演習
1.某程式規定:"輸入三個整數 a 、 b 、 c 分別作為三邊的邊長構成三角形。
通過程式判定所構成的三角形的型別,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算 … "。用等價類劃分方法為該程式進行測試用例設計。(三角形問題的複雜之處在於輸入與輸出之間的關係比較複雜。
)分析題目中給出和隱含的對輸入條件的要求:
(1)整數 (2)三個數 (3)非零數 (4)正數
(5)兩邊之和大於第三邊 (6)等腰 (7)等邊
如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:
1)如果不滿足條件(5),則程式輸出為 " 非三角形 " 。
2)如果三條邊相等即滿足條件(7),則程式輸出為 " 等邊三角形 " 。
3)如果只有兩條邊相等、即滿足條件(6),則程式輸出為 " 等腰三角形 " 。
4)如果三條邊都不相等,則程式輸出為 " 一般三角形 " 。
列出等價類表並編號
覆蓋有效等價類的測試用例:
a b c 覆蓋等價類號碼
3 4 5 (1)--(7)
4 4 5 (1)--(7),(8)
4 5 5 (1)--(7),(9)
5 4 5 (1)--(7),(10)
4 4 4 (1)--(7),(11)
覆蓋無效等價類的測試用例:
2.設有乙個檔案管理系統,要求使用者輸入以年月表示的日期。假設日期限定在2023年1月~2023年12月,並規定日期由6位數字字元組成,前4位表示年,後2位表示月。
現用等價類劃分法設計測試用例,來測試程式的"日期檢查功能"。
1)劃分等價類並編號,下表等價類劃分的結果
2)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:
測試資料期望結果覆蓋的有效等價類
200211 輸入有效 ①、⑤、⑧
3)為每乙個無效等價類設計乙個測試用例,設計結果如下:
測試資料期望結果覆蓋的無效等價類
95june 無效輸入 ②
20036 無效輸入③
2001006無效輸入 ④
198912 無效輸入 ⑥
200401 無效輸入 ⑦
200100 無效輸入 ⑨
200113 無效輸入 ⑩
3.nextdate 函式包含三個變數:month 、 day 和 year ,函式的輸出為輸入日期後一天的日期。
例如,輸入為 2023年3月 7日,則函式的輸出為 2023年3月8日 。要求輸入變數 month 、 day 和 year 均為整數值,並且滿足下列條件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
1)有效等價類為:
m1=d1=y1=2)若條件 ① ~ ③中任何乙個條件失效,則 nextdate 函式都會產生乙個輸出,指明相應的變數超出取值範圍,比如 "month 的值不在 1-12 範圍當中 " 。顯然還存在著大量的 year 、 month 、 day 的無效組合, nextdate 函式將這些組合作統一的輸出: " 無效輸入日期 " 。
其無效等價類為:
m2=m3=d2=d3=y2=y3=弱一般等價類測試用例
月份日期年預期輸出
6 15 1912 2023年6月16日
強一般等價類測試用例同弱一般等價類測試用例
注:弱--有單缺陷假設;健壯--考慮了無效值
(一)弱健壯等價類測試
用例id 月份日期年預期輸出
wr1 6 15 1912 2023年6月16日
wr2 -1 15 1912 月份不在1~12中
wr3 13 15 1912 月份不在1~12中
wr4 6 -1 1912 日期不在1~31中
wr5 6 32 1912 日期不在1~31中
wr6 6 15 1811 年份不在1812~2012中
wr7 6 15 2013 年份不在1812~2012中
(二)強健壯等價類測試
用例id 月份日期年預期輸出
sr1 -1 15 1912 月份不在1~12中
sr2 6 -1 1912 日期不在1~31中
sr3 6 15 1811 年份不在1812~2012中
sr4 -1 -11912 兩個無效乙個有效
sr5 6 -1 1811 兩個無效乙個有效
sr6 -1 15 1811 兩個無效乙個有效
sr7 -1 -11811 三個無效
4.佣金問題等價類測試用例,它是根據佣金函式的輸出值域定義等價類,來改進測試用例集合。
輸出銷售額≤1000元佣金10%
1000《銷售額≤1800 佣金=100+(銷售額-1000)*15%
銷售額》1800 佣金=220+(銷售額-1800)*20%
測試用例槍機(45) 槍托(30) 槍管(25) 銷售額佣金
1 5 5 5 500 50
2 15 15 15 1500 175
3 25 25 25 2500 360
根據輸出域選擇輸入值,使落在輸出域等價類內,可以結合弱健壯測試用例結合。
邊界值分析方法:
一.方法簡介
1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。
2.與等價劃分的區別
1)邊界值分析不是從某等價類中隨便挑乙個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。
3.邊界值分析方法的考慮:
長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試資料,而不是選取等價類中的典型值或任意值作為測試資料。
4.常見的邊界值
1)對16-bit 的整數而言 32767 和 -32768 是邊界
2)螢幕上游標在最左上、最右下位置
3)報表的第一行和最後一行
4)陣列元素的第乙個和最後乙個
5)迴圈的第 0 次、第 1 次和倒數第 2 次、最後一次
5.邊界值分析
1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在於劃分的邊界上,因此在等價類的邊界上以及兩側的情況設計測試用例。
例:測試計算平方根的函式
--輸入:實數
--輸出:實數
--規格說明:當輸入乙個0或比0大的數的時候,返回其正平方根;當輸入乙個小於0的數時,顯示錯誤資訊"平方根非法-輸入值小於0"並返回0;庫函式print-line可以用來輸出錯誤資訊。
2)等價類劃分:
i.可以考慮作出如下劃分:
a、輸入 (i)<0 和 (ii)>=0
b、輸出 (a)>=0 和 (b) error
ii.測試用例有兩個:
a、輸入4,輸出2。對應於 (ii) 和 (a) 。
b、輸入-10,輸出0和錯誤提示。對應於 (i) 和 (b) 。
實驗專案三黑盒測試用例設計
實驗名稱 因果圖法設計測試用例 實驗任務 有乙個自動售貨機軟體用於處理單價為1元5角錢的盒裝飲料,若投入1元5角硬幣,按下 可樂 雪碧 或 紅茶 按鈕,相應的飲料就會送出來。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣,用因果圖法設計測試用例。實驗目的 1 掌握黑盒測試技術中的因果圖測試法的基本...
黑盒測試用例練習題
1 准考證號碼 對招乾考試系統 輸入學生成績 子模組設計測試用例。招乾考試分三個專業,准考證號第一位為 號,如 1 行政專業,2 法律專業,3 財經專業。行政專業准考證號碼為 110001 111215 法律專業准考證號碼為 210001 212006 財經專業准考證號碼為 310001 31401...
測試用例設計方法培訓
等價類劃分是一種典型的黑盒測試方法。這一方法完全不考慮程式的內部結構,只依據程式的規格說明來設計測試用例。等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭示程式中的錯誤都是等效的。等價類合理地假設 某個等價類的代表值,與該等價類的其他值,對於測試來說是等價的。因此,可以把全部的輸入資料...