李 英,薛 嵐
(江西信息應(yīng)用職業(yè)技術(shù)學(xué)院 計算機技術(shù)系,南昌 330043)
軟件測試技術(shù)之功能測試方法探討與分析
李英,薛嵐
(江西信息應(yīng)用職業(yè)技術(shù)學(xué)院計算機技術(shù)系,南昌330043)
摘要:軟件產(chǎn)品隨著計算機信息產(chǎn)業(yè)技術(shù)的迅速發(fā)展而規(guī)模越來越大,軟件測試技術(shù)也隨之發(fā)展,它是貫穿于整個軟件項目開發(fā)的過程檢驗軟件產(chǎn)品質(zhì)量的最有效的方法之一,主要確認產(chǎn)品是否完成需求規(guī)格說明書中所設(shè)定的功能。本文主要討論了軟件測試技術(shù)的黑盒測試方法的功能測試,功能測試也可以被稱之為正確性測試,它主要檢查軟件產(chǎn)品的功能是否能夠滿足用戶的要求。由于功能測試牽涉到了軟件產(chǎn)品的正確性,所以功能測試在整個軟件測試技術(shù)中也是極為重要的。
關(guān)鍵字:軟件測試技術(shù);軟件產(chǎn)品質(zhì)量;功能測試;黑盒測試;正確性
軟件測試技術(shù)黑盒測試—功能測試也可以稱之為正確性測試。在測試過程中,把程序比作一個看不清、打不開的黑匣子,在完全不考慮程序的內(nèi)部情況的前提下,測試人員只對程序的外部進行功能性測試。在進行功能性測試時,只是通過輸入數(shù)據(jù)、操作數(shù)據(jù)、輸出結(jié)果來檢驗軟件系統(tǒng)是否能夠按照需求規(guī)格說明書中用戶所要求的功能正常使用。
功能測試不可能把所有的輸入都作為測試用例來進行窮舉測試,所以我們必須從無限的輸入數(shù)據(jù)中選出極具有典型的測試數(shù)據(jù)來進行測試。功能測試的方法有很多種,其中有等價類劃分法、邊界值分析法、因果圖法、錯誤推測法、場景分析法等等。下面介紹幾種常用的功能測試方法:等價類劃分法、邊界值分析法、錯誤推測法和因果圖法。
2.1等價類劃分
等價類的劃分根據(jù)程序的需求規(guī)格說明可以分成兩種不同等價類的情況:
(1)有效等價類:是指有意義的,合法的輸入數(shù)據(jù)構(gòu)成的集合。
(2)無效等價類:是指無意義的,非法的輸入數(shù)據(jù)構(gòu)成的集合。
在設(shè)計測試用例時,要在輸入域中分別對有效區(qū)域和無效區(qū)域進行有效等價類和無效等價類的設(shè)計;如何進行正確的等價類劃分?劃分等價類時有如下五個原則:
(1)如果輸入的條件是一個取值的范圍,那么則可以劃分成一個有效等價類(合法值,即取值合法的區(qū)域內(nèi))和兩個無效等價類(非法值,即取值的區(qū)域兩端外)。
(2)如果輸入的條件含有某種條件,比如說“必須如何”等,或者如果是有一組輸入值的集合,那么則可以劃分成一個有效等價類(滿足必須條件的所有值或輸入值的集合)和一個無效等價類(不滿足必須條件的所有值和除輸入值集合之外的所有值)。
(3)如果輸入條件是一個“True”或“False”的布爾值,那么則可以劃分一個有效等價類(布爾值為True)和一個無效等價類(布爾值為False)。
針對基于信號處理的滾動軸承復(fù)合故障診斷難的問題,提出一種基于NCA的滾動軸承復(fù)合故障智能診斷方法.為提高NCA的分類正確率及效率,用常規(guī)時域特征提取方法,對滾動軸承不同運行狀態(tài)的信號進行特征提取,將提取后的特征向量作為NCA的訓(xùn)練及測試樣本,取得理想的分類效果.通過滾動軸承3種復(fù)合故障振動數(shù)據(jù)及正常狀態(tài)數(shù)據(jù),驗證了所述方法的有效性.此外,通過與PCA分類效果對比,證明了所述方法的優(yōu)越性,具有更高的分類正確率.
(4)如果輸入條件是程序?qū)σ唤M數(shù)據(jù)值要進行分別處理時,也就是程序定義了一組數(shù)據(jù)輸入的值,那么則N個有效等價類(每一個輸入值)和一個無效等價類(所有不允許的輸入值的一組集合)。
(5)如果輸入條件規(guī)定了一系列必須要遵守的規(guī)則,那么則可以劃分一個有效等價類(滿足所有要遵守的規(guī)則)和N個無效等價類(從若干個不同角度違反規(guī)則)。
等價類劃分完之后就可以建立等價類表,最后從劃分出的等價類表中設(shè)計選擇合適的測試用例。

輸入條件有效等價類無效等價類………………………………
2.2邊界值分析法
邊界值分析法是對輸入值臨界情況的一種考慮,它可以認為是對等價類劃分法的一種補充,也可以另外一個層面上來理解,也就是等價類劃分法中的一種特殊情況。
程序輸入值的數(shù)據(jù)類型可以有各種類型,例如數(shù)值、字符、位置、數(shù)量、速度、地址、尺寸等,這些類型都會包含確定的邊界,所以邊界值分析法應(yīng)考慮邊界的情況,即臨界的值;此測試方法如果僅僅測試邊界線上的最后一個合法數(shù)據(jù)點往往是不夠充分的,它還應(yīng)測試剛超過邊界的非法數(shù)據(jù)。
2.3錯誤推測法
錯誤推測法是通過測試人員的經(jīng)驗和直覺推測程序中可能存在的各種錯誤,然后再根據(jù)所推測的錯誤設(shè)計具有針對性的測試用例。
2.4因果圖法
在一般情況下,因果法用來檢查需求規(guī)格說明書中所定義的輸入條件的各種組合情況,它是一種利用圖解的方法來解釋因與果之間的關(guān)系,基本符號通常有Ci(表原因)、Ei(表結(jié)果)和結(jié)點(有狀態(tài)0和1),其中原因和結(jié)果之間存在恒等、非、或和與四種關(guān)系;而原因與原因之間與結(jié)果與結(jié)果之間存在的約束條件有E(互斥)、I(包含)、O(唯一)、R(要求)和M(屏蔽)五種條件。
利用因果圖法設(shè)計測試用例的步驟如下:
(1)根據(jù)軟件需求規(guī)格說明書中所描述的內(nèi)容列出哪些是原因,哪些是結(jié)果,并給每條原因和每條結(jié)果分別賦予唯一的標(biāo)識符。
(2)依據(jù)軟件需求規(guī)格說明書中所描述的語義分析原因與結(jié)果的四種關(guān)系以及原因與原因、結(jié)果與結(jié)果之間所對應(yīng)的約束條件,并畫出因果圖。
(3)在因果圖上標(biāo)識出哪些原因與原因,原因與結(jié)果之間不可以出現(xiàn)的情況。
(4)把因果圖轉(zhuǎn)換成判定表。
(5)根據(jù)判定表的每一列分別設(shè)計測試用例。
通過上述主要的四種功能測試方法的學(xué)習(xí),我們不難發(fā)現(xiàn)功能測試的優(yōu)缺點。
優(yōu)點:(1)功能測試相對白盒測試比較簡單,因為它不需要了解程序的內(nèi)部代碼的實現(xiàn)過程;(2)功能測試是基于需求規(guī)格說明書的文檔測試,也是站在用戶的角度出發(fā)的測試,它能夠很清楚地了解用戶需要哪些功能,以及可能會遇到哪些問題;(3)功能測試是基于文檔的測試,即軟件需求規(guī)格說明書;(4)功能測試做自動化測試比較方便,可以大大的節(jié)約人力成本。
缺點:(1)經(jīng)驗表明,功能測試大概只能覆蓋到總代碼的30%,因此功能測試代碼覆蓋率低;(2)自動化測試的重用性低。
因此,要對一個軟件產(chǎn)品做一個全面的測試時,僅僅運用功能測試方法是遠遠不夠的,要功能和結(jié)構(gòu)測試相結(jié)合,使軟件產(chǎn)品的質(zhì)量得到最大的保證。
參考文獻:
[1]朱少民,軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2005.
[2]張向宏主編.軟件測試?yán)碚撆c實踐教程[M].北京:人民郵電出版社,2009.