如何進行單元測試(下) 單元測試工具
二、基本路徑法
基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次?;韭窂綔y試法包括以下5個方面:
1. 程序的控制流圖:描述程序控制流的一種圖示方法。
2. 程序環境復雜性:McCabe復雜性度量;從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行依次所必須的測試用例數目的上界。
3. 導出測試用例。
4. 準備測試用例,確?;韭窂郊械拿恳粭l路徑的執行。
5. 圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現自動地確定一個基本路徑集。
另外,對于測試用例的選擇除了滿足所選擇的覆蓋程度(或覆蓋標準)外還需要盡可能的采用邊界值分析法、錯誤推測法等常用地設計方法。采用邊界值分析法設計 合理的輸入條件與不合理的輸入條件;條件邊界測試用例應該包括輸入參數的邊界與條件邊界(if,while,for,switch ,SQL Where子句等)。錯誤推測法,列舉出程序中所有可能的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例;在編碼、單元測試階段可以發現很多常見的 錯誤和疑似錯誤,對于這些錯誤應該作重點測試,并設計相應的測試用例。
4.1.3 單元測試計劃表格
在設計測試用例時可以參考如下表格,擬定對每個類(或模塊或包)的測試計劃。表1,是對每個類(或模塊或包)作測試計劃的表頭,它指明本測試計劃是針對那個模塊及相關文件的。表2是針對表1指定模塊測試用例而對應的子表,每個測試用例可以擁有一個子表;單元測試結果子表留作執行測試用例時根據實際結果填寫。
子系統名. PackageName. JavaClassName
單元測試計劃 | |
標識 | 格式: “子系統名. jsp_filename(含目錄中間用\分開即可)” 或者 “子系統名. PackageName. JavaClassName” |
組件功能項 | 如:組件完成 “新增貼子”的功能 |
針對概要/詳細設計文件名 | 如:1.1版本公告部分詳細設計說明書 |
物理文件名 | jsp_filename(含目錄); packageName. JavaClassName |
表1
單元測試子項001
下面表格為針對上面表格“子系統名. PackageName. JavaClassName”而對應的子表,每個測試用例用一張子表:
編號 | .001 注:“. 編號” 部分要從001編號開始一直到999,個人自行編號 |
程序設計人員 | 如:XXX |
測試人員 | 如:XXX |
測試目的 | 如:對錯誤邏輯輸入檢驗 |
測試內容描述 | 如:對于public int fun3(String p1, int p2 )的輸入檢驗,如果 p1 == null,程序中檢驗到,應該記錄到系統 logfile, return –1; |
輸入期望 | P1 == null |
功能處理期望描述 | Logfile 多一條歷史記錄,方法return -1; |
輸出期望 | Return –1 |
單元測試結果 | |
實際輸入數據 | P1 = null |
實際處理情況描述 | 程序沒有進行p1 == null 的驗證,沒有及時return –1,而是運行到 p1.aaa( ) 方法時出現 null pointer 異常。 |
實際輸出 | 沒有寫 logfile 文件; |
測試結論 | 正常 / 異常 |
表2