文/宋麗
軟件測試是軟件工程的一個重要階段,也是保證軟件質量的重要手段之一。隨著市場對軟件質量要求的不斷提高,軟件測試不斷受到重視。越來越多的軟件企業(yè)開始構建測試團隊,為軟件質量把關。環(huán)境質量監(jiān)測系統(tǒng)是以計算機技術和數(shù)據(jù)庫技術為核心,管理大量環(huán)境監(jiān)測信息和數(shù)據(jù)儲存的信息系統(tǒng)。利用環(huán)境監(jiān)測管理系統(tǒng)可以加強對環(huán)境污染監(jiān)測數(shù)據(jù)的處理,能夠快速有效的對環(huán)境進行準確監(jiān)測。本文介紹了常用黑盒測試方法,并在環(huán)境質量監(jiān)測系統(tǒng)的測試中進行應用。
環(huán)境監(jiān)測中心站一般為環(huán)境監(jiān)測數(shù)據(jù)中心,擁有大量環(huán)境質量數(shù)據(jù),分為降水監(jiān)測數(shù)據(jù)、河流監(jiān)測數(shù)據(jù)、湖庫監(jiān)測數(shù)據(jù)、飲用水監(jiān)測數(shù)據(jù)、地下水監(jiān)測數(shù)據(jù)、區(qū)域噪聲監(jiān)測數(shù)據(jù)、功能區(qū)噪聲監(jiān)測數(shù)據(jù)、交通噪聲監(jiān)測數(shù)據(jù)等,針對監(jiān)測中心監(jiān)測業(yè)務建設的環(huán)境質量監(jiān)測系統(tǒng)龐大復雜,功能多,邏輯強,安全性要求高,主要包括:水環(huán)境監(jiān)測數(shù)據(jù)管理軟件(地表水、飲用水等)、降水數(shù)據(jù)管理軟件、噪聲數(shù)據(jù)管理軟件,將各級環(huán)境監(jiān)測站監(jiān)測數(shù)據(jù)的基礎信息維護、數(shù)據(jù)錄入、數(shù)據(jù)審核、數(shù)據(jù)上報、數(shù)據(jù)查詢、數(shù)據(jù)共享功能,以及省級數(shù)據(jù)統(tǒng)計和市級基礎統(tǒng)計功能結為一體,采用B/S 架構,實現(xiàn)“集中式”的管理。
該系統(tǒng)的測試工作主要針對功能測試展開,采用黑盒測試技術設計用例,執(zhí)行測試,報告缺陷,回歸測試,使得軟件質量不斷提高,提升軟件的市場競爭力。
黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
常用的黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法等。
表1:判定表驅動法
表2:等價類劃分法測試用例
表3:邊界值分析法測試用例
表3:判定表
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù),取得較好的測試結果。
等價類劃分可有兩種不同的情況:有效等價類和無效等價類。有效等價類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構成的集合。無效等價類:與有效等價類的定義恰巧相反。設計測試用例時,要同時考慮這兩種等價類。
邊界值分析是一種補充等價類劃分的測試用例設計技術,它不是選擇等價類中的任意元素,而是選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對等價類劃分方法的補充。
使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。
錯誤推測法是基于經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。
錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。例如,在單元測試時曾列出的許多在模塊中常見的錯誤,以前產品測試中曾經發(fā)現(xiàn)的錯誤等,這些就是經驗的總結。輸入數(shù)據(jù)和輸出數(shù)據(jù)為0,輸入表格為空格或輸入表格只有一行,這些都是容易發(fā)生錯誤的情況,可選擇這些情況下的例子作為測試用例。
因果圖是一種常見的黑盒測試方法,它與邊界值分析和等價類方法相比的優(yōu)勢在于其考慮的輸入數(shù)據(jù)的組合情況。在因果圖中,將輸入作為因(Cause),將輸出或操作作為果(Effect),故稱為因果圖。
因果圖法是一種適合于描述對于多種輸入條件組合的測試方法,根據(jù)輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件涉及的各種組合情況。因果圖法一般和判定表結合使用,通過映射同時發(fā)生相互影響的多個輸入來確定判定條件。
判定表是分析和表達多種輸入條件下系統(tǒng)執(zhí)行不同動作的工具,將復雜的邏輯關系和多種條件組合的情況表達的清晰明了。判定表通常由四個部分組成,見表1。
(1)條件樁:列出系統(tǒng)的所有輸入;
(2)動作樁:列出系統(tǒng)可能采取的操作;
(3)條件項:列出針對對應條件樁的取值(即在所有可能情況下的取值);
(4)動作項:列出針對對應動作樁的取值情況下應該采取的動作。
動作項和條件項放一起,指出了在條件項的各種取值情況下應該采取的動作,在判定表中貫穿條件項和動作項的一列就是一條規(guī)則,可以針對每個合法輸入組合的規(guī)則設計用例進行測試。
判定表法主要針對功能需求中的處理過程,處理過程越復雜,越有必要使用判定表法。
環(huán)境質量監(jiān)測系統(tǒng)主要對環(huán)境監(jiān)測數(shù)據(jù)進行管理,實現(xiàn)數(shù)據(jù)錄入、數(shù)據(jù)導入、數(shù)據(jù)上報、數(shù)據(jù)審核、數(shù)據(jù)查詢、統(tǒng)計評價、基本信息等功能。在環(huán)境質量監(jiān)測系統(tǒng)的功能測試工作中采用黑盒測試技術設計用例,在一定程度上避免了測試工作的盲目性,提高了測試覆蓋率。
在測試用例的設計過程中,首先采用等價類劃分法設計測試用例,并使用邊界值分析法對邊界進行重點測試,再根據(jù)測試人員的經驗補充測試用例,如果程序的功能說明中含有輸入條件的組合情況,則可選用因果圖法。
采用等價類劃分法,可以在一定程度上避免測試用例冗余,在保證覆蓋率的基礎上,能有效降低測試用例的數(shù)量,縮短測試周期。
環(huán)境質量監(jiān)測系統(tǒng)包含大量的數(shù)據(jù)錄入采集功能,如降水數(shù)據(jù)、河流數(shù)據(jù)、湖庫數(shù)據(jù)等,該類功能主要采用等價類劃分法設計測試用例。
圖1為降水數(shù)據(jù)監(jiān)測數(shù)據(jù)錄入頁面。
其中,需求文檔中對pH 值的范圍進行了約定:為0~14 之間的數(shù)字。設計測試用例時,首先劃分有效等價類及無效等價類,建立等價類表,對有效及無效等價類分別設計測試用例。其中,有效的測試用例要盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;無效等價類測試用例僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋。
設計出的測試用例如表2。
邊界值分析法是是對等價類劃分法的補充,重點關注輸入輸出邊界。
對pH 值輸入的邊界值測試用例設計如表3。
錯誤推測法基于測試人員的經驗和直覺,它不能明確的歸于黑盒法或白盒法,因為它并不是根據(jù)需求,也不是根據(jù)程序的結構來生成測試用例的。隨著在產品測試實踐中對產品了解的加深和測試經驗的豐富,使用錯誤推測法設計的測試用例往往非常有效。
在環(huán)境質量監(jiān)測系統(tǒng)中,基于以往的測試經驗,利用錯誤推測法設計了很多行之有效的測試用例。
(1)對要求輸入數(shù)字的地方,輸入字母;
圖1:監(jiān)測數(shù)據(jù)錄入
圖2:用戶登錄因果圖
(2)對要求輸入正數(shù)的地方,輸入負數(shù);
(3)對文件上傳,上傳不符合要求的文件類型;
(4)輸入數(shù)字、字符長度超過限制;
(5)對日期時間,輸入早于1900年、晚于3000年的年份,月份輸入大于12 的數(shù)字,日期輸入大于31 的數(shù)字。
采用錯誤推測法,直觀簡潔的發(fā)現(xiàn)了一些缺陷,有的用例甚至導致系統(tǒng)退出,進一步說明了該方法的有效性。
因果圖法根據(jù)需求說明中的因果關系設計測試用例,能夠幫助測試人員高效率的選擇測試用例。
在環(huán)境質量監(jiān)測系統(tǒng),使用因果圖法對登錄操作設計測試用例。
第一步,根據(jù)需求說明,分析原因和結果:
(1)原因:1-合法用戶2-正確密碼3-正確驗證碼
(2)中間節(jié)點:11-用戶名、密碼、校驗碼均正確12-用戶名或密碼或校驗碼錯誤 13-單擊登錄14-單擊取消
(3)結果:21-登錄成功22-登錄失敗
第二步:畫出因果圖,見圖2。
其中V 表示或,原因之一成立則結果成立;Λ 表示與,原因都成立則結果成立;∽表示非,若原因出現(xiàn)則結果不出現(xiàn)。
第三步:因果圖轉換成判定表,見表3。
判定表中每一列表示一個測試用例,其中Y 表示有效測試用例,N 表示無效測試用例。
因果圖法設計測試用例,能夠幫助測試人員按照一定的步驟,高效地選擇測試用例,設計多個輸入條件組合用例,還能進一步指出軟件規(guī)格說明書中存在的問題。
黑盒測試方法是一種有效的功能測試用例設計方法,在環(huán)境質量監(jiān)測系統(tǒng)測試中,綜合利用黑盒測試用例設計方法,突出了測試重點,提高了對需求的覆蓋率,提升了測試效率,縮短了測試周期。本次測試工作中,共發(fā)現(xiàn)缺陷58 個,嚴重性為高的缺陷15 個,嚴重性為中的缺陷21 個,嚴重性為低及輕微的缺陷22個。通過測試及整改,進一步降低了環(huán)境質量監(jiān)測系統(tǒng)應用中的風險,保證了軟件質量,對系統(tǒng)的市場推廣及穩(wěn)定運行起到積極作用。