單元測試細(xì)節(jié)_第1頁
單元測試細(xì)節(jié)_第2頁
單元測試細(xì)節(jié)_第3頁
單元測試細(xì)節(jié)_第4頁
單元測試細(xì)節(jié)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第第頁單元測試細(xì)節(jié)

單元測試細(xì)節(jié)

發(fā)表于:2023-08-16來源:未知:領(lǐng)測軟件測試網(wǎng)采編點(diǎn)擊數(shù):標(biāo)簽:單元測試

功能測試對(duì)于一個(gè)代碼單元,首先要測試它的基本功能。功能就是在某種輸入時(shí)應(yīng)該產(chǎn)生某種確定的輸出。對(duì)于一個(gè)代碼單元,它的可能輸入通常是無窮的,顯然,把輸入的所有可能取值都進(jìn)行測試,是不可能也是無意義的,我們應(yīng)該用一定的規(guī)則選擇有代表性

功能測試

對(duì)于一個(gè)代碼單元,首先要(測試)它的基本功能。功能就是在某種輸入時(shí)應(yīng)該產(chǎn)生某種確定的輸出。對(duì)于一個(gè)代碼單元,它的可能輸入通常是無窮的,顯然,把輸入的所有可能取值都進(jìn)行(測試),是不可能也是無意義的,我們應(yīng)該用一定的規(guī)則選擇有代表性的數(shù)據(jù)來建立測試用例。要考慮的輸入主要有三種:正常輸入,邊界輸入,非法輸入,每種輸入還可以分類,也就是平常說的等價(jià)類法,每類取一個(gè)數(shù)據(jù)作為輸入數(shù)據(jù)建立(測試(用例)),如果測試通過,可以肯定同類的其他輸入也是可以通過的。如果等價(jià)類的劃分是準(zhǔn)確且完整的,并且每一個(gè)等價(jià)類都進(jìn)行了測試,那么,可以說這個(gè)代碼單元經(jīng)過了充分的測試。下面舉例說明:

正常輸入

例如字符串的Trim函數(shù),功能是將字符串前后的空格去除,那么正常的輸入可以有四類:前面有空格;后面有空格;前后均有空格;前后均無空格。

邊界輸入

上例中空字符串可以看作是邊界輸入。

再如一個(gè)表示年齡的參數(shù),它的有效范圍是0-100,那么邊界輸入有兩個(gè):0和100。

非法輸入

非法輸入是正常取值范圍以外的數(shù)據(jù),或使代碼不能完成正常功能的輸入,如上例中表示年齡的參數(shù),小于0或大于100都是非法輸入,再如一個(gè)進(jìn)行文件操作的函數(shù),非法輸入有這么幾類:文件不存在;目錄不存在;權(quán)限錯(cuò)誤。

如果輸入有多個(gè)數(shù)據(jù),還要考慮這些數(shù)據(jù)之間的關(guān)系,即等價(jià)類還要包括數(shù)據(jù)的組合。

要人工找出所有的等價(jià)類通常是很困難的,但使用VU,通常不需要這樣做,只要為容易想到的、比較典型的等價(jià)類建立測試用例就行了,后文會(huì)有進(jìn)一步的論述。

從上述可以看出,測試用例編輯器可以適應(yīng)很復(fù)雜的測試用例的編輯。只要一個(gè)測試用例已編輯完畢,第二個(gè)及更多的測試用例就很簡單了:選定一個(gè)現(xiàn)有的測試用例,由系統(tǒng)自動(dòng)拷貝,用戶再對(duì)部分?jǐn)?shù)值進(jìn)行修改就行了。由于各個(gè)測試用例之間的差別通常很小,這種方式可以很快建立測試用例集。

測試用例編輯器還具有代碼模式,很特殊的情況下,可以切換到代碼模式下直接編輯代碼。

白盒測試

這里所說的(白盒)測試,是指針對(duì)程序的邏輯結(jié)構(gòu)來設(shè)計(jì)測試用例進(jìn)行測試。(白盒)測試用邏輯覆蓋率來衡量測試的完整性。邏輯單位主要有:語句、分支、條件、條件值、條件值組合,路徑。語句覆蓋就是覆蓋所有的語句,其他類推。另外還有一種判定條件覆蓋,其實(shí)是分支覆蓋與條件覆蓋的組合,在此不作討論。跟條件有關(guān)的覆蓋就有三種,容易混淆,解釋一下:條件覆蓋是指覆蓋所有的條件表達(dá)式,即所有的條件表達(dá)式都至少計(jì)算一次,不考慮計(jì)算結(jié)果;條件值覆蓋是指覆蓋條件的所有可能取值,即每個(gè)條件的取真值和取假值都要至少計(jì)算一次;條件值組合覆蓋是指覆蓋所有條件取值的所有可能組合。循環(huán)結(jié)構(gòu)一般不考慮循環(huán)的次數(shù),而只考慮至少執(zhí)行循環(huán)體一次和不進(jìn)入循環(huán)體兩種情況,即把循環(huán)結(jié)構(gòu)看作具有進(jìn)入循環(huán)和不進(jìn)入循環(huán)兩個(gè)會(huì)支的分支結(jié)構(gòu)。由于不同的覆蓋率具有不同的側(cè)重點(diǎn),為了保證充分的測試,最好是完成幾種覆蓋率的組合。VU選擇了四種覆蓋的組合作為白盒測試指標(biāo):語句覆蓋、條件覆蓋、分支覆蓋、路徑覆蓋。如果這四種覆蓋都達(dá)到了100%,那么,測試的完整性是非常高的,讀者可以比較一下,在使用VU之前,您的項(xiàng)目要求達(dá)到什么樣的白盒覆蓋?實(shí)際上又能完成到什么程度?

白盒測試與(功能測試)有什么關(guān)系呢?可以說,如果(功能測試)是足夠充分的,那么白盒測試就沒有必要,從等價(jià)類的角度來看,足夠充分是指,等價(jià)類的劃分是完全正確的,并且所有的等價(jià)類都測試到了。如何衡量功能測試的完整性呢?人工審核是一個(gè)方法,不過這種方式代價(jià)較高,并且仍然不能保證結(jié)果的準(zhǔn)確性。難于衡量測試的完整性是功能測試的主要(缺陷),而白盒測試恰恰具有易于衡量測試完整性的優(yōu)點(diǎn),兩者之間具有極好的互補(bǔ)性。

在單元測試中,功能測試和白盒測試通常具有這樣的關(guān)系:如果功能測試足夠充分,那么,所有可以覆蓋的白盒邏輯單位都已經(jīng)覆蓋,剩下的是不可覆蓋的;反過來說,如果有一些邏輯單位未覆蓋,并且不能證明該邏輯單位是不可覆蓋的,那么,可以認(rèn)為功能測試不完整:或者等價(jià)類的劃分不夠準(zhǔn)確完整,或者有些等價(jià)類未測試到。也就是說,白盒覆蓋指標(biāo)可以衡量功能測試的完整性,依據(jù)某個(gè)未覆蓋的邏輯目標(biāo),可以發(fā)現(xiàn)遺漏的等價(jià)類。運(yùn)行測試后,VU會(huì)自動(dòng)統(tǒng)計(jì)白盒覆蓋狀況,標(biāo)示出未覆蓋的代碼、條件、分支及路徑,并且提供測試用例設(shè)計(jì)器來幫助設(shè)計(jì)可以覆蓋遺漏的邏輯單位的測試用例。只要有了第一個(gè)測試用例,測試用例設(shè)計(jì)器就能很好地工作。

前面說過,使用VU,能達(dá)到100%語句、條件、分支、路徑覆蓋。很多讀者會(huì)問,對(duì)于稍為復(fù)雜一點(diǎn)的程序,路徑就可能幾百上千條,100%覆蓋可能嗎?那要耗費(fèi)多少資源?

任何程序,不管它有多復(fù)雜,都不可能脫離客觀規(guī)律和客觀實(shí)際。路徑是什么?路徑是代碼的組合,就是程序可能的運(yùn)行路線。對(duì)于一個(gè)函數(shù)來說,只要輸入確定了,程序的運(yùn)行路線就確定了(局部靜態(tài)變量是一個(gè)特例,它實(shí)質(zhì)上是全局變量,只不過是局部可見而已,因此,也應(yīng)該看作是一個(gè)輸入)。從等價(jià)類的角度來看,一個(gè)等價(jià)類里所有可能取值,一般來說覆蓋的路徑是一樣的。我們可以大體上認(rèn)為:程序的可覆蓋路徑的數(shù)量與等價(jià)類的數(shù)量基本相等。例如,一個(gè)程序,功能是輸入人民幣小寫數(shù)值,輸出大寫字符串,它的路徑可能有幾百條,但是,我們簡單的想一下,就會(huì)發(fā)現(xiàn)等價(jià)類不會(huì)超過十個(gè),因此,大體上可以說,可以覆蓋的路徑不會(huì)超過10條。

至于語句、條件、分支,也可能有一些是不能覆蓋的,這些邏輯目標(biāo)的處理要比路徑簡單得多。我們說達(dá)到100%語句、條件、分支、路徑覆蓋,是指覆蓋可以覆蓋的部分,并把不能覆蓋的部分識(shí)別出來并作適當(dāng)?shù)奶幚怼?/p>

VU的測試用例設(shè)計(jì)器具有兩方面的功能:識(shí)別不可覆蓋的邏輯目標(biāo),為可覆蓋的邏輯目標(biāo)設(shè)計(jì)測試用例。測試用例設(shè)計(jì)器的工作原理是:從現(xiàn)有的測試用例中計(jì)算出一個(gè)最接近于可覆蓋預(yù)期邏輯目標(biāo)的用例作為近似用例,并生成修改提示,依據(jù)修改提示對(duì)近似測試用例的一個(gè)或多個(gè)輸入數(shù)據(jù)(通常是一個(gè))進(jìn)行修改,并視需要修改預(yù)期輸出,即可獲得可以覆蓋預(yù)期邏輯目標(biāo)的測試用例。修改提示的主要內(nèi)容是已滿足條件和待滿足條件,已滿足條件是近似

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論