第4章黑盒測(cè)試_第1頁
第4章黑盒測(cè)試_第2頁
第4章黑盒測(cè)試_第3頁
第4章黑盒測(cè)試_第4頁
第4章黑盒測(cè)試_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章黑盒測(cè)試本章學(xué)習(xí)目標(biāo)了解黑盒測(cè)試的基本概念、依據(jù)及流程理解黑盒測(cè)試各種測(cè)試方法和技巧熟練掌握墨盒測(cè)試主要方法的使用4.1黑盒測(cè)試基本概念

黑盒測(cè)試又稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。由于此方法不需要了解程序的內(nèi)部邏輯結(jié)構(gòu)和內(nèi)部特性,將被測(cè)試程序視為一個(gè)不能打開的黑盒子;而是注重于程序的外部結(jié)構(gòu),主要對(duì)軟件功能要求、軟件界面、外部數(shù)據(jù)庫訪問及軟件初始化等方面進(jìn)行測(cè)試。測(cè)試者只要從程序接口處進(jìn)行測(cè)試,以程序需求說明為測(cè)試依據(jù),測(cè)試程序是否滿足用戶的需求,因此是從用戶觀點(diǎn)出發(fā)的測(cè)試。黑盒測(cè)試主要發(fā)現(xiàn)的錯(cuò)誤類型有:(1)檢測(cè)功能是否有遺漏;(2)檢測(cè)性能是否滿足要求;(3)檢測(cè)人機(jī)交互是否有錯(cuò)誤;(4)檢測(cè)界面是否有錯(cuò)誤;(5)檢測(cè)數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問是否有錯(cuò)誤;(6)檢測(cè)接收數(shù)據(jù)和結(jié)果輸出是否錯(cuò)誤;(7)檢測(cè)程序初始化和終止方面是否有錯(cuò)誤。4.2黑盒測(cè)試方法

根據(jù)一些相關(guān)條件和方法對(duì)較典型的測(cè)試用例進(jìn)行測(cè)試,來發(fā)現(xiàn)軟件中存在的缺陷?,F(xiàn)在大多數(shù)測(cè)試生成方法,都是通過選取軟件輸入域的一個(gè)子集作為測(cè)試集來測(cè)試軟件的。

黑盒測(cè)試常用的方法和技術(shù)有:等價(jià)類劃分法、邊界值分析法、決策表法、因果圖法等。下面就這些常用的方法進(jìn)行詳細(xì)的介紹。4.2.1等價(jià)類劃分法

等價(jià)類劃分法是根據(jù)程序規(guī)格說明書對(duì)輸入范圍進(jìn)行劃分,將所有可能的輸入數(shù)據(jù)按相關(guān)的規(guī)定劃分成若干不相交的子集。所有子集的并集是整個(gè)輸入域。其中,子集的互不相交保證子集中無冗余性,子集的并集是整個(gè)輸入域,確定了所有子集的完備性。1、缺陷的定位

一個(gè)軟件的全部輸入的集合可以至少分為兩個(gè)子集:一個(gè)包含所有正常和合法的輸入;另一個(gè)包含所有異常和非法的輸入。對(duì)于這兩個(gè)子集又可以進(jìn)一步劃分為若干子集,以便軟件針對(duì)不同的子集,其運(yùn)行的結(jié)果不同。

等價(jià)類劃分方法就是要從這兩個(gè)集合或其子集中選擇適當(dāng)?shù)妮斎胱鳛闇y(cè)試用例,以便發(fā)現(xiàn)軟件中存在的缺陷。2、等價(jià)類的劃分

等價(jià)類劃分的原則是用同一等價(jià)類中的任意輸入對(duì)軟件進(jìn)行測(cè)試,軟件都輸出的相同的結(jié)果。全部等價(jià)類的測(cè)試用例就構(gòu)成了完整的測(cè)試用例集。

對(duì)于同一輸入域進(jìn)行等價(jià)類劃分,其結(jié)果可能不唯一的。因此,利用等價(jià)類劃分的方法產(chǎn)生的測(cè)試用例集也可能不同。所以測(cè)試用例集的故障檢測(cè)效率往往取決于測(cè)試人員的測(cè)試設(shè)計(jì)的經(jīng)驗(yàn)、對(duì)軟件需求的熟悉程序等。(1)劃分等價(jià)類

在劃分等價(jià)類時(shí),分為有效等價(jià)類和無效等價(jià)類。

有效等價(jià)類是指符合程序規(guī)格說明書,有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合。有效等價(jià)類可以是一個(gè),也可以是多個(gè)。利用有效等價(jià)類,可以檢查軟件功能和性能是否符合規(guī)格說明書中的要求。

無效等價(jià)類是指不符合程序規(guī)格說明書、不合理或無意義的輸入數(shù)據(jù)所構(gòu)成的集合??梢允且粋€(gè),也可以是多個(gè)。利用無效等價(jià)類,可以檢查軟件功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說明書的地方。(2)常用的等價(jià)類劃分原則①變量的等價(jià)類劃分

取值范圍:如果輸入條件規(guī)定了一個(gè)取值范圍或值的個(gè)數(shù),則可以定義一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。

字符串:至少分為一個(gè)包含所有合法字符串的有效等價(jià)類和一個(gè)包含所有非法字符串的無效等價(jià)類。

枚舉變量:每個(gè)取值對(duì)應(yīng)一個(gè)有效等價(jià)。針對(duì)枚舉類型,對(duì)于某些特定的取值范圍,有可能無法確定非法測(cè)試輸入值。對(duì)于布爾變量,只有兩個(gè)合法取值(真值與假值)。

數(shù)組:數(shù)組是一組具有相同類型的元素的集合,數(shù)組的長(zhǎng)度及其類型都可作為等價(jià)類劃分的依據(jù)??蓜澐譃橐粋€(gè)包含所有數(shù)組的有效等價(jià)類,一個(gè)空數(shù)組無效等價(jià)類,以及一個(gè)包含所有大于期望長(zhǎng)度數(shù)組的無效等價(jià)類。

復(fù)合數(shù)據(jù)類型:復(fù)合數(shù)據(jù)類型是指包含兩個(gè)或兩個(gè)以上的相互獨(dú)立的屬性的輸入數(shù)據(jù)。當(dāng)對(duì)軟件的一個(gè)組件模塊(函數(shù)或?qū)ο螅┻M(jìn)行測(cè)試時(shí),將使用這種輸入類型。對(duì)這種復(fù)合數(shù)據(jù)類型的輸入進(jìn)行等價(jià)類劃分時(shí),需要考慮輸入數(shù)據(jù)的每個(gè)屬性的合法與非法取值。②關(guān)系與等價(jià)類劃分在集合論中,關(guān)系指的是一個(gè)n元組的集合。

如果規(guī)定了輸入值的集合,或者規(guī)定了“必須如何”的條件,則可以定義一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ煌斎胫底霾煌幚?,則可以定義若干有效等價(jià)類(每個(gè)值一個(gè)有效等價(jià)類)和一個(gè)無效等價(jià)類。

如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以定義一個(gè)有效等價(jià)類(符合規(guī)則)和若干無效等價(jià)類(從不同角度違反規(guī)則)。③一元化分與多元化分

一元化等價(jià)類劃分:每次只考慮一個(gè)輸入變量,這樣,每個(gè)輸入變量形成了對(duì)輸入域的一個(gè)劃分,稱為一元等價(jià)類劃分,簡(jiǎn)稱一無化分。程序有多少個(gè)變量,就有多少種劃分,每個(gè)劃分包含兩個(gè)或兩個(gè)以上的等價(jià)類。

多元?jiǎng)澐郑簩⑺休斎胱兞康牡芽▋悍e作為程序的輸入域,稱為多元等價(jià)類劃分,簡(jiǎn)稱多元化分。此方法只產(chǎn)生一個(gè)劃分,劃分包含若干個(gè)等價(jià)類。測(cè)試用例的選擇常使用一元化分,因?yàn)橐辉州^為簡(jiǎn)單且可量測(cè)。而多元化分所產(chǎn)生的等價(jià)類數(shù)量較大,并且其中有許多是無用的。(3)劃分等價(jià)類的步驟確定輸入域:分析需求并確定所有的輸入、輸出量,以及變量類型和變量使用條件。等價(jià)類劃分:將每個(gè)變量的取值集合劃分為互不相交的子集,每個(gè)子集對(duì)應(yīng)一個(gè)等價(jià)類,所有的等價(jià)類就構(gòu)成了對(duì)輸入域的一個(gè)劃分。組合等價(jià)類:使用多元化方法,可以將等價(jià)類組合起來。確定不可測(cè)的等價(jià)類:有些輸入數(shù)據(jù)組合在實(shí)際測(cè)試過程中是無法生成的,包含這種數(shù)據(jù)的等價(jià)類就是不可測(cè)試等價(jià)類。不可測(cè)試數(shù)據(jù)指無法輸入到被測(cè)軟件中的那些數(shù)據(jù)組合。(4)等價(jià)類的測(cè)試步驟①劃分等價(jià)類,形成等價(jià)類表;②為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào);③設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡量多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止。④設(shè)計(jì)一個(gè)新的測(cè)試用例。使其覆蓋一個(gè)而且只覆蓋一個(gè)無效等價(jià)類,重復(fù)這一步,直到所有無效等價(jià)類均被覆蓋為止。3、基于等價(jià)類的測(cè)試用例設(shè)計(jì)例4-1對(duì)熱水器溫控軟件劃分等價(jià)類并設(shè)計(jì)測(cè)試用例。溫控軟件的需求如下:

熱水器控制系統(tǒng)簡(jiǎn)稱BCS,BCS的溫控軟件簡(jiǎn)稱CS。它提供若干選項(xiàng)。供操作員使用的控制選項(xiàng)C包括三個(gè)控制命令(cmd):溫度控制命令(temp)、系統(tǒng)關(guān)閉命令(shut)、請(qǐng)求取消命令(cancel)。命令temp要求操作員輸入溫度調(diào)節(jié)數(shù)值tempch,其范圍為[-10,10],以5攝氏度遞增,不能為0。

當(dāng)操作員選擇了控制選項(xiàng)C時(shí),BCS將對(duì)V進(jìn)行檢查,若V為GUI,則操作員通過GUI選擇控制命令(cmd)之一執(zhí)行;若V為file,則BCS通過一命令文件獲取命令執(zhí)行。

命令文件包含一條控制命令(cmd),當(dāng)控制命令為temp時(shí),則命令文件同時(shí)包含溫度調(diào)節(jié)數(shù)值tempch。變量F表示命令文件名,BCS中另一個(gè)特定模塊負(fù)責(zé)V和F取值的選取。

溫控軟件依據(jù)temp、shut命令,產(chǎn)生相應(yīng)的控制信號(hào)并將其發(fā)送至熱水加熱系統(tǒng)。見圖4-1所示。圖4-1溫控軟件的示意圖其中:V和F是環(huán)境變量,V用于確定命令(cmd)和溫度調(diào)節(jié)數(shù)值(tempch)的輸入方式,包括GUI方式或命令文件方式。F指的是命令文件名。

假設(shè)在仿真環(huán)境下對(duì)溫控軟件實(shí)施測(cè)試,測(cè)試人員充當(dāng)系統(tǒng)操作員并通過GUI實(shí)現(xiàn)與CS的交互,GUI使得測(cè)試人員只能從需求規(guī)定的有限取值集合中進(jìn)行選取。由上需求可知,temp的有效值只能是-10,-5,5,10。步驟1:確定輸入域。

首先檢查需求,確定輸入變量、變量類型及其相應(yīng)取值,如下表4-1所示。變量種類類型取值V環(huán)境變量枚舉[GUI,file]F環(huán)境變量字符串文件名cmdGUI或文件方式輸入枚舉[temp,cancel,shut]tempchGUI或文件方式輸入枚舉[-10,-5,5,10]表4-1CS的變量及其相關(guān)內(nèi)容步驟2:等價(jià)類劃分。各變量所對(duì)應(yīng)的等價(jià)類如下表4-2所示。變量有效等價(jià)類無效等價(jià)類V[GUI[,[file]V未被定義F有效文件名集合無效文件名集合cmd[temp],[cancel],[shut]無效命令集合tempch[-10],[-5],[5],[10]無效的tempch取值集合表4-2CS變量的等價(jià)類劃分步驟3:組合等價(jià)類。

由表4-2中可知,變量V,F(xiàn),cmd,tempch代表的集合分別補(bǔ)劃分成3個(gè)、2個(gè)、4個(gè)、5個(gè)子集,因此這4個(gè)變量共形成3×2×4×5=120個(gè)等價(jià)類,其中有些是不可測(cè)等價(jià)類。步驟4:剔除不可測(cè)等價(jià)類。

只有當(dāng)操作員選擇

temp命令時(shí)(即cmd為temp)時(shí),才能實(shí)現(xiàn)對(duì)熱水器的溫度調(diào)節(jié),因此,符合下面模板的等價(jià)類都是不可測(cè)的:{(V,F,{cancel}∪{shut}∪{無效命令},{-10}∪{-5}∪{5}∪{10}∪{無效的tempch取值})}18個(gè)可測(cè)等價(jià)類可由下面7個(gè)模板表示。其中符號(hào)“_”表示在測(cè)試過程中需要輸入但并不起任何實(shí)際作用的數(shù)據(jù)?!癗A”表示由于軟件GUI的限制,而無法實(shí)際輸入的數(shù)據(jù)。等價(jià)類編號(hào)模板等價(jià)類數(shù)量E1{(GUI,有效文件名,temp,有效temp取值(4個(gè)))}4個(gè)E2{(GUI,無有效文件名,temp,有效temp取值(4個(gè)))}4個(gè)E3{(GUI,_,cancel,NA)}2個(gè)E4{(file,有效文件名,temp,有效的temp取值∪無效的temp取值)}5個(gè)E5{(file,有效文件名,shut,NA)}1個(gè)E6{(file,有效文件名,NA,NA)}1個(gè)E7{(未被定義,NA,NA,NA)}1個(gè)表4-3CS可測(cè)等價(jià)類表步驟5:根據(jù)可測(cè)等價(jià)類設(shè)計(jì)測(cè)試用例。根據(jù)表4-3設(shè)計(jì)測(cè)試用例見表4-4所示。測(cè)試用例編號(hào)測(cè)試用例等價(jià)類編號(hào)VFcmdtempchTest1GUI有效文件名temp-10E1Test2GUI有效文件名temp-5E1Test3GUI有效文件名temp5E1Test4GUI有效文件名temp10E1Test5GUI無效文件名temp-10E2Test6GUI無效文件名temp-5E2Test7GUI無效文件名temp5E2Test8GUI無效文件名temp10E2Test9GUI有效文件名cancel-5E3Test10GUI無效文件名cancel-5E3Test11file有效文件名temp-10E4Test12file有效文件名temp-5E4Test13file有效文件名temp5E4Test14file有效文件名temp10E4Test15file有效文件名temp20E4Test16file有效文件名shut10E5Test17file無效文件名shut10E6Test18未被定義無效文件名shut10E7表4-4CS測(cè)試用例例4-2三角形問題的等價(jià)類測(cè)試。輸入三個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷由這3條邊構(gòu)成的三條邊類型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能夠成一個(gè)三角形)。假定3個(gè)輸入a、b和c在1~100之間取值,三角形問題可以更詳細(xì)地描述為:輸入3個(gè)整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿足以下條件。

c1:1≤a≤100 c2:1≤b≤100 c3:1≤c≤100 c4:a<b+c c5:b<a+c c6:c<a+b輸出下列4種情況之一:①如果不滿足條件c4、c5和c6中的一個(gè),則程序輸出為“非三角形”。②如果3條邊相等,則程序輸出為“等邊三角形”。③如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。④如果3條邊都不相等,則程序輸出為“一般三角形”。顯然,這4種情況相互排斥。從輸入域進(jìn)行分類,可以得到表4-5所示的三角形輸入域的等價(jià)類表。編號(hào)輸入條件(a,b,c)有效等價(jià)類無效等價(jià)類E11≤a,b,c≤100的整數(shù)是E21≤a,b,c≤100,且其中一邊為小數(shù)是E31≤a,b,c≤100,且其中二邊為小數(shù)是E41≤a,b,c≤100,且其中三邊為小數(shù)是E5其中一邊小于1是E6其中二邊小于1是E7其中三邊小于1是E8其中一邊大于100是E9其中二邊大于100是E10其中三邊大于100是E11只輸入一個(gè)數(shù)是E12只輸入二個(gè)數(shù)是E13輸入三個(gè)以上的數(shù)是 E 14輸入非數(shù)值型的數(shù)據(jù)是表4-5三角形問題輸入域的等價(jià)類對(duì)于上表4-5中的等價(jià)類設(shè)計(jì)測(cè)試用例,見表4-6所示。測(cè)試用例編號(hào)輸入數(shù)期望輸出對(duì)應(yīng)等價(jià)類abcTest1567一般三角形E1Test22.567請(qǐng)輸入1-100的三個(gè)整數(shù)E2Test32.53.57請(qǐng)輸入1-100的三個(gè)整數(shù)E3Test42.53.54.5請(qǐng)輸入1-100的三個(gè)整數(shù)E4Test5067請(qǐng)輸入1-100的三個(gè)整數(shù)E5Test60-17請(qǐng)輸入1-100的三個(gè)整數(shù)E6Test70-10請(qǐng)輸入1-100的三個(gè)整數(shù)E7Test810167請(qǐng)輸入1-100的三個(gè)整數(shù)E8Test91011027請(qǐng)輸入1-100的三個(gè)整數(shù)E9Test10101102103請(qǐng)輸入1-100的三個(gè)整數(shù)E10Test115請(qǐng)輸入1-100的三個(gè)整數(shù)E11Test1256請(qǐng)輸入1-100的三個(gè)整數(shù)E12Test13567,8請(qǐng)輸入1-100的三個(gè)整數(shù)E13Test14#m)請(qǐng)輸入1-100的三個(gè)整數(shù)E14表4-6三角形問題輸入域?qū)?yīng)的測(cè)試用例若從輸出域來對(duì)等價(jià)類進(jìn)行劃分,見表4-7所示。編號(hào)輸入條件(a,b,c)有效等價(jià)類無效等價(jià)類E151≤a,b,c≤100,且三個(gè)相同的整數(shù)是E161≤a,b,c≤100,且二個(gè)相同的整數(shù)是E171≤a,b,c≤100,且三個(gè)不相同的整數(shù)是E18任一邊數(shù)大于其它二邊數(shù)之和的整數(shù)是表4-7三角形問題輸出域的等價(jià)類對(duì)表4-7中的等價(jià)類設(shè)計(jì)測(cè)試用例,見表4-8所示。測(cè)試用例編號(hào)輸入數(shù)期望輸出對(duì)應(yīng)等價(jià)類abcTest15666等邊三角形E15Test16665等腰三角形E16Test17345一般三角形E17Test18412非三角形E18表4-8三角形問題輸出域?qū)?yīng)的測(cè)試用例4.2.2邊界值分析法1、邊界值分析方法概述

邊界值分析法主要從數(shù)據(jù)的定義域的邊界數(shù)據(jù)進(jìn)行分析,對(duì)于合法與不合法的邊界數(shù)據(jù)進(jìn)行選取和測(cè)試。用來檢查用戶輸入的信息、返回的結(jié)果以及中間計(jì)算結(jié)果是否正確。2、邊界值的獲取及測(cè)試用例的設(shè)計(jì)

測(cè)試時(shí)輸入變量取值:最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max)。

對(duì)于一個(gè)含有n個(gè)變量的程序,保留其中一個(gè)變量,讓其余的變量取正常值,被保留的變量依次取最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max),對(duì)每一個(gè)變量都重復(fù)進(jìn)行。因此,對(duì)于一個(gè)有n個(gè)變量的程序,邊界值分析測(cè)試程序就有4n+1個(gè)測(cè)試用例。

測(cè)試所包含的邊界值常見的類型有:數(shù)值、字符、位置、大小、尺寸、空間等。邊界值的獲取及生成測(cè)試用例的步驟:(1)使用一元?jiǎng)澐址椒▌澐州斎胗颉4藭r(shí),有多少個(gè)輸入變量就形成多少種劃分。(2)為每種劃分確定邊界,也可利用輸入變量之間的特定關(guān)系確定邊界。(3)設(shè)計(jì)測(cè)試用例,確保每個(gè)邊界至少出現(xiàn)在一個(gè)測(cè)試輸入數(shù)據(jù)中。3、健壯性的測(cè)試

健壯性測(cè)試是邊界分析測(cè)試的一種擴(kuò)展,除了取上面已述的五種邊界值外,還要考慮超出范圍的值,即比最小值要小(min-)、比最大值要大(max+)的取值。對(duì)于一個(gè)含有n個(gè)變量的程序而言,同樣,保留一個(gè)變量,讓其余變量取正常值,這個(gè)保留的變量依次取七個(gè)值(min-、min、min+、nom、max-、max、max+),每個(gè)變量重復(fù)進(jìn)行,則健壯性測(cè)試的用例將產(chǎn)生6n+1個(gè)測(cè)試用例。4、邊界分析法的測(cè)試用例例4-3考慮函數(shù)findprice,它有兩個(gè)整型輸入變量,分別為code和qty,其中code表示商品的編碼,qty表示采購數(shù)量。當(dāng)函數(shù)findprice訪問數(shù)據(jù)庫,查詢并顯示code編碼所對(duì)應(yīng)的產(chǎn)品的單價(jià)、描述信息以及總的采購價(jià)格。當(dāng)code和qty中任意一個(gè)為非法輸入時(shí),函數(shù)findprice顯示一條錯(cuò)誤提示信息并返回。假設(shè)編碼code的有效區(qū)間為[99,999],數(shù)量qty的有效輸入?yún)^(qū)間為[1,100]。首先,為兩個(gè)輸入變量創(chuàng)建等價(jià)類。由上假設(shè)的區(qū)間可知有如下等價(jià)類,見表4-9所示。變量變量取值等價(jià)類編號(hào)備注code小于99E1無效等價(jià)類[99,999]E2有效等價(jià)類大于999E3無效等價(jià)類qty小于1E4無效等價(jià)類[1,100]E5有效等價(jià)類大于100E6無效等價(jià)類表4-9函數(shù)findprice的兩變量的等價(jià)類表根據(jù)相關(guān)邊界值來設(shè)計(jì)測(cè)試用例。見表4-10所示。測(cè)試用例編號(hào)變量code變量qty預(yù)期輸出Test12000錯(cuò)誤提示信息Test22001相關(guān)單價(jià)等信息Test32002相關(guān)單價(jià)等信息Test420050相關(guān)單價(jià)等信息Test520099相關(guān)單價(jià)等信息Test6200100相關(guān)單價(jià)等信息Test7200101錯(cuò)誤提示信息Test89850錯(cuò)誤提示信息Test99950相關(guān)單價(jià)等信息Test1010050相關(guān)單價(jià)等信息Test1199850相關(guān)單價(jià)等信息Test1299950相關(guān)單價(jià)等信息Test13100050錯(cuò)誤提示信息表4-10函數(shù)findprice的健壯性邊界值分析測(cè)試用例例4-4對(duì)于例4-2三角形問題采用邊界值分析法,設(shè)計(jì)其測(cè)試用例如表4-11所示。測(cè)試用例編號(hào)變量a變量b變量c預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-11三角形邊界值分析測(cè)試用例若增加健壯性邊界法測(cè)試,在表4-11的基礎(chǔ)增加表4-12的測(cè)試用例內(nèi)容。測(cè)試用例編號(hào)變量a變量b變量c預(yù)期輸出Test1405050請(qǐng)輸入1-100的三個(gè)整數(shù)Test151015050請(qǐng)輸入1-100的三個(gè)整數(shù)Test1650050請(qǐng)輸入1-100的三個(gè)整數(shù)Test175010150請(qǐng)輸入1-100的三個(gè)整數(shù)Test1850500請(qǐng)輸入1-100的三個(gè)整數(shù)Test195050101請(qǐng)輸入1-100的三個(gè)整數(shù)表4-12三角形健壯性測(cè)試用例4.2.3決策表法1、決策表法概述

決策表又稱為判定表,是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具。能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡(jiǎn)明并避免遺漏,設(shè)計(jì)出完整的測(cè)試用例集合。在所有功能性測(cè)試方法中,基于決策表的測(cè)試方法是最嚴(yán)格的測(cè)試方法之一。例如,表4-13是一張“讀書指南”決策表,表中對(duì)提出的問題及建議,進(jìn)行相關(guān)的選擇。其中:Y為真值,N為假值。

規(guī)則選項(xiàng)12345678問題你覺得疲倦嗎?YYYYNNNN你對(duì)書中內(nèi)容感興趣嗎?YYNNYYNN書中內(nèi)容使你胡涂嗎?YNYNYNYN建議請(qǐng)回到本章開頭重讀√繼續(xù)讀下去√跳到下一章去讀√√停止閱讀,請(qǐng)休息√√√√表4-13讀書指南決策表決策表的組成:由條件樁、動(dòng)作樁、條件項(xiàng)和動(dòng)作項(xiàng)四個(gè)部分組成。如圖4-2所示。條件樁:列出了問題得所有條件。通常認(rèn)為列出的條件的次序無關(guān)緊要。動(dòng)作樁:列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。條件項(xiàng):列出針對(duì)它左列條件的取值。在所有可能情況下的真假值。動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則。圖4-2決策表的組成部分2、決策表的類型

有限條目決策表:所有條件都是二叉條件(真/假)。

擴(kuò)展條目決策表:條件可以有多個(gè)值。3、決策表的建立步驟

構(gòu)造決策表的5個(gè)基本步驟:

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

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

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

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

(5)合并相似規(guī)則,得到優(yōu)化決策表4、決策表的測(cè)試用例例4-5對(duì)三角形問題,使用決策表來設(shè)計(jì)其測(cè)試用例。列出條件樁和動(dòng)作樁確定規(guī)則個(gè)數(shù)條件樁

動(dòng)作樁

規(guī)則個(gè)數(shù)C1:1≤a≤100 非三角形C2:1≤b≤100 不等邊三角形C3:1≤c≤100 等腰三角形C4:a=b? 等邊三角形C5:b=c? 不可能 26=64C6:a=c?

③填入條件項(xiàng)。見表4-14所示。其中:F表示取假,T表示取真。④填入動(dòng)作項(xiàng)。見表4-14所示。C1:1≤a≤100FFFFFFFFFF……C2:1≤b≤100FFFFFFFFFF……C3:1≤c≤100FFFFFFFFTT……C4:a=b?FFFFTTTTFF……C5:b=c?FFTTFFTTFF……C6:a=c?FTFTFTFTFT……非三角形√√√√√√√√√√……不等邊三角形……等腰三角形……等邊三角形……不可能……表4-14三角形初始決策表⑤合并相似規(guī)則后,如表4-15所示。C1:1≤a≤100FTTTTTTTTTTC2:1≤b≤100-FTTTTTTTTTC3:1≤c≤100--FTTTTTTTTC4:a=b?---TTTTFFFFC5:b=c?---TTFFTTFFC6:a=c?---TFTFTFTF非三角形√√√不等邊三角形√等腰三角形√√√等邊三角形√不可能√√√表4-15合并表4-14后的決策表⑥根據(jù)決策表設(shè)計(jì)測(cè)試用例,見表4-16所示。測(cè)試用例編號(hào)abc預(yù)期輸出Test1412非三角形Test2142非三角形Test3124非三角形Test4666等邊三角形Test5???不可能Test6???不可能Test7667等腰三角形Test8???不可能Test9676等腰三角形Test10766等腰三角形Test11345不等邊三角形表4-16三角形決策表的測(cè)試用例4.2.4因果圖法1、因果圖方法概述

因果圖,也稱作依賴關(guān)系模型。主要用于描述軟件輸入條件(原因)與軟件輸出結(jié)果(結(jié)果)之間的依賴關(guān)系?!霸颉笔侵杠浖枨笾心苡绊戃浖敵龅娜我廨斎霔l件?!敖Y(jié)果”是指軟件對(duì)某些輸入條件的組合所做出的響應(yīng)??梢允且粭l提示信息,也可以是彈出的一個(gè)新窗口,還可以是數(shù)據(jù)庫的一次更新。結(jié)果可以可見或不可見。

因果圖法特別適用于被測(cè)程序具有多種輸入條件,程序的輸出又依賴于輸入條件的各種組合的情況。因果圖方法最終生成的就是判定表。

2、因果圖中的基本符號(hào)和約束在圖果圖有兩種類型的符號(hào):(1)因果關(guān)系符號(hào)有:對(duì)應(yīng)關(guān)系、否定關(guān)系、選擇關(guān)系和并列關(guān)系;(2)約束關(guān)系符號(hào)有:互斥關(guān)系、包含關(guān)系、唯一關(guān)系、要求關(guān)系和屏蔽關(guān)系;因果圖中的基本符號(hào)與約束關(guān)系見表4-17所示:表4-17因果圖的基本符號(hào)與約束3、因果圖測(cè)試用例的設(shè)計(jì)步驟(1)分析程序規(guī)格說明中哪些是原因,哪些是結(jié)果。原因常常是輸入條件或輸入條件的等價(jià)類,結(jié)果則是輸出條件。(2)分析程序規(guī)格說明中描述內(nèi)容的語義和限制,找出兩類關(guān)系,畫出因果圖。(3)把因果圖轉(zhuǎn)換成判定表。(4)對(duì)判定表的每一列寫成一個(gè)測(cè)試用例。4、因果圖法的測(cè)試用例例4-6假設(shè)某軟件中對(duì)一些文件名要求如下:

對(duì)于輸入或輸出文件名規(guī)定:第一個(gè)字符必須是字母I或O(如:I字符開始表示輸入文件名,O字符開始表示輸出文件名),第二個(gè)字符必須是一個(gè)數(shù)字,如:I1、O3等。當(dāng)輸入文件名后,對(duì)文件進(jìn)行相關(guān)處理。如果文件名中第一個(gè)字符不正確,則給出“操作文件類型錯(cuò)”信息。若第一個(gè)字符正確,但第二個(gè)字符不正確,則給出“文件順序號(hào)錯(cuò)”信息。①根據(jù)規(guī)格需求,列出原因和結(jié)果原因: C1:第一個(gè)字符是I C2:第一個(gè)字符是O C3:第二個(gè)字符是數(shù)字結(jié)果: S1:對(duì)文件進(jìn)行處理 S2:給出“操作類型錯(cuò)”信息 S3:給出“順序號(hào)錯(cuò)”信息②畫出因果圖,找出約束關(guān)系。見圖4-3所示。圖4-3例4-5的因果圖其中M為中間結(jié)點(diǎn)③將因果圖轉(zhuǎn)換為判定表,如表4-18所示,其中T為是,F(xiàn)為不是。條件C1:第一個(gè)字符是ITFFFTFC2:第一個(gè)字符是OFTFFFTC3:第二個(gè)字符是數(shù)字TTFTFF操作S1:對(duì)文件進(jìn)行處理√√S2:操作類型錯(cuò)√√S3:順序號(hào)錯(cuò)√√表4-18圖4-3對(duì)應(yīng)的判定表④根據(jù)判定表設(shè)計(jì)測(cè)試用例,見表4-19所示。測(cè)試用例編號(hào)輸入文件名預(yù)期輸出Test1I4對(duì)文件進(jìn)行處理Test2O5對(duì)文件進(jìn)行處理Test3XX操作類型錯(cuò)Test4X8操作類型錯(cuò)Test5IX順序號(hào)錯(cuò)Test6OX順序號(hào)錯(cuò)表4-19表4-18對(duì)應(yīng)的測(cè)試用例4.2.5其他黑盒測(cè)試方法1、類別劃分法(1)類別劃分法概述

類別劃分法是一種從軟件需求生成測(cè)試用例的系統(tǒng)化的方法。該方法同時(shí)可以包含手工和自動(dòng)完成的步驟。類別劃分法的本質(zhì)是測(cè)試人員將軟件需求轉(zhuǎn)換為相應(yīng)的測(cè)試規(guī)范,其中,測(cè)試規(guī)范由對(duì)應(yīng)于軟件輸入變量和環(huán)境對(duì)象的各種類別構(gòu)成。

每個(gè)類別被劃分為若干個(gè)對(duì)應(yīng)于軟件輸入變量、環(huán)境對(duì)象狀態(tài)的一個(gè)或多個(gè)取值的選項(xiàng)。測(cè)試規(guī)范中同時(shí)也包含了各選項(xiàng)之間的關(guān)系,以便確保生成合理、有效的測(cè)試集。將編寫好的測(cè)試規(guī)范輸入測(cè)試框架生成器,獲得相應(yīng)的框架,再根據(jù)測(cè)試框架可生成相應(yīng)的測(cè)試腳本。(2)類別劃分的步驟類別劃分法分為8個(gè)步驟,如圖4-4所示。圖4-4類別劃分法測(cè)試步驟其中實(shí)線矩形是人工完成,虛線矩形框是自動(dòng)完成。2、謂詞測(cè)試(1)謂詞測(cè)試概述

規(guī)則可以形式化地表示為謂詞。例如,考慮軟件需求“若打印機(jī)處于ON狀態(tài)且具備打印紙,則發(fā)送要打印的文件”。這需求中包含一個(gè)條件和一個(gè)動(dòng)作。而條件是一個(gè)關(guān)系表達(dá)式,即打印機(jī)在打印狀態(tài)和有打印紙存在。可以表示為P: P:(printer_status=ON)∧(printer_tray=?empty)這是一個(gè)謂詞P,它是由布爾運(yùn)算符“∧”連接的關(guān)系表達(dá)式。編程人員可能正確地為這個(gè)謂詞編碼,也可能沒有正確編碼。

根據(jù)謂詞產(chǎn)生測(cè)試用例,來測(cè)試程序中的錯(cuò)誤,從而可以確保在測(cè)試中發(fā)現(xiàn)某種類型的所有缺陷。這種用于驗(yàn)證謂詞實(shí)現(xiàn)是否正確的測(cè)試稱為謂詞測(cè)試。(2)謂詞測(cè)試中的故障類型

一個(gè)條件可以表示成簡(jiǎn)單謂詞或復(fù)合謂詞。簡(jiǎn)單謂詞就是一個(gè)布爾變量或關(guān)系表達(dá)式,其中變量可能取非。復(fù)合謂詞可以是一簡(jiǎn)單謂詞,或是由若干簡(jiǎn)單謂詞或其補(bǔ)通過二元布爾運(yùn)算符連接起來的式子。

謂詞測(cè)試,主要關(guān)注三類故障:布爾運(yùn)算符故障、關(guān)系運(yùn)算符故障、算術(shù)表達(dá)式故障。(3)謂詞測(cè)試準(zhǔn)則 BOR:對(duì)于復(fù)合謂詞P,如果測(cè)試集T確保能夠檢測(cè)出P實(shí)現(xiàn)中存在的單/多布爾運(yùn)算符故障,則T滿足了BOR測(cè)試準(zhǔn)則。稱T為BOR充分測(cè)試集。 BRO:對(duì)于復(fù)合謂詞P,如果測(cè)試集T確保能夠檢測(cè)出P實(shí)現(xiàn)中存在的單/多布爾運(yùn)算符及關(guān)系運(yùn)算符故障,則T滿足了BRO測(cè)試準(zhǔn)則。稱T為BRO充分測(cè)試集。 BRE:對(duì)于復(fù)合謂詞P,如果測(cè)試集T確保能夠檢測(cè)出P實(shí)現(xiàn)中存在的單/多布爾運(yùn)算符、關(guān)系表達(dá)式及算術(shù)表達(dá)式故障,則T滿足了BRE測(cè)試準(zhǔn)則。稱T為BRE充分測(cè)試集。3、錯(cuò)誤推測(cè)法

基本思想是:利用直覺和經(jīng)驗(yàn)推測(cè)軟件系統(tǒng)中可能出錯(cuò)的類型,列舉出程序中所有可能的錯(cuò)誤和容易發(fā)生錯(cuò)誤的情況,用清單的形式表示,然后,再根據(jù)清單來編寫測(cè)試用例。常從以下幾個(gè)方面來推測(cè)軟件件系統(tǒng)中存在的錯(cuò)誤:(1)軟件產(chǎn)品以前版本中已存在的未解決的問題;(2)因?yàn)榫幊陶Z言、操作系統(tǒng)、瀏覽器等環(huán)境的限制而出現(xiàn)的問題;(3)因模塊間關(guān)聯(lián)的測(cè)試出現(xiàn)的缺陷,修復(fù)后可能帶來其他的問題等。4.3黑盒測(cè)試的依據(jù)和流程4.3.1黑盒測(cè)試的依據(jù)

黑盒測(cè)試也稱為功能測(cè)試、行為測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,在測(cè)試時(shí),把程序看作一個(gè)不能打開的黑盒,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測(cè)試主要檢查下面幾個(gè)方面的內(nèi)容:(1)正確性:計(jì)算結(jié)果,命名方面。(2)可用性:是否可以滿足軟件的需求說明。(3)邊界條件:輸入部分的邊界值。(4)性能:程序的性能取決于兩個(gè)因素:運(yùn)行速度的快慢和需要消耗的系統(tǒng)資源。(5)壓力測(cè)試:多用戶情況可以考慮使用壓力測(cè)試工具,建議將壓力和性能測(cè)試結(jié)合起來進(jìn)行。如果有負(fù)載平衡的話還要在服務(wù)器端打開檢測(cè)工具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬大量數(shù)據(jù)輸入,對(duì)硬盤的影響等等信息。(6)錯(cuò)誤恢復(fù):錯(cuò)誤處理,頁面數(shù)據(jù)驗(yàn)證,包括突然間斷點(diǎn),輸入錯(cuò)誤數(shù)據(jù)等。(7)安全性測(cè)試:對(duì)系統(tǒng)的安全進(jìn)入、安全操作及相關(guān)權(quán)限進(jìn)行測(cè)試。特別是一些商務(wù)網(wǎng)站,或者跟錢有關(guān),或者和公司秘密有關(guān)的web更是需要這方面的測(cè)試。(8)兼容性:不同瀏覽器,不同應(yīng)用程序版本在實(shí)現(xiàn)功能時(shí)的表現(xiàn)。4.3.2黑盒測(cè)試的流程1、測(cè)試計(jì)劃2、測(cè)試設(shè)計(jì)3、測(cè)試開發(fā)4、測(cè)試執(zhí)行5、測(cè)試評(píng)估4.4黑盒測(cè)試運(yùn)用實(shí)例例4-7保險(xiǎn)金計(jì)算程序:

保險(xiǎn)金=500×年齡系數(shù)–安全駕駛折扣安全駕駛折扣是投保人駕駛執(zhí)照上當(dāng)前點(diǎn)數(shù)的函數(shù),年齡系數(shù)是投保人年齡的函數(shù),若點(diǎn)數(shù)低于等于與年齡有關(guān)的點(diǎn)數(shù)門限,則給予安全駕駛折扣。程序輸入:年齡、點(diǎn)數(shù),駕駛?cè)四挲g范圍為16-100歲;點(diǎn)數(shù)范圍為0-12。輸出:保險(xiǎn)金。年齡范圍年齡系數(shù)門限點(diǎn)數(shù)安全駕駛折扣16≤年齡<252.815025≤年齡<351.835035≤年齡<451.0510045≤年齡<600.8715060≤年齡≤1001.58200表4-20年齡系數(shù)和安全駕駛折扣計(jì)算表1、邊界值測(cè)試輸入變量年齡和點(diǎn)數(shù)的邊界值條件1如表4-21所示。變量minmin+nommaxmax+年齡16175099100點(diǎn)數(shù)0161112表4-21變量年齡和點(diǎn)數(shù)的邊界值條件1輸入變量年齡和點(diǎn)數(shù)的邊界值條件2如表4-22所示。變量minmin+nommaxmax+年齡16172024-年齡25263034-年齡35364044-年齡45465359-年齡60617599100點(diǎn)數(shù)0---1點(diǎn)數(shù)2---3點(diǎn)數(shù)4---5點(diǎn)數(shù)6---7點(diǎn)數(shù)89101112表4-22變量年齡和點(diǎn)數(shù)的邊界值條件22、等價(jià)類劃分法測(cè)試(1)年齡等價(jià)類集合A1:{16≤年齡<25}A2:{25≤年齡<35}A3:{35≤年齡<45}A4:{45≤年齡<60}A5:{60≤年齡≤100}測(cè)試用例設(shè)計(jì)如表4-23所示。(2)點(diǎn)數(shù)等價(jià)類集合P1:{點(diǎn)數(shù)=0,1}P2:{點(diǎn)數(shù)=

溫馨提示

  • 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)論