北京電子科技職業學院 梁金宏 劉 威 趙利民 廉詩陽
軟件系統黑盒測試方法研究
北京電子科技職業學院 梁金宏 劉 威 趙利民 廉詩陽
黑盒測試對于軟件系統來說非常重要,主要是進行功能性測試,是在不考慮系統內部代碼的實現邏輯的情況下進行的測驗,是從使用者的角度進行數據輸入及數據輸出對應的匹配關系進行檢測而進行的測試,測試方法的研究對于軟件系統的測試至關重要。
軟件系統黑盒測試;測試方法
黑盒測試是進行軟件系統測試的主要方法之一,是在完全不考慮軟件內部結構和邏輯的情況下,對軟件進行功能測試,主要是按照需求分析規定的內容,檢查軟件是否達到正常使用的目的,能否達到接受正常輸入,并產生正常輸出的目的。黑盒測試主要測試軟件的功能和界面。測試者不需要了解程序的內部情況,只從輸入的合法性及正確性,規范性,范圍性中監測系統的輸入輸出結果是否與預期的一致而進行的測試。
正因為黑盒測試不需要了解軟件的實現邏輯與編程的具體過程,只從功能性中去探討軟件系統是否功能完備,為此系統在中間性測試及最終的驗收測試時大都采用黑盒測試的方法進行。而且黑盒測試非系統的設計人員也可以完成,當然整個測試過程還需要甲方去參與。
黑盒測試主要是注重功能的測試,主要包括:
功能的完整性,正確性測試
系統界面的顯示錯誤
輸入數據與輸出數據差異錯誤
數據庫訪問溢出,驅動等錯誤
系統的性能檢測錯誤
系統數據初始化、完備化、及系統停頓、中斷錯誤等等
目前在進行軟件系統的黑盒測試時一般有如下幾種常用的測試設計方法:劃分等價類法、分析邊界法、推測錯誤法和因果圖示法。
3.1劃分等價類法
劃分等價類法是一種比較常用的軟件系統黑盒測試方法,是把軟件系統所可能涉及到的所有數據按照某些規則劃分成幾個部分,簡單的說就是把數據子集劃分,然后在每部分中選取少量的具備代表性的數據來設計測試用例,以此來代替該部分中的所有數據,而不是為所有數據都設計測試用例進行測試,此種方法叫劃分等價類法。在此種測試方法中比較重要的是如何等價類的劃分。
3.1.1等價類劃分
等價類是首先是對整個輸入數據的區域進行分片,等價類是某個輸入域的子集。在該子集中,各個數據對于程序來講所產生的輸入輸出錯誤邏輯是相同的或大致類似的。對于此種情況我們假定選擇的代表性的數據能代替所有數據。我們在進行軟件系統黑盒測試時要根據系統的所有的功能性把所涉及的所有數據劃分成不同的區域形成子集即等價類,在等價類中選取代表性的數據代替其他數據進行測試。等價類分有效與無效兩類。
有效等價類:是指對于所設計的軟件系統按照規格來說合情合理的數據集合,是規范范圍內的數據用來檢測軟件系統的功能及性能。
無效等價類:是對于軟件系統來說不合理的數據,屬于意外性的數據,用來測試系統的邊緣性。
在進行軟件系統的測試用例時,有效等價類與無效等價類的數據都需要考慮,采用保證測試的完整性和系統的合理及完備性。
3.1.2等價類的劃分原則
①確定了輸入的取值范圍和個數時,可以確定一個有效等價類,邊緣兩個無效等價類。
②在輸入中確定必須點即必須滿足某一條件時,可確定一個有效等價類一個無效等價類。
③輸入數據有選擇分支情況下,可確立有效與無效等價類各一個。
④在輸入中確立多種不同輸入值,且每一種輸入值皆可產生不同結果時,可確立有效類多個,無效類一個。
⑤在確立數據輸入必須遵守某項規定時,確立有效類一個,無效類多個。
⑥已確立的等價類程序處理方式不同時說明沒有細化到位需要進一步細化。
3.1.3等價類劃分法的測試用例設計原則
在確立好等價類后要根據所有的有效等價類與無效等價類進行測試用例的設計。而在設計測試用例時要保證做到所有的有效等價類與無效等價類都要被覆蓋,才能滿足設計要求,為此要對有效等價類與無效等價類進行編號,每一個有效等價類至少需要一個至多個合理代表數據,每一個無效等價類需要一個代表數據。
3.2分析邊界法
分析邊界法是對軟件系統所涉及的邊界值進行分析并進行測試設計的黑盒測試法。在實際的軟件系統測試工作中發現,考慮了邊界并進行了測試修正的系統比沒經過邊界測試設計的系統具備更好的系統回報率,并且系統不易崩潰,而沒有進過邊界測試的系統在數據達到邊界值時常易發生系統崩潰的現象。這里的邊界是指數據正好處于邊緣狀態,或靠近及在邊緣以下的狀態時。
分析邊界法設計測試用例的原則:
(1)輸入數據規定了范圍,對于范圍邊界設計有效等價類用例,剛越界的設計無效等價類用例。
(2)系統中用了內部數據結構的情況下要設計內部數據結構的用例。
(3)若輸入數據范圍為有序范圍集合,則對數據范圍邊界的第一值與最后一值設計測試用例。
3.3推測錯誤法
推測錯誤法也是軟件系統進行黑盒測試常用的方法之一,其基本思路是設計者根據經驗和設計感覺推測出軟件系統所有可能存在的錯誤,并且設計測試用例對這些錯誤進行測試并修正系統。
基本做法是測試設計人員根據系統思路列舉出系統中所有可能有的錯誤和可能產生的特殊情景,并由此設計測試用例,而這一類做法往往需要系統的設計者做可能產生的錯誤及特殊情景的推斷,系統為設計者所設計,設計者最清楚錯誤的產生點和軟件系統的弱點。另外經驗豐富的測試人員在此類方法的使用上也頗具優越性,他們往往比較清楚一般軟件系統的薄弱點,而為此進行系統測試用例設計并進行測試。比如系統初始化數據為空,計算數據為0,數據庫中提取數據為空,或表格不存在等情況都是常見的系統錯誤,經驗豐富者對這些常見錯誤很有經驗設計測試用例時得心應手。然而無論何人都很難利用此法列出系統的所有錯誤,只能盡可能的減少,而只利用此法做到萬物一失的可能性幾乎沒有,只能依靠經驗值和敏銳的洞察力。為此,此法有一定的局限性,對于初學者相對困難。
3.4因果圖示法
因果圖示法是軟件系統黑盒測試中常用的一種方法。測試人員所繪制的因果圖能比較清晰的描述輸入條件與輸入結果之間的因果關系,是一種邏輯因果關系圖,該圖能幫助測試人員把注意力集中在輸入數據的條件判定上。
因果圖示法是適合于在輸入數據時存在多種輸入條件組合的情況下。我們一般根據輸入數據的條件組合及相互的約束和輸出結果之間的因果關系,分析歸納所有的輸入數據組合,為每一種組合設計測試用例并檢測輸出結果。
此種方法適合于檢測輸入數據存在多種組合的條件之下。
因果圖示法軟件系統黑盒測試的步驟:
(1)將軟件系統的數據規格劃分成多個可執行的片段,片段量不易過于龐大。
(2)分析每一個片段的結果及原因。
(3)為分析出的每一種情況劃畫出因果示意圖。
(4)跟蹤示意圖中的每一種數據變化情況,并由不同的數據狀態設計數據判定表。為數據判定表的每一種情況設計測試用例,并進行測試。
黑盒測試對于軟件系統的測試來說至關重要,而進行黑盒測試之前要做大量的數據準備調研及設計工作,力求保證數據的準確性與完備性,而進行完整的黑盒測試需要進行多方因素的考慮,且要根據軟件系統的應用情況利用不同的方法進行測試,且往往多種方法結合使用,才能滿足軟件系統測試需求,為此黑盒測試是一項系統工作,也是值得我們深入研究的一項系統工程。