余慧敏,徐白,周楷林,李芳芳
(上海航天電子技術(shù)研究所,上海,201109)
黑盒測試又被稱為功能測試、數(shù)據(jù)驅(qū)動(dòng)測試或基于軟件需求規(guī)格說明的測試,是通過使用整個(gè)軟件或某種軟件功能來嚴(yán)格的測試,而并沒有通過檢查程序的源代碼或者很清楚的了解該軟件的源代碼程序具體是怎么設(shè)計(jì)的[1]。在黑盒測試時(shí),軟件測試員只需知道軟件要做什么而無法看到盒子里面的軟件是如何運(yùn)行的。只要進(jìn)行一些輸入,就能得到某種輸出結(jié)果[2]。測試人員通過輸入他們的數(shù)據(jù)然后看輸出的結(jié)果從而了解軟件怎樣工作。黑盒測試方法主要有等價(jià)類劃分法、邊界值分析法、因果圖、錯(cuò)誤推測法等。
白盒測試也稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動(dòng)測試或基于代碼的測試。白盒測試是通過程序的源代碼進(jìn)行測試而不使用用戶界面。它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定去正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,來檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,動(dòng)態(tài)白盒測試的測試方法主要有邏輯驅(qū)動(dòng)、基路測試等。
軟件的黑盒測試意味著測試要在軟件的接口處進(jìn)行。這種方法是把測試對象看做一個(gè)黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試。
軟件的白盒測試是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測試對象看做一個(gè)打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序的所有邏輯路徑進(jìn)行測試,通過在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試。白盒測試主要是想對程序模塊進(jìn)行檢查[3]。
黑盒測試:設(shè)有一個(gè)檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設(shè)日期限定在1990年1月~2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前面4位表示年后面2位表示月。首先劃分有效等價(jià)類和無效等價(jià)類(如表1所示),然后根據(jù)等價(jià)類設(shè)計(jì)測試用例(如表2所示)。
表1 等價(jià)類表
表2 測試用例表
白盒測試:如有如下C語言程序段,可以使用基本路徑法保證每條路徑至少執(zhí)行一次。
if(a>b)
{c=1;}
else if(a==b)
{c=0;}
else
{c=-1;}
printf(“%d ”,c);
該程序段有3條獨(dú)立路徑,根據(jù)獨(dú)立路徑設(shè)計(jì)的3個(gè)測試用例如下表3所示。
表3 測試用例表
黑盒測試:某型號火力控制軟件要求最多接收指控系統(tǒng)8批精跟目指和8批粗跟目指給跟蹤制導(dǎo)雷達(dá),超過額度則不響應(yīng);通過指控系統(tǒng)發(fā)送如下表4中的跟蹤制導(dǎo)雷達(dá)粗跟數(shù)和精跟數(shù)查看軟件是否正常響應(yīng)。
表4 等價(jià)雷表
表5 測試用例表
白盒測試:某型號抗干擾軟件速度欺騙干擾判決功能,要求當(dāng)航跡數(shù)大于1時(shí)將速度欺騙干擾標(biāo)志置1,當(dāng)航跡數(shù)為1或0時(shí)速度欺騙干擾標(biāo)志置0。該功能有2條獨(dú)立路徑,根據(jù)獨(dú)立路徑設(shè)計(jì)的2個(gè)測試用例如下表6所示。
圖1 流程圖
表6 測試用例表
白盒測試和黑盒測試是軟件測試中兩種不同的測試方法。黑、白盒測試有著本質(zhì)區(qū)別,又是互相聯(lián)系、相輔相成的。它們從不同的角度進(jìn)行分析設(shè)計(jì),各有重點(diǎn)。在現(xiàn)代測試?yán)砟钪谐⑦@兩種方法交叉使用,以達(dá)到更好的測試效果,使應(yīng)用系統(tǒng)更加完善,產(chǎn)品的質(zhì)量更高。
參考文獻(xiàn)
[1]楊海成.航天型號軟件工程[M].中國宇航出版社,2011:100-102.
[2]張小松,王鈺,曹躍.軟件測試[M].機(jī)械工業(yè)出版社,2014:35-37.
[3]龔昌.淺談白盒測試與黑盒測試在軟件測試中的應(yīng)用[J].信息與電腦.2011(1).