軟體單元測試的基本方法

2022-09-12 07:18:04 字數 2305 閱讀 5346

單元測試的物件是軟體設計的最小單位——模組。單元測試的依據是詳細設描述,單元測試應對模組內所有重要的控制路徑設計測試用例,以便發現模組內部的錯誤。單元測試多採用白盒測試技術,系統內多個模組可以並行地進行測試。

單元測試任務單元測試任務包括:1 模組介面測試;2 模組區域性資料結構測試;3 模組邊界條件測試;4 模組中所有獨立執行通路測試;5 模組的各條錯誤處理通路測試。

模組介面測試是單元測試的基礎。只有在資料能正確流入、流出模組的前提下,其他測試才有意義。測試介面正確與否應該考慮下列因素:

1、 輸入的實際引數與形式引數的個數是否相同;

2、 輸入的實際引數與形式引數的屬性是否匹配;

3、 輸入的實際引數與形式引數的量綱是否一致;

4、 呼叫其他模組時所給實際引數的個數是否與被調模組的形參個數相同;

5、 呼叫其他模組時所給實際引數的屬性是否與被調模組的形參屬性匹配;

6、 呼叫其他模組時所給實際引數的量綱是否與被調模組的形參量綱一致;

7、 呼叫預定義函式時所用引數的個數、屬性和次序是否正確;

8、 是否存在與當前入口點無關的引數引用;

9、 是否修改了唯讀型引數;

10、 對全程變數的定義各模組是否一致;

11、 是否把某些約束作為引數傳遞。

如果模組內包括外部輸入輸出,還應該考慮下列因素:

1、 檔案屬性是否正確;

2、 open/close語句是否正確;

3、 格式說明與輸入輸出語句是否匹配;

4、 緩衝區大小與記錄長度是否匹配;

5、 檔案使用前是否已經開啟;

6、 是否處理了檔案尾;

7、 是否處理了輸入/輸出錯誤;

8、 輸出資訊中是否有文本性錯誤;

檢查區域性資料結構是為了保證臨時儲存在模組內的資料在程式執行過程中完整、正確。區域性資料結構往往是錯誤的根源,應仔細設計測試用例,力求發現下面幾類錯誤:

1、 不合適或不相容的型別說明;

2、 變數無初值;

3、 變數初始化或省缺值有錯;

4、 不正確的變數名(拼錯或不正確地截斷);

5、 出現上溢、下溢和位址異常。

除了區域性資料結構外,如果可能,單元測試時還應該查清全域性資料(例如fortran的公用區)對模組的影響。

在模組中應對每一條獨立執行路徑進行測試,單元測試的基本任務是保證模組中每條語句至少執行一次。此時設計測試用例是為了發現因錯誤計算、不正確的比較和不適當的控制流造成的錯誤。此時基本路徑測試和迴圈測試是最常用且最有效的測試技術。

計算中常見的錯誤包括:

1、 誤解或用錯了算符優先順序;

2、 混合型別運算;

3、 變數初值錯;

4、 精度不夠;

5、 表示式符號錯。

比較判斷與控制流常常緊密相關,測試用例還應致力於發現下列錯誤:

1、 不同資料型別的物件之間進行比較;

2、 錯誤地使用邏輯運算子或優先順序;

3、 因計算機表示的侷限性,期望理論上相等而實際上不相等的兩個量相等;

4、 比較運算或變數出錯;

5、 迴圈終止條件或不可能出現;

6、 迭代發散時不能退出;

7、 錯誤地修改了迴圈變數。

乙個好的設計應能預見各種出錯條件,並預設各種出錯處理通路,出錯處理通路同樣需要認真測試,測試應著重檢查下列問題:

1、 輸出的出錯資訊難以理解;

2、 記錄的錯誤與實際遇到的錯誤不相符;

3、 在程式自定義的出錯處理段執行之前,系統已介入;

4、 異常處理不當;

5、 錯誤陳述中未能提供足夠的定位出錯資訊。

邊界條件測試是單元測試中最後,也是最重要的一項任務。眾的周知,軟體經常在邊界上失效,採用邊界值分析技術,針對邊界值及其左、右設計測試用例,很有可能發現新的錯誤。

單元測試過程

一般認為單元測試應緊接在編碼之後,當源程式編制完成並通過複審和編譯檢查,便可開始單元測試。測試用例的設計應與複審工作相結合,根據設計資訊選取測試資料,將增大發現上述各類錯誤的可能性。在確定測試用例的同時,應給出期望結果。

應為測試模組開發乙個驅動模組(driver)和(或)若干個樁模組(stub),下圖顯示了一般單元測試的環境。驅動模組在大多數場合稱為「主程式」,它接收測試資料並將這些資料傳遞到被測試模組,被測試模組被呼叫後,「主程式」列印「進入-退出」訊息。

驅動模組和樁模組是測試使用的軟體,而不是軟體產品的組成部分,但它需要一定的開發費用。若驅動和樁模組比較簡單,實際開銷相對低些。遺憾的是,僅用簡單的驅動模組和樁模組不能完成某些模組的測試任務,這些模組的單元測試只能採用下面討論的綜合測試方法。

提高模組的內聚度可簡化單元測試,如果每個模組只能完成乙個,所需測試用例數目將顯著減少,模組中的錯誤也更容易發現。

初三數學圓的基本性質單元測試

第3章圓的基本性質單元測試 一 選擇題 每小題4分,共40分 1.o半徑為5,圓心o的座標為 0,0 點p的座標為 3,4 則點p與 o的位置關係是 a 點p在 o內b 點p在 o上 c 點p在 o外d 點p在 o上或外 2 abc的外心在三角形的外部,則 abc是 a.銳角三角形 b.直角三角形 ...

單元測試反思

為了了解學生對小數乘法這部分知識的掌握情況,本週進行了單元測試,縱看測試成績,感觸頗多,通過反思我發現教學中仍存在著很多的問題 1.個別學生學習習慣不好,做題粗心大意,做後懶得檢查。還有學生做題習慣差,做題步驟不完整。2.儘管在後進生身上也付出了一定的時間和精力,但從測試成績來看,只是略有進步或進步...

比單元測試

比單元練習 班級姓名學號 一 填空 每空1分,共22分 1 0.85的比值是0.7千克 35克化成最簡整數比是 2 甲數是乙數的3.2倍,乙數與甲數的比是甲數是甲乙兩數和的 3 長方形的長是10厘公尺,寬是6厘公尺,寬和長的比是 比值是 4 松樹棵樹的是楊數的,楊數與松樹棵樹的比是 男生人數的與女生...