軟件測(cè)試的基本技術(shù)_第1頁
軟件測(cè)試的基本技術(shù)_第2頁
軟件測(cè)試的基本技術(shù)_第3頁
軟件測(cè)試的基本技術(shù)_第4頁
軟件測(cè)試的基本技術(shù)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章軟件測(cè)試的基本技術(shù)軟件測(cè)試山西大學(xué)經(jīng)濟(jì)與管理學(xué)院

導(dǎo)讀軟件測(cè)試的方法有多種多樣,可以對(duì)其從不同角度加以分類。比如說:

可以從是否需要執(zhí)行被測(cè)試的軟件的角度

從是否對(duì)系統(tǒng)的外部功能還是系統(tǒng)的內(nèi)容結(jié)構(gòu)的角度

從軟件測(cè)試的策略和過程的角度

從不同的角度劃分,有不同的分類方式。這一章作為軟件測(cè)試的技術(shù),主要介紹了上述分類中的靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試、黑盒測(cè)試和白盒測(cè)試的技術(shù)。3.1軟件測(cè)試技術(shù)的分類3.1.1從是否需要執(zhí)行被測(cè)軟件的角度分類

從是否需要執(zhí)行被測(cè)試軟件的角度劃分,軟件測(cè)試可以分成動(dòng)態(tài)測(cè)試(DynamicTesting)和靜態(tài)測(cè)試(StaticTesting)兩類。

(1)靜態(tài)測(cè)試:就是通過對(duì)被測(cè)程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯(cuò)誤的測(cè)試。也成人工測(cè)試或者代碼評(píng)審。

(2)動(dòng)態(tài)測(cè)試:動(dòng)態(tài)測(cè)試是通常意義上的測(cè)試,即通過使用和運(yùn)行被測(cè)軟件,發(fā)現(xiàn)潛在錯(cuò)誤。動(dòng)態(tài)測(cè)試的對(duì)象必須是能夠由計(jì)算機(jī)真正運(yùn)行的被測(cè)試的程序。它又包括:黑盒測(cè)試和白盒測(cè)試。3.1軟件測(cè)試技術(shù)的分類3.1.2從軟件測(cè)試用例設(shè)計(jì)方法的角度分類

從軟件測(cè)試用例設(shè)計(jì)方法的角度進(jìn)行分類,軟件測(cè)試的技術(shù)分為黑盒測(cè)試(Black-boxTesting)和白盒測(cè)試(White-boxTesting)。

(1)黑盒測(cè)試:是一種從用戶角度出發(fā)的測(cè)試,又稱為功能測(cè)試或者數(shù)據(jù)驅(qū)動(dòng)測(cè)試、基于規(guī)格說明的測(cè)試等。簡(jiǎn)單地說,若測(cè)試用例的設(shè)計(jì)時(shí)基于產(chǎn)品的功能,目的是檢查程序各個(gè)功能是否實(shí)現(xiàn),并檢查其中的功能錯(cuò)誤,則這種測(cè)試方法稱為黑盒測(cè)試。

(2)白盒測(cè)試:基于產(chǎn)品的內(nèi)部結(jié)構(gòu)來進(jìn)行測(cè)試,檢查內(nèi)容操作是否按規(guī)定執(zhí)行,軟件各個(gè)功能部分是否得到充分應(yīng)用。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或者邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試。3.1軟件測(cè)試技術(shù)的分類3.1.3從軟件測(cè)試的策略和過程的角度分類

從軟件測(cè)試的策略和過程的角度進(jìn)行分類,軟件測(cè)試可分為單元測(cè)試(UnitTesting)、集成測(cè)試(IntegrationTesting)、確認(rèn)測(cè)試(ValidationTesting)、系統(tǒng)測(cè)試(SystemTesting)和驗(yàn)收測(cè)試(VerificationTesting)。

(1)單元測(cè)試:是針對(duì)每個(gè)單元的測(cè)試,是軟件測(cè)試的最小單位。

(2)集成測(cè)試:是對(duì)已測(cè)試過的模塊進(jìn)行組裝,對(duì)組裝以后的集成塊進(jìn)行測(cè)試。

(3)確認(rèn)測(cè)試:是檢驗(yàn)所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段。3.1軟件測(cè)試技術(shù)的分類3.1.3從軟件測(cè)試的策略和過程的角度分類

從軟件測(cè)試的策略和過程的角度進(jìn)行分類,軟件測(cè)試可分為單元測(cè)試(UnitTesting)、集成測(cè)試(IntegrationTesting)、確認(rèn)測(cè)試(ValidationTesting)、系統(tǒng)測(cè)試(SystemTesting)和驗(yàn)收測(cè)試(VerificationTesting)。

(4)系統(tǒng)測(cè)試:主要任務(wù)是檢測(cè)被測(cè)軟件與系統(tǒng)其他部分的協(xié)調(diào)性,通常采用黑盒測(cè)試的方法。

(5)驗(yàn)收測(cè)試:是軟件產(chǎn)品質(zhì)量額最后一關(guān),在這一環(huán)節(jié),測(cè)試主要從用戶的角度著手,參與者主要是用戶及少量的程序開發(fā)人員,通常采用的測(cè)試方法為黑盒測(cè)試。3.2靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.2.1靜態(tài)測(cè)試靜態(tài)測(cè)試就是通過對(duì)被測(cè)程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯(cuò)誤的測(cè)試,它和動(dòng)態(tài)測(cè)試的區(qū)別就是是否需要程序被運(yùn)行。

也就是說,在進(jìn)行測(cè)試的過程中,只要是不需要執(zhí)行代碼,就可以對(duì)軟件進(jìn)行測(cè)試的方法,可以看成是靜態(tài)測(cè)試方法。反之,需要對(duì)軟件執(zhí)行對(duì)應(yīng)代碼的測(cè)試方法則為動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試(汽車停止中)踩油門看車漆打開前蓋檢查動(dòng)態(tài)測(cè)試(發(fā)動(dòng)機(jī)運(yùn)行中)發(fā)動(dòng)汽車聽發(fā)動(dòng)機(jī)的聲音上路行駛圖3-1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試比喻圖3.2靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.2.1靜態(tài)測(cè)試靜態(tài)測(cè)試方法的主要特征是在測(cè)試源程序時(shí),計(jì)算機(jī)并不真正運(yùn)行被測(cè)試的程序,只對(duì)被測(cè)程序進(jìn)行特性分析,因此,靜態(tài)方法常稱為“分析”,靜態(tài)分析是對(duì)被測(cè)程序進(jìn)行特性分析的一些方法的總稱。

所謂靜態(tài)分析,就是不需要執(zhí)行所測(cè)試的程序,而只是通過掃描程序正文,對(duì)程序的數(shù)據(jù)流和控制流等信息進(jìn)行分析,找出系統(tǒng)的缺陷,得出測(cè)試報(bào)告的過程。

靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維又是,也可以借助軟件工具自動(dòng)進(jìn)行。3.2靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.2.1靜態(tài)測(cè)試通常在靜態(tài)測(cè)試階段進(jìn)行以下一些測(cè)試活動(dòng):

(1)檢查算法的邏輯正確性

(2)檢查模塊接口的正確性

(3)檢查輸入?yún)?shù)是否有合法性檢查

(4)檢查調(diào)用其他模塊的接口是否正確,檢查實(shí)參類型、實(shí)參個(gè)數(shù)是否正確,返回值是否正確

(5)檢查是否設(shè)置了適當(dāng)?shù)爻鲥e(cuò)處理

(6)檢查表達(dá)式、語句是否正確,是否含有二義性3.2靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.2.1靜態(tài)測(cè)試通常在靜態(tài)測(cè)試階段進(jìn)行以下一些測(cè)試活動(dòng):

(7)檢查常量或全局變量使用是否正確

(8)檢查標(biāo)識(shí)符的使用是否規(guī)范、一致,變量命名是否能做到忘名知意、簡(jiǎn)潔、規(guī)范和易記

(9)檢查程序風(fēng)格的一致性、規(guī)范性,代碼是否符合行業(yè)規(guī)范,是否所有模塊的代碼風(fēng)格一致、規(guī)范

(10)檢查代碼是否可以優(yōu)化,算法效率是否最高

(11)檢查代碼注釋是否完整,是否正確反映了代碼的功能,并查找錯(cuò)誤的注釋。3.2靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試3.2.2動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試是通常意義上的測(cè)試,即通過使用和運(yùn)行被測(cè)軟件,發(fā)現(xiàn)潛在錯(cuò)誤。動(dòng)態(tài)測(cè)試的對(duì)象必須是能夠由計(jì)算機(jī)真正運(yùn)行的被測(cè)試的程序。它是通過源程序運(yùn)行時(shí)所體現(xiàn)出來的特征,來進(jìn)行執(zhí)行跟蹤、時(shí)間分析以及測(cè)試覆蓋等方面的測(cè)試。

動(dòng)態(tài)測(cè)試方法的基本步驟如下:

(1)選取定義域的有效值,或選取定義域外的無效值。

(2)對(duì)已選取值決定預(yù)期的結(jié)果。

(3)用選取值執(zhí)行程序。

(4)將執(zhí)行結(jié)果與預(yù)期的結(jié)果進(jìn)行對(duì)比,不吻合則說明程序有誤。3.3黑盒測(cè)試方法3.3.1黑盒測(cè)試方法概述

黑盒測(cè)試是一種從用戶角度出發(fā)的測(cè)試,又稱為功能測(cè)試或者數(shù)據(jù)驅(qū)動(dòng)測(cè)試、基于規(guī)格說明的測(cè)試。黑盒測(cè)試的基本觀點(diǎn)是:任何程序都可以看做是從輸入定義域映射到輸出值域的函數(shù)過程。它將被測(cè)程序視為一個(gè)打不開的黑盒子,盒子中的內(nèi)容完全不知道,只知道盒子是要做成什么樣子的。

黑盒測(cè)試方法著重測(cè)試軟件的功能需求,是在程序接口上進(jìn)行測(cè)試主要是為了發(fā)現(xiàn)以下的錯(cuò)誤:

(1)是否有不正確的功能或者是遺漏的功能;

(2)接口能否正確地接收輸入數(shù)據(jù)并產(chǎn)生正確的輸出結(jié)果;3.3黑盒測(cè)試方法3.3.1黑盒測(cè)試方法概述黑盒測(cè)試方法著重測(cè)試軟件的功能需求,是在程序接口上進(jìn)行測(cè)試主要是為了發(fā)現(xiàn)以下的錯(cuò)誤:

(3)是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪問錯(cuò)誤;

(4)性能是否能夠滿足要求;

(5)是否有程序初始化和終止方面的錯(cuò)誤。3.3黑盒測(cè)試方法3.3.1黑盒測(cè)試方法概述黑盒測(cè)試有兩個(gè)顯著的特點(diǎn):

(1)黑盒測(cè)試不考慮軟件的具體實(shí)現(xiàn)過程,當(dāng)在軟件實(shí)現(xiàn)的過程發(fā)生變化時(shí),測(cè)試用例仍然可以使用;

(2)黑盒測(cè)試用例的設(shè)計(jì)可以喝軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開發(fā)時(shí)間。

黑盒測(cè)試有兩種基本方法,即通過測(cè)試和失敗測(cè)試。3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法(1)等價(jià)類劃分法概述

等價(jià)類劃分法是黑盒測(cè)試用例設(shè)計(jì)中一種常用的設(shè)計(jì)方法,它將不能窮舉的測(cè)試過程進(jìn)行合理分類,從而保證設(shè)計(jì)出來的測(cè)試用例具有完整性和代表性。

等價(jià)類劃分法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。

所謂等價(jià)類是指輸入域的某個(gè)子集合。所有等價(jià)類的并集就是整個(gè)輸入域。對(duì)揭露程序中的故障來說,等價(jià)類中的每個(gè)元素是等效的。

3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法(1)等價(jià)類劃分法概述軟件不能只接收合理有效的數(shù)據(jù),也要具有處理異常數(shù)據(jù)的功能,這樣的測(cè)試才能確保軟件具有更高的可靠性。因此,在劃分等價(jià)類的過程中,不但要考慮有效等價(jià)類劃分,同時(shí)也要考慮無效等價(jià)類的劃分。

有效等價(jià)類是指對(duì)軟件規(guī)格說明來說,合理、有意義的輸入數(shù)據(jù)所構(gòu)成的集合。

無效等價(jià)類則和有效等價(jià)類相反,即不滿足程序輸入要求,或者無效輸入的數(shù)據(jù)所構(gòu)成的集合。abcdefg3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法(1)等價(jià)類劃分法概述使用等價(jià)類劃分法,首先必須在分析需求規(guī)格說明的基礎(chǔ)上劃分等價(jià)類。

其次,建立等價(jià)類表,列出所有的等價(jià)類。

再次根據(jù)已列出的等價(jià)類表,按下述步驟確定測(cè)試用例:

(1)為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)

(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其能盡肯能多的覆蓋有效等價(jià)類

(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)無效等價(jià)類3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法等價(jià)類劃分測(cè)試舉例在三角形問題中,輸入條件要求:

整數(shù);三個(gè)數(shù);取值在1到100之間3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法等價(jià)類劃分測(cè)試舉例

輸入三個(gè)整數(shù)有效等價(jià)類號(hào)碼無效等價(jià)類號(hào)碼整數(shù)1一邊為非整數(shù)二邊為非整數(shù)三邊均為非整數(shù)456三個(gè)數(shù)2只有一條邊只有二條邊多余三條邊7893一邊為零二邊為零三邊為零101112一邊<零二邊<零三邊<零131415一邊>100二邊>100三邊>1001617183.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法三角形問題的無效等價(jià)類測(cè)試用例abc覆蓋的等價(jià)類abc覆蓋的等價(jià)類1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,0113.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法(2)常見等價(jià)劃分形式針對(duì)是否對(duì)無效數(shù)據(jù)進(jìn)行測(cè)試,可以將等價(jià)類測(cè)試分為以下幾種具體的形式:

標(biāo)準(zhǔn)等價(jià)類測(cè)試

健壯等價(jià)類測(cè)試

對(duì)等區(qū)間劃分3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法標(biāo)準(zhǔn)等價(jià)類和健壯等價(jià)類測(cè)試三角形問題有四種可能輸出:非三角形,一般三角形,等腰三角形和等邊三角形。利用這些信息來確定輸出(值域)等價(jià)類R1={<a,b,c>:邊為a,b,c的等邊三角形}R2={<a,b,c>:邊為a,b,c的等腰三角形}R3={<a,b,c>:邊為a,b,c的一般三角形}R4={<a,b,c>:邊a,b,c不能形成三角形}3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法四個(gè)標(biāo)準(zhǔn)等價(jià)類測(cè)試用例是:測(cè)試用例abc預(yù)期輸出Test1Test2Test3Test4523452415352等邊三角形等腰三角形一般三角形非三角形3.3黑盒測(cè)試方法3.3.2等價(jià)類劃分法考慮a,b,c的無效值產(chǎn)生了下面7個(gè)健壯等價(jià)類測(cè)試用例是:測(cè)試用例abc預(yù)期輸出Test1Test2Test3Test4Test5Test6Test73-1551015545-1551015555-155101一般三角形a值不在允許的范圍內(nèi)b值不在允許的范圍內(nèi)c值不在允許的范圍內(nèi)a值不在允許的范圍內(nèi)b值不在允許的范圍內(nèi)c

值不在允許的范圍內(nèi)3.3黑盒測(cè)試方法3.3.3等價(jià)類的指導(dǎo)方針如果執(zhí)行語言是強(qiáng)類型的,則沒有必要使用健壯等價(jià)類測(cè)試。如果錯(cuò)誤輸入檢查非常重要,則應(yīng)進(jìn)行健壯等價(jià)類測(cè)試。如果輸入數(shù)據(jù)以離散值區(qū)間或集合的形式定義,則等價(jià)類測(cè)試是合適的。在發(fā)現(xiàn)“合適”的等價(jià)關(guān)系之前,可能需要進(jìn)行多次嘗試。3.3黑盒測(cè)試方法3.3.3邊界值分析法(1)邊界值分析法

邊界值分析法是一種補(bǔ)充等價(jià)類劃分法的測(cè)試用例設(shè)計(jì)技術(shù),不同于等價(jià)類劃分法選擇等價(jià)類的任意元素,它選擇等價(jià)類的邊界來設(shè)計(jì)測(cè)試用例。使用邊界值分析方法設(shè)計(jì)測(cè)試用例時(shí),首先應(yīng)確定邊界情況。比如,在作三角形計(jì)算時(shí),要輸入三角形的三個(gè)邊長(zhǎng):a、b和a。當(dāng)滿足a+b>c、a+c>b及b+c>a才能構(gòu)成三角形。但如果把三個(gè)不等式的任何一個(gè)大于號(hào)“>”錯(cuò)寫成大于等于號(hào)“≥”,那就無法構(gòu)成三角形了。3.3黑盒測(cè)試方法3.3.3邊界值分析法

/*Createa10elementintegerarray*//*Initiatizeeachelementto–1*/main(){intdata[10];inti;For(i=1;10;i++)data(i)=-1;}

這段代碼的意圖是創(chuàng)建包含10個(gè)元素的數(shù)組,并為數(shù)組中的每一個(gè)元素賦初值-1,即數(shù)組中從第1個(gè)元素到第10個(gè)元素被賦予數(shù)值-1。3.3黑盒測(cè)試方法3.3.3邊界值分析法data(0)=0;data(1)=-1;data(2)=-1;data(3)=-1;data(4)=-1;data(5)=-1;data(6)=-1;data(7)=-1;data(8)=-1;data(9)=-1;data(10)=-1

data(0)的值是0,而不是-1。3.3黑盒測(cè)試方法3.3.3邊界值分析法(1)邊界值分析法在應(yīng)用邊界值分析法設(shè)計(jì)測(cè)試用例時(shí),應(yīng)遵循以下幾條原則:

1)如果輸入條件規(guī)定了值得范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界值以及剛剛超過這個(gè)范圍的邊界值。

2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小少1,比最大多1的數(shù)作為測(cè)試數(shù)據(jù)。3)如果程序的規(guī)格說明給出了輸入域或者輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素。4)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測(cè)試用例。3.3黑盒測(cè)試方法3.3.3邊界值分析法(2)邊界條件與次邊界條件邊界條件是基于應(yīng)用程序的功能設(shè)計(jì)需要考慮的因素,可以從軟件的規(guī)格說明或常識(shí)中得到,也是最終用戶通常最容易發(fā)現(xiàn)問題的部分。

次邊界條件是指在測(cè)試用例設(shè)計(jì)過程中,某些邊界條件是不需要呈現(xiàn)給用戶的,或者說用戶很難注意到這些問題,但這些邊界條件確實(shí)同時(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件,成為內(nèi)邊界條件或者次邊界條件。其主要有以下幾種:

1)數(shù)值的邊界檢驗(yàn)

2)字符的邊界檢驗(yàn)3.3黑盒測(cè)試方法3.3.3邊界值分析法(3)三角形問題的邊界值分析測(cè)試用例邊長(zhǎng)下界為1,邊長(zhǎng)上界可取為100。

測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形邊界值分析測(cè)試用例測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形邊界值分析測(cè)試用例測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形3.3黑盒測(cè)試方法3.3.4決策表法(1)決策表法簡(jiǎn)介

在所有的黑盒測(cè)試方法中,基于決策表的測(cè)試最為嚴(yán)格,最具有邏輯性。其主要有四個(gè)部分組成:

條件樁:列出了問題的所有條件

動(dòng)作樁:列出了問題規(guī)定的可能采取的操作

條件項(xiàng):針對(duì)條件樁給出的條件列出所有可能的取值。

動(dòng)作項(xiàng):與條件項(xiàng)金木相關(guān),列出了在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作。

任何一個(gè)條件組合的特定取值以及其要執(zhí)行的操作稱為一條規(guī)則。3.3黑盒測(cè)試方法3.3.4決策表法(1)決策表法簡(jiǎn)介

根據(jù)軟件規(guī)格說明,建立決策表的步驟如下:

1)確定規(guī)則的個(gè)數(shù)。

2)列出所有的條件樁和動(dòng)作樁。

3)填入條件項(xiàng)。

4)填入動(dòng)作像,得到初始決策表。

5)簡(jiǎn)化,合并相似的規(guī)則。3.3黑盒測(cè)試方法3.3.4決策表法在實(shí)際使用判定表時(shí),常常先將它簡(jiǎn)化。簡(jiǎn)化是以合并相似規(guī)則為目標(biāo)的。若表中有兩條或多條規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在著極為相似的關(guān)系,便可以設(shè)法將其合并。“不關(guān)心”條目(don’tcare)條件無關(guān)或條件不適用。3.3黑盒測(cè)試方法3.3.4決策表法(2)決策表法的應(yīng)用c3:a,b,c構(gòu)成一個(gè)三角形?c2:a=b?c3:a=c?c4:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能N---YYYY

三角問題的決策表YYYNYYNYYYNNYNYYYNYNYNNYYNNN合并相似規(guī)則后三角形問題的決策表如下:

3.3黑盒測(cè)試方法3.3.4決策表法(2)決策表法的應(yīng)用擴(kuò)展的三角問題的決策表c1:a<b+c?c2:b<a+c?c3:c<a+b?c4:a=b?c5:a=c?c6:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能F-----TF----TTF---TTTTTTTTTTTFTTTTFTTTTTFFTTTFTTTTTFTFTTTFFTTTTFFF3.3黑盒測(cè)試方法3.3.4決策表法(2)決策表法的應(yīng)用用例abc預(yù)期輸出test1412非三角形test2142非三角形test3124非三角形test4555等邊三角形test5???不可能test6???不可能test7223等腰三角形test8???不可能test9232等腰三角形test10322等腰三角形test11345一般三角形

三角形問題的決策表測(cè)試用例3.3黑盒測(cè)試方法3.3.4決策表法(3)決策表方法適用于以下應(yīng)用程序

if-then-else邏輯突出。輸入變量之間存在邏輯關(guān)系。涉及輸人變量子集的計(jì)算。輸入與輸出之間存在因果關(guān)系。3.3黑盒測(cè)試方法3.3.4決策表法(2)適合于使用決策表設(shè)計(jì)測(cè)試用例的情況有:

規(guī)格說明以決策表形式給出,或是容易轉(zhuǎn)換成決策表。

條件的排列順序不會(huì)也不應(yīng)影響執(zhí)行的操作。

規(guī)則的排列順序不會(huì)也不應(yīng)影響執(zhí)行的操作。

每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。

如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要。。3.3黑盒測(cè)試方法3.3.5因果圖法因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的一種方法。它適合檢查程序輸入條件的各種組合情況。因果圖的基本符號(hào)3.3黑盒測(cè)試方法3.3.5因果圖法因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的一種方法。它適合檢查程序輸入條件的各種組合情況。約束符號(hào)3.3黑盒測(cè)試方法3.3.5因果圖法

因果圖法的主要步驟如下:

(1)分析軟件規(guī)格說明書中的輸入條件和輸出條件,并且分析出等價(jià)類。

(2)將對(duì)應(yīng)的輸入與輸入之間、輸入與輸出之間的關(guān)系連接起來,并且將其中不可能的組合情況標(biāo)注成約束或者限制條件,形成因果圖。

(3)將因果圖轉(zhuǎn)換為決策表。

(4)將決策表的每一列作為依據(jù),設(shè)計(jì)測(cè)試用例。3.3黑盒測(cè)試方法3.3.5因果圖法分析關(guān)聯(lián)轉(zhuǎn)換輸出根據(jù)組合間的關(guān)聯(lián)與約束,形成因果圖由因果圖轉(zhuǎn)換為判定表由判定表導(dǎo)出測(cè)試用例分析輸入、輸出數(shù)據(jù)之間的關(guān)系3.3黑盒測(cè)試方法3.3.5因果圖法軟件需求規(guī)格說明如下:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。步驟一:分析程序規(guī)格說明書,識(shí)別哪些是原因,哪些是結(jié)果,原因往往是輸入條件或者輸入條件的等價(jià)類,而結(jié)果常常是輸出條件。如下所示:

3.3黑盒測(cè)試方法3.3.5因果圖法原因:

1--第一列字符是A;

2--第一列字符是B;

3--第二列字符是一數(shù)字。結(jié)果:

21--修改文件;

22--給出信息L;

23--給出信息M。3.3黑盒測(cè)試方法3.3.5因果圖法

步驟三:狀態(tài)1和狀態(tài)2不能同時(shí)為1,輸入3個(gè)狀態(tài)只有6種取值123456原因111000020011003101010結(jié)果210000112210100023010101測(cè)試用例A3A5AMA7B5B4BNB!C2X6DYP;3.3黑盒測(cè)試方法3.3.6黑盒測(cè)試方法的選擇(1)黑盒測(cè)試方法的優(yōu)缺點(diǎn)

黑盒測(cè)試方法的優(yōu)點(diǎn):

適用于各個(gè)測(cè)試階段;

從產(chǎn)品功能角度進(jìn)行測(cè)試;

容易入手生成測(cè)試數(shù)據(jù)。

黑盒測(cè)試的缺點(diǎn):

某些代碼得不到測(cè)試;

如果規(guī)則說明有誤,無法發(fā)現(xiàn);

不易充分進(jìn)行測(cè)試。3.3黑盒測(cè)試方法3.3.6黑盒測(cè)試方法的選擇(2)各種黑盒測(cè)試方法的選擇

在確定黑盒測(cè)試時(shí),應(yīng)該遵循如下的原則:

1)根據(jù)程序的重要性和一旦發(fā)生故障將造成的損失程度來確定測(cè)試等級(jí)和測(cè)試重點(diǎn)。

2)認(rèn)真選擇測(cè)試策略,以便能盡可能少地使用測(cè)試用例

3)進(jìn)行等價(jià)劃分

4)在任何情況下都必須使用邊界值法

5)檢查測(cè)試用例的覆蓋程度,如果缺少要及時(shí)補(bǔ)充

6)如果程序中含有輸入條件組合情況,則應(yīng)一開始就選用因果圖法3.4白盒測(cè)試方法白盒測(cè)試指測(cè)試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程,而不測(cè)試軟件產(chǎn)品的功能,用于糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯(cuò)誤,是進(jìn)一步測(cè)試的前提,也稱作結(jié)構(gòu)測(cè)試或者邏輯驅(qū)動(dòng)測(cè)試。

白盒子測(cè)試分靜態(tài)和動(dòng)態(tài)兩種:靜態(tài)白盒測(cè)試是在不執(zhí)行的條件下有條理地仔細(xì)審查軟件設(shè)計(jì)、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過程,有時(shí)也稱為結(jié)構(gòu)分析。動(dòng)態(tài)白盒測(cè)試也稱結(jié)構(gòu)化測(cè)試,通過查看并使用代碼的內(nèi)部結(jié)構(gòu),設(shè)計(jì)和執(zhí)行測(cè)試。

白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等,它主要用于對(duì)軟件的驗(yàn)證測(cè)試。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試邏輯覆蓋是一種使用最廣泛的結(jié)構(gòu)測(cè)試方法。邏輯覆蓋以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)設(shè)計(jì)測(cè)試用例,要求對(duì)被測(cè)程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細(xì)節(jié)。由于覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋及路徑覆蓋。3.4白盒測(cè)試方法下面的一小段程序來討論。

if((age>25)AND(sex=M))thencommission=commission+150;endifif(age>=50OR(commission>2000.0))thencommission=commission-200;

endif3個(gè)變量為:年齡age、性別sex、傭金commission3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(1)語句覆蓋語句覆蓋要求設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使程序中的每個(gè)可執(zhí)行語句至少被執(zhí)行一次。這里所謂“若干”,自然是越少越好。Test1:age=50,sex=M,comm=2500作為測(cè)試用例,則程序按路徑ace執(zhí)行。這樣該程序段的4個(gè)語句都得到執(zhí)行,從而作到了語句覆蓋。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(1)語句覆蓋

Test2:age=50,sex=F,comm=2500程序則按abe執(zhí)行,沒有達(dá)到語句覆蓋。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(1)語句覆蓋

Test2:age=50,sex=F,comm=2500程序則按abe執(zhí)行,沒有達(dá)到語句覆蓋。從程序中每個(gè)語句都得到執(zhí)行這一點(diǎn)來看,語句覆蓋的方法似乎能夠比較全面地檢驗(yàn)被測(cè)程序的每一個(gè)語句。但語句覆蓋是很弱的邏輯覆蓋準(zhǔn)則。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(2)判斷覆蓋判斷覆蓋是指涉及若干測(cè)試用例,執(zhí)行被測(cè)試程序時(shí),使程序中每個(gè)判斷條件的真值分支和假值分支至少執(zhí)行以便。在保證完成要求的情況下,測(cè)試用例的數(shù)目同樣越少越好,判斷覆蓋又稱為分支覆蓋。若選用兩組測(cè)試用例:Test1:age=50,sex=M,comm.=2500Test3:age=20,sex=M,comm.=1500則分別執(zhí)行路徑ace和abd,從而使兩個(gè)判斷的4個(gè)分支c,e和b,d分別得到檢測(cè)。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(2)判斷覆蓋若選用另外兩組測(cè)試用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900

則分別路徑acd及abe,同樣也可覆蓋4個(gè)分支。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(2)判斷覆蓋若選用另外兩組測(cè)試用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900

則分別路徑acd及abe,同樣也可覆蓋4個(gè)分支。上述兩組測(cè)試用例不僅滿足判定覆蓋,同時(shí)還滿足語句覆蓋。判定覆蓋比語句覆蓋更強(qiáng)一些。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(2)判斷覆蓋但需要注意的是判斷覆蓋只作到判定覆蓋仍無法確定判斷內(nèi)部條件的錯(cuò)誤。如果在此程序段中第2個(gè)判斷條件comm>2000錯(cuò)寫成comm<2000,使用上述測(cè)試用例Test5,age=50,sex=F,comm=1900照樣能按原路徑執(zhí)行(abe),不影響結(jié)果。但無法判定內(nèi)部條件。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(2)判斷覆蓋但需要注意的是判斷覆蓋只作到判定覆蓋仍無法確定判斷內(nèi)部條件的錯(cuò)誤。如果在此程序段中第2個(gè)判斷條件comm>2000錯(cuò)寫成comm<2000,使用上述測(cè)試用例Test5,age=50,sex=F,comm=1900照樣能按原路徑執(zhí)行(abe),不影響結(jié)果。但無法判定內(nèi)部條件。a、b、c、d和e為控制流上程序點(diǎn)。3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(3)條件覆蓋條件覆蓋要求設(shè)計(jì)若干測(cè)試用例,執(zhí)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少被執(zhí)行一次。a、b、c、d和e為控制流上程序點(diǎn)。第一個(gè)判斷應(yīng)考慮到:age>25取真值,記為T1age>25取假值,即age≤25,記為sex=M取真值,記為T2:sex=M取假值,即sex=F,記為第2個(gè)判斷應(yīng)考慮到;Age>=50取真值,記為T3Age>=50取假值,即age<50,記為comm.>2000取真值,記為T4comm.>2000取假值,記為

3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(3)條件覆蓋

3個(gè)測(cè)試用例覆蓋了4個(gè)條件的8種情況。覆蓋了兩個(gè)判斷的4個(gè)分支b、c、d和c。覆蓋了條件的測(cè)試用例不一定覆蓋了分支。例如下面的測(cè)試用例它只覆蓋了4個(gè)分支中的兩個(gè)。

測(cè)試用例

agesexcomm

所走路徑

覆蓋條件

Test1

Test3

Test550

M2500.0

20M1500.0

50F1900.0

ace

abd

abe

T1T2T3T4

1T

T23T

4T

T12T

T34T

測(cè)試用例

agesexcomm

所走路徑

覆蓋分支

覆蓋條件

Test6Test7

20M2100.0

50F1500.0

abe

abe

be

be

1T

T23T

T4

T12T

T34T

3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(4)判定/條件覆蓋判定/條件覆蓋要求設(shè)計(jì)足夠的測(cè)試用例,執(zhí)行被測(cè)程序,使得判斷中每個(gè)條件的所有可能取值至少被執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(jié)果也至少被執(zhí)行一次。a、b、c、d和e為控制流上程序點(diǎn)。兩個(gè)判斷各包含兩個(gè)條件,這4個(gè)條件在兩個(gè)判斷中可能有8種組合,它們是:1)age>25,sex=M,記為T1,T22)age>25,sex=F,記為T1,3)age≤25,sex=M,記為,T24)age≤25,sex=F,記為,5)age50,comm>2000.0,記為T3,T46)age50,comm≤2000.0記為T3,7)age<50,comm>2000.0,記為,T48)age<50,comm≤2000.0,記為3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(4)判定/條件覆蓋

4個(gè)測(cè)試用例覆蓋了所有的條件組合,同時(shí)也覆蓋了4個(gè)分支,但只覆蓋了3條路徑,漏掉了路徑acd。

測(cè)試用例

agesexcomm

所走路徑

覆蓋組合

覆蓋條件

Test1

Test6

Test7

Test8

50M2500

20M2000.0

50F1500.0

20M1500

ace

abe

abe

abd

4)8)

T1,T2,T3,T4

1T

T23T

T4

T12T

T34T

1T

2T

3T

4T

3)7)1)5)2)6)3.4白盒測(cè)試方法3.4.1邏輯覆蓋測(cè)試(4)判定/條件覆蓋

4個(gè)測(cè)試用例覆蓋了所有的條件組合,同時(shí)也覆蓋了4個(gè)分支,但只覆蓋了3條路徑,漏掉了路徑acd。

測(cè)試用例

agesexcomm

所走路徑

覆蓋組合

覆蓋條件

Test1

Test6

Test7

Test8

50M2500

20M2000.0

50F1500

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論