若再加上邊界數據要測試的數據組數就更多了,一般CXXUNIT系列編寫的測試代碼是每組測試數據(其實一組數據就對應一個測試用例)都要編寫初始化代碼,然后調用相應功能函數測試。這樣導致:
在自動測試的整個過程中,測試用例的可維護性會影響到將來測試用例增加的難易度,良好的自測程序應能很方便的擴充測試用例。
在采用CXXUNIT系列測試工具開發測試代碼時,對于一些簡單的測試可以測試用例就嵌在測試代碼中。但當某一個功能或函數要進行很多組數據(如邊界數據)的測試時使用這種方法就得重復編寫測試代碼,可能每增加一個測試用例就要編寫大量的重復測試代碼。
舉例:要測試周期會議預約功能的代碼,要測試以下幾組數據:
1)每日召開的周期會議
1.1)按召開次數預約的周期會議
1.2)按開始時間、終止時間預約的周期會議
2)每周召開的周期會議
……(內容和1.1、1.2一致)
3)每月召開的周期會議
……(內容和1.1、1.2一致)
4)每年召開的周期會議
……(內容和1.1、1.2一致)
隨著測試數據組數的增加,將出現大量做重復動作的測試代碼,這些測試代碼之間唯一的不同是由于初始化的數據不一樣而已。
當一個功能只需一兩個測試用例時,測試用例嵌入在測試代碼中可以進行控制和管理,當一個功能測試時需要大量的測試用例時(見舉例),大量的測試用例嵌在代碼中將很難管理,你要知道某個用例是否已經有了還得去遍歷測試代碼比較麻煩。
2.1測試用例目錄結構
為此很有必要設計一套能良好管理和添加測試用例的體系結構。
當一個功能有很多組測試數據時,我們可以將測試用例數據全部存放在文件中,使測試用例和測試代碼分離開。由于測試用例脫離測試代碼而存在,可以很方便的進行管理和維護。我們可以為每個要測試的函數(或功能)建個目錄,每個測試用例放在一個單獨的文本文件中,將所有對應于該函數的測試數據文件全部放入該目錄下,當測試數據量很大時還可以在目錄下再創建相應的子目錄,分類進行管理。這樣可以方便測試用例的管理,而測試程序也只用專注于測試邏輯。還以測試周期會議預約功能的例子為基礎進行討論。