一、引言

  軍用軟件是指為作戰(zhàn)任務(wù)或業(yè)務(wù)管理需要而使用的軟件系統(tǒng),主要包括軍事指揮系統(tǒng)、業(yè)務(wù)管理系統(tǒng)和信息化武器裝備內(nèi)嵌的控制系統(tǒng)。確保軍用軟件質(zhì)量是科研人員在進行軍用軟件研制過程中的一項重要任務(wù)。

  黑盒測試是把程序看作一個完全不能打開的黑盒子.在測試時.完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性.對程序接口進行測試,只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用.程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試的用例設(shè)計技術(shù)常用的有5種:等價類劃分法、邊界值分析法、錯誤猜測法、因果圖法和場景法。下面具體地來介紹這5種測試用例設(shè)計技術(shù)。

  二、等價類劃分法

  等價類劃分的辦法是把程序的輸入域劃分成若干部分,然后從每個部分中選取少數(shù)代表性數(shù)據(jù)當作測試用例,每一類的代表數(shù)據(jù)在測試中的作用等價于這一類中的其他值。也是說。我們認為如果某一類中的一個例子發(fā)現(xiàn)了錯誤,這一等價類中的其他例子也能出現(xiàn)同樣的錯誤。這樣可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。等價類劃分有兩類:有效等價類和無效等價類。有效等價類指的是符合程序規(guī)格說明書的有效輸入:無效等價類指的是其他任何可能的輸入條件(即不正確的輸入值)。設(shè)計測試用例時,要同時考慮這兩種等價類。因為軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗,這樣的測試才能確保軟件具有更高的可靠性。我們必須按照一定的標準進行分類,并且選擇有代表性的測試用例進行測試。下面給出6條確定等價類劃分的原則:

  ①在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下.則可以確立一個有效等價類和兩個無效等價類;

  ②在輸人條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下.可確立一個有效等價類和一個無效等價類;

 、墼谳斎霔l件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類;

  ④在規(guī)定了輸人數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立11‘個有效等價類和一個無效等價類;

 、菰谝(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則);

 、拊诖_知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進一步的劃分為更小的等價類。

  三、邊界值分析法

  長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價類的邊界,是應(yīng)著重測試的邊界情況。應(yīng)當選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù).而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù);谶吔缰捣治龇椒ㄟx擇測試用例的原則:

 、偃绻斎霔l件規(guī)定了值的范圍,則應(yīng)取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù);

 、谌绻斎霔l件規(guī)定了值的個數(shù),則用大個數(shù),小個數(shù),比小個數(shù)少一,比大個數(shù)多一的數(shù)作為測試數(shù)據(jù);

  ③根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則(1);

 、芨鶕(jù)規(guī)格說明的每個輸出條件,應(yīng)用前面的原則(2);

 、萑绻绦虻囊(guī)格說明給出的輸入域或輸出域是有序集合。則應(yīng)選取集合的第一個元素和后一個元素作為測試用例;

 、奕绻绦蛑惺褂昧艘粋內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例;

 、叻治鲆(guī)格說明,找出其它可能的邊界條件。例如,某一個軍用產(chǎn)品的使用壽命要求為1?99月,設(shè)計用例時,可以取0、1、99、100作用測試數(shù)據(jù)。而有些邊界在軟件內(nèi)部,終用戶幾乎看不到,但是軟件測試人有必要檢查。這樣的邊界條件稱為次邊界條件或者內(nèi)部邊界條件;尋找這樣的邊界不要求測試人員具有閱讀源代碼的能力,但要求了解軟件的工作方式。