4 動態執行跟蹤
動態執行測試通常分為黑盒測試與白盒測試。黑盒測試指已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。白盒測試指已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格的要求,所有內部成分是否已經經過檢查。
對于單元測試來說主要應該采用白盒測試法對每個模塊的內部作跟蹤檢查測試。對于單元白盒測試,應該對程序模塊進行如下檢查:
1. 對模塊內所有獨立的執行路徑至少測試一次;
2. 對所有的邏輯判定,取“真”與“假”的兩種情況都至少執行一次;
3. 在循環的邊界和運行界限內執行循環體;
4. 測試內部數據的有效性等等。
單元白盒跟蹤測試,通常需要做如下三項工作:
1. 設計測試用例;
2. 設計測試類模塊;
3. 跟蹤調試。
4.1 測試用例設計
通常動態執行跟蹤調試是在編碼階段進行的。在對源程序作靜態人工檢查之后就可以開始進行單元測試的測試用例設計。利用設計文檔,設計可以驗證程序功能、找出程序錯誤的多個測試用例。
4.1.1 測試用例的設計基本原則
設計測試用例基本的原則是:
1. 一個好的測試用例在于能夠發現至今沒有發現的錯誤;
2. 測試用例應由測試輸入數據和與之對應的預期輸出結果這兩部分組成;
3. 在測試用例設計時,應當包含合理的輸入條件和不合理的輸入條件。
4.1.2 白盒測試的測試用例設計
白盒測試測試用例一般采用邏輯覆蓋法和基本路徑法進行設計。
一、邏輯覆蓋法
邏輯覆蓋是以程序內部的邏輯結構為基礎的測試用例設計技術,這一方法要求測試人員對程序的邏輯結構有清楚的了解。邏輯覆蓋可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋與路徑覆蓋。
1. 語句覆蓋就是設計若干個測試用例,運行所測程序,使得每一可執行語句至少執行一次。
2. 判定覆蓋就是設計若干個測試用例,運行所測程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次。
3. 條件覆蓋就是設計若干個測試用例,運行所測程序,使得程序中每個判斷的每個條件的可能取值至少執行一次。
4. 判定--條件覆蓋就是設計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執行一次,同時每個判斷的所有可能判斷結果也至少執行一次。
5. 條件組合覆蓋就是設計足夠的測試用例,運行所測程序,使得每個判斷的所有可能的條件取值組合至少執行一次。
6. 路徑測試就是設計足夠的測試用例,覆蓋程序中所有可能的路徑。
每一種覆蓋方法都有其優缺點,這6種覆蓋方法關系,如圖1:
圖1通常在設計測試用例時應該根據代碼模塊的復雜度,選擇覆蓋方法。一般的代碼的復雜度與測試用例設計的復雜度成正比。因此,設計人員必須做到模塊或方法功能 的單一性、高內聚性,使得方法或函數代碼盡可能的簡單;這樣將可大大提高測試用例設計的容易度,提高測試用例的覆蓋程度。
二、基本路徑法基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次;韭窂綔y試法包括以下5個方面:
1. 程序的控制流圖:描述程序控制流的一種圖示方法。
2. 程序環境復雜性:McCabe復雜性度量;從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行依次所必須的測試用例數目的上界。
3. 導出測試用例。
4. 準備測試用例,確;韭窂郊械拿恳粭l路徑的執行。
5. 圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現自動地確定一個基本路徑集。
另外,對于測試用例的選擇除了滿足所選擇的覆蓋程度(或覆蓋標準)外還需要盡可能的采用邊界值分析法、錯誤推測法等常用地設計方法。采用邊界值分析法設計 合理的輸入條件與不合理的輸入條件;條件邊界測試用例應該包括輸入參數的邊界與條件邊界(if,while,for,switch ,SQL Where子句等)。錯誤推測法,列舉出程序中所有可能的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例;在編碼、單元測試階段可以發現很多常見的 錯誤和疑似錯誤,對于這些錯誤應該作重點測試,并設計相應的測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/