文/宋麗
軟件測試是軟件工程的一個重要階段,也是保證軟件質量的重要手段之一。隨著市場對軟件質量要求的不斷提高,軟件測試不斷受到重視。越來越多的軟件企業開始構建測試團隊,為軟件質量把關。環境質量監測系統是以計算機技術和數據庫技術為核心,管理大量環境監測信息和數據儲存的信息系統。利用環境監測管理系統可以加強對環境污染監測數據的處理,能夠快速有效的對環境進行準確監測。本文介紹了常用黑盒測試方法,并在環境質量監測系統的測試中進行應用。
環境監測中心站一般為環境監測數據中心,擁有大量環境質量數據,分為降水監測數據、河流監測數據、湖庫監測數據、飲用水監測數據、地下水監測數據、區域噪聲監測數據、功能區噪聲監測數據、交通噪聲監測數據等,針對監測中心監測業務建設的環境質量監測系統龐大復雜,功能多,邏輯強,安全性要求高,主要包括:水環境監測數據管理軟件(地表水、飲用水等)、降水數據管理軟件、噪聲數據管理軟件,將各級環境監測站監測數據的基礎信息維護、數據錄入、數據審核、數據上報、數據查詢、數據共享功能,以及省級數據統計和市級基礎統計功能結為一體,采用B/S 架構,實現“集中式”的管理。
該系統的測試工作主要針對功能測試展開,采用黑盒測試技術設計用例,執行測試,報告缺陷,回歸測試,使得軟件質量不斷提高,提升軟件的市場競爭力。
黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
常用的黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法等。

表1:判定表驅動法

表2:等價類劃分法測試用例

表3:邊界值分析法測試用例

表3:判定表
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試數據,取得較好的測試結果。
等價類劃分可有兩種不同的情況:有效等價類和無效等價類。有效等價類:是指對于程序的規格說明來說是合理的,有意義的輸入數據構成的集合。無效等價類:與有效等價類的定義恰巧相反。設計測試用例時,要同時考慮這兩種等價類。
邊界值分析是一種補充等價類劃分的測試用例設計技術,它不是選擇等價類中的任意元素,而是選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對等價類劃分方法的補充。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
錯誤推測法是基于經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。
錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。例如,在單元測試時曾列出的許多在模塊中常見的錯誤,以前產品測試中曾經發現的錯誤等,這些就是經驗的總結。輸入數據和輸出數據為0,輸入表格為空格或輸入表格只有一行,這些都是容易發生錯誤的情況,可選擇這些情況下的例子作為測試用例。
因果圖是一種常見的黑盒測試方法,它與邊界值分析和等價類方法相比的優勢在于其考慮的輸入數據的組合情況。在因果圖中,將輸入作為因(Cause),將輸出或操作作為果(Effect),故稱為因果圖。
因果圖法是一種適合于描述對于多種輸入條件組合的測試方法,根據輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件涉及的各種組合情況。因果圖法一般和判定表結合使用,通過映射同時發生相互影響的多個輸入來確定判定條件。
判定表是分析和表達多種輸入條件下系統執行不同動作的工具,將復雜的邏輯關系和多種條件組合的情況表達的清晰明了。判定表通常由四個部分組成,見表1。
(1)條件樁:列出系統的所有輸入;
(2)動作樁:列出系統可能采取的操作;
(3)條件項:列出針對對應條件樁的取值(即在所有可能情況下的取值);
(4)動作項:列出針對對應動作樁的取值情況下應該采取的動作。
動作項和條件項放一起,指出了在條件項的各種取值情況下應該采取的動作,在判定表中貫穿條件項和動作項的一列就是一條規則,可以針對每個合法輸入組合的規則設計用例進行測試。
判定表法主要針對功能需求中的處理過程,處理過程越復雜,越有必要使用判定表法。
環境質量監測系統主要對環境監測數據進行管理,實現數據錄入、數據導入、數據上報、數據審核、數據查詢、統計評價、基本信息等功能。在環境質量監測系統的功能測試工作中采用黑盒測試技術設計用例,在一定程度上避免了測試工作的盲目性,提高了測試覆蓋率。
在測試用例的設計過程中,首先采用等價類劃分法設計測試用例,并使用邊界值分析法對邊界進行重點測試,再根據測試人員的經驗補充測試用例,如果程序的功能說明中含有輸入條件的組合情況,則可選用因果圖法。
采用等價類劃分法,可以在一定程度上避免測試用例冗余,在保證覆蓋率的基礎上,能有效降低測試用例的數量,縮短測試周期。
環境質量監測系統包含大量的數據錄入采集功能,如降水數據、河流數據、湖庫數據等,該類功能主要采用等價類劃分法設計測試用例。
圖1為降水數據監測數據錄入頁面。
其中,需求文檔中對pH 值的范圍進行了約定:為0~14 之間的數字。設計測試用例時,首先劃分有效等價類及無效等價類,建立等價類表,對有效及無效等價類分別設計測試用例。其中,有效的測試用例要盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;無效等價類測試用例僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋。
設計出的測試用例如表2。
邊界值分析法是是對等價類劃分法的補充,重點關注輸入輸出邊界。
對pH 值輸入的邊界值測試用例設計如表3。
錯誤推測法基于測試人員的經驗和直覺,它不能明確的歸于黑盒法或白盒法,因為它并不是根據需求,也不是根據程序的結構來生成測試用例的。隨著在產品測試實踐中對產品了解的加深和測試經驗的豐富,使用錯誤推測法設計的測試用例往往非常有效。
在環境質量監測系統中,基于以往的測試經驗,利用錯誤推測法設計了很多行之有效的測試用例。
(1)對要求輸入數字的地方,輸入字母;

圖1:監測數據錄入

圖2:用戶登錄因果圖
(2)對要求輸入正數的地方,輸入負數;
(3)對文件上傳,上傳不符合要求的文件類型;
(4)輸入數字、字符長度超過限制;
(5)對日期時間,輸入早于1900年、晚于3000年的年份,月份輸入大于12 的數字,日期輸入大于31 的數字。
采用錯誤推測法,直觀簡潔的發現了一些缺陷,有的用例甚至導致系統退出,進一步說明了該方法的有效性。
因果圖法根據需求說明中的因果關系設計測試用例,能夠幫助測試人員高效率的選擇測試用例。
在環境質量監測系統,使用因果圖法對登錄操作設計測試用例。
第一步,根據需求說明,分析原因和結果:
(1)原因:1-合法用戶2-正確密碼3-正確驗證碼
(2)中間節點:11-用戶名、密碼、校驗碼均正確12-用戶名或密碼或校驗碼錯誤 13-單擊登錄14-單擊取消
(3)結果:21-登錄成功22-登錄失敗
第二步:畫出因果圖,見圖2。
其中V 表示或,原因之一成立則結果成立;Λ 表示與,原因都成立則結果成立;∽表示非,若原因出現則結果不出現。
第三步:因果圖轉換成判定表,見表3。
判定表中每一列表示一個測試用例,其中Y 表示有效測試用例,N 表示無效測試用例。
因果圖法設計測試用例,能夠幫助測試人員按照一定的步驟,高效地選擇測試用例,設計多個輸入條件組合用例,還能進一步指出軟件規格說明書中存在的問題。
黑盒測試方法是一種有效的功能測試用例設計方法,在環境質量監測系統測試中,綜合利用黑盒測試用例設計方法,突出了測試重點,提高了對需求的覆蓋率,提升了測試效率,縮短了測試周期。本次測試工作中,共發現缺陷58 個,嚴重性為高的缺陷15 個,嚴重性為中的缺陷21 個,嚴重性為低及輕微的缺陷22個。通過測試及整改,進一步降低了環境質量監測系統應用中的風險,保證了軟件質量,對系統的市場推廣及穩定運行起到積極作用。