測試用例(test case)是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程式路徑或核實是否滿足某個特定需求。
測試用例(test case)目前沒有經典的定義。比較通常的說法是:指對一項特定的軟體產品進行測試任務的描述,體現測試方案、方法、技術和策略。內容包括測試目標、測試環境、輸入資料、測試步驟、預期結果、測試指令碼等,並形成文件。
可以採用軟體測試常用的基本方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設計測試用例。視軟體的不同性質採用不同的方法。如何靈活運用各種基本方法來設計完整的測試用例,並最終實現暴露隱藏的缺陷,全憑測試設計人員的豐富經驗和精心設計。
測試用例的設計
(一)白盒技術
白盒測試是結構測試,所以被測物件基本上是源程式,以程式的內部邏輯為基礎設計測試用例。
1. 邏輯覆蓋
程式內部的邏輯覆蓋程度,當程式中有迴圈時,覆蓋每條路徑是不可能的,要設計使覆蓋程度較高的或覆蓋最有代表性的路徑的測試用例。下面分別討論幾種常用的覆蓋技術。
在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設計測試用例,然後再補充部分用例,以達到路徑覆蓋測試標準。
2.迴圈覆蓋
3.基本路徑測試
(二)黑盒技術
1.等價類劃分
(1) 劃分等價類。
(2) 確定測試用例。
2.邊界值分析
使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來。但它不是從乙個等價類中任選乙個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等於、剛剛大於或剛剛小於邊界值的測試資料。
(1) 如果輸入條件規定了值的範圍,可以選擇正好等於邊界值的資料作為合理的測試用例,同時還要選擇剛好越過邊界值的資料作為不合理的測試用例。如輸入值的範圍是[1,100],可取0,1,100,101等值作為測試資料。
(2) 如果輸入條件指出了輸入資料的個數,則按最大個數、最小個數、比最小個數少1、比最大個數多1等情況分別設計測試用例。如,乙個輸入檔案可包括1--255個記錄,則分別設計有1個記錄、255個記錄,以及0個記錄的輸入檔案的測試用例。
(3) 對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,乙個學生成績管理系統規定,只能查詢95--98級大學生的各科成績,可以設計測試用例,使得查詢範圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。
由於輸出值的邊界不與輸入值的邊界相對應,所以要檢查輸出值的邊界不一定可能,要產生超出輸出值之外的結果也不一定能做到,但必要時還需試一試。
(4) 如果程式的規格說明給出的輸入或輸出域是個有序集合(如順序檔案、線形表、鍊錶等),則應選取集合的第乙個元素和最後乙個元素作為測試用例。
3.錯誤推測
在測試程式時,人們可能根據經驗或直覺推測程式中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。
4.因果圖
等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入資料的測試功能,而沒有考慮多個輸入資料的組合引起的錯誤。
5.綜合策略
每種方法都能設計出一組有用例子,用這組例子容易發現某種型別的錯誤,但可能不易發現另一型別的錯誤。因此在實際測試中,聯合使用各種測試方法,形成綜合策略,通常先用黑盒法設計基本的測試用例,再用白盒法補充一些必要的測試用例。
回歸測試
回歸測試比較同一測試目標的兩個工作版本或版本,並將差異確定為潛在缺陷。據此可假定:新版本應該象早先版本一樣操作,並確保並未因為版本的變化而帶來缺陷。
理想狀態下,您可能希望一次迭代內的所有測試用例都能在後續迭代內使用。應遵照下列指導原則來確定、設計並實施測試用例,這些測試用例可以最大限度地發揮回歸測試和復用的價值,同時將維護的成本減至最低:
測試用例整理
測試用例編寫的基本方法 等價類劃分法 使用場景多用於輸入框 等價類劃分是指將海量的測試用例計提減少到很小,但過程很有效 等價類 什麼是等價類,某個輸入域的集合,在這個集合中每個輸入的條件都是等效的 有效等價類 指符合 需求規格說明書 輸入合理的資料集合 無效等價類 指不符合 需求規格說明書 輸入不合...
關於測試用例理念的一些想法
g.j.myers給出了關於 測試 的一些規則,被軟體工程領域認可 1 測試是為了發現程式中的錯誤而執行程式的過程 2 好的測試方案極有可能發現迄今為止尚未發現的錯誤 3 成功的測試是發現了至今為止尚未發現的錯誤。上面這段話是測試行業經常能看到的一段關於測試的工程的一種解釋 可能有些太理性或者說是書...
關於測試用例理念的一些想法
g.j.myers給出了關於測試的一些規則,被軟體工程領域認可 1 測試是為了發現程式中的錯誤而執行程式的過程 2 好的測試方案極有可能發現迄今為止尚未發現的錯誤 3 成功的測試是發現了至今為止尚未發現的錯誤。上面這段話是測試行業經常能看到的一段關於測試的工程的一種解釋 可能有些太理性或者說是書面化...