版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章黑盒測試本章學習目標了解黑盒測試的基本概念、依據(jù)及流程理解黑盒測試各種測試方法和技巧熟練掌握墨盒測試主要方法的使用4.1黑盒測試基本概念
黑盒測試又稱為功能測試或數(shù)據(jù)驅動測試。由于此方法不需要了解程序的內部邏輯結構和內部特性,將被測試程序視為一個不能打開的黑盒子;而是注重于程序的外部結構,主要對軟件功能要求、軟件界面、外部數(shù)據(jù)庫訪問及軟件初始化等方面進行測試。測試者只要從程序接口處進行測試,以程序需求說明為測試依據(jù),測試程序是否滿足用戶的需求,因此是從用戶觀點出發(fā)的測試。黑盒測試主要發(fā)現(xiàn)的錯誤類型有:(1)檢測功能是否有遺漏;(2)檢測性能是否滿足要求;(3)檢測人機交互是否有錯誤;(4)檢測界面是否有錯誤;(5)檢測數(shù)據(jù)結構或外部數(shù)據(jù)庫訪問是否有錯誤;(6)檢測接收數(shù)據(jù)和結果輸出是否錯誤;(7)檢測程序初始化和終止方面是否有錯誤。4.2黑盒測試方法
根據(jù)一些相關條件和方法對較典型的測試用例進行測試,來發(fā)現(xiàn)軟件中存在的缺陷。現(xiàn)在大多數(shù)測試生成方法,都是通過選取軟件輸入域的一個子集作為測試集來測試軟件的。
黑盒測試常用的方法和技術有:等價類劃分法、邊界值分析法、決策表法、因果圖法等。下面就這些常用的方法進行詳細的介紹。4.2.1等價類劃分法
等價類劃分法是根據(jù)程序規(guī)格說明書對輸入范圍進行劃分,將所有可能的輸入數(shù)據(jù)按相關的規(guī)定劃分成若干不相交的子集。所有子集的并集是整個輸入域。其中,子集的互不相交保證子集中無冗余性,子集的并集是整個輸入域,確定了所有子集的完備性。1、缺陷的定位
一個軟件的全部輸入的集合可以至少分為兩個子集:一個包含所有正常和合法的輸入;另一個包含所有異常和非法的輸入。對于這兩個子集又可以進一步劃分為若干子集,以便軟件針對不同的子集,其運行的結果不同。
等價類劃分方法就是要從這兩個集合或其子集中選擇適當?shù)妮斎胱鳛闇y試用例,以便發(fā)現(xiàn)軟件中存在的缺陷。2、等價類的劃分
等價類劃分的原則是用同一等價類中的任意輸入對軟件進行測試,軟件都輸出的相同的結果。全部等價類的測試用例就構成了完整的測試用例集。
對于同一輸入域進行等價類劃分,其結果可能不唯一的。因此,利用等價類劃分的方法產生的測試用例集也可能不同。所以測試用例集的故障檢測效率往往取決于測試人員的測試設計的經驗、對軟件需求的熟悉程序等。(1)劃分等價類
在劃分等價類時,分為有效等價類和無效等價類。
有效等價類是指符合程序規(guī)格說明書,有意義的、合理的輸入數(shù)據(jù)所構成的集合。有效等價類可以是一個,也可以是多個。利用有效等價類,可以檢查軟件功能和性能是否符合規(guī)格說明書中的要求。
無效等價類是指不符合程序規(guī)格說明書、不合理或無意義的輸入數(shù)據(jù)所構成的集合??梢允且粋€,也可以是多個。利用無效等價類,可以檢查軟件功能和性能的實現(xiàn)是否有不符合規(guī)格說明書的地方。(2)常用的等價類劃分原則①變量的等價類劃分
取值范圍:如果輸入條件規(guī)定了一個取值范圍或值的個數(shù),則可以定義一個有效等價類和兩個無效等價類。
字符串:至少分為一個包含所有合法字符串的有效等價類和一個包含所有非法字符串的無效等價類。
枚舉變量:每個取值對應一個有效等價。針對枚舉類型,對于某些特定的取值范圍,有可能無法確定非法測試輸入值。對于布爾變量,只有兩個合法取值(真值與假值)。
數(shù)組:數(shù)組是一組具有相同類型的元素的集合,數(shù)組的長度及其類型都可作為等價類劃分的依據(jù)??蓜澐譃橐粋€包含所有數(shù)組的有效等價類,一個空數(shù)組無效等價類,以及一個包含所有大于期望長度數(shù)組的無效等價類。
復合數(shù)據(jù)類型:復合數(shù)據(jù)類型是指包含兩個或兩個以上的相互獨立的屬性的輸入數(shù)據(jù)。當對軟件的一個組件模塊(函數(shù)或對象)進行測試時,將使用這種輸入類型。對這種復合數(shù)據(jù)類型的輸入進行等價類劃分時,需要考慮輸入數(shù)據(jù)的每個屬性的合法與非法取值。②關系與等價類劃分在集合論中,關系指的是一個n元組的集合。
如果規(guī)定了輸入值的集合,或者規(guī)定了“必須如何”的條件,則可以定義一個有效等價類和一個無效等價類。
如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序對不同輸入值做不同處理,則可以定義若干有效等價類(每個值一個有效等價類)和一個無效等價類。
如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以定義一個有效等價類(符合規(guī)則)和若干無效等價類(從不同角度違反規(guī)則)。③一元化分與多元化分
一元化等價類劃分:每次只考慮一個輸入變量,這樣,每個輸入變量形成了對輸入域的一個劃分,稱為一元等價類劃分,簡稱一無化分。程序有多少個變量,就有多少種劃分,每個劃分包含兩個或兩個以上的等價類。
多元劃分:將所有輸入變量的笛卡兒積作為程序的輸入域,稱為多元等價類劃分,簡稱多元化分。此方法只產生一個劃分,劃分包含若干個等價類。測試用例的選擇常使用一元化分,因為一元化分較為簡單且可量測。而多元化分所產生的等價類數(shù)量較大,并且其中有許多是無用的。(3)劃分等價類的步驟確定輸入域:分析需求并確定所有的輸入、輸出量,以及變量類型和變量使用條件。等價類劃分:將每個變量的取值集合劃分為互不相交的子集,每個子集對應一個等價類,所有的等價類就構成了對輸入域的一個劃分。組合等價類:使用多元化方法,可以將等價類組合起來。確定不可測的等價類:有些輸入數(shù)據(jù)組合在實際測試過程中是無法生成的,包含這種數(shù)據(jù)的等價類就是不可測試等價類。不可測試數(shù)據(jù)指無法輸入到被測軟件中的那些數(shù)據(jù)組合。(4)等價類的測試步驟①劃分等價類,形成等價類表;②為每個等價類規(guī)定一個唯一的編號;③設計一個新的測試用例,使其盡量多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止。④設計一個新的測試用例。使其覆蓋一個而且只覆蓋一個無效等價類,重復這一步,直到所有無效等價類均被覆蓋為止。3、基于等價類的測試用例設計例4-1對熱水器溫控軟件劃分等價類并設計測試用例。溫控軟件的需求如下:
熱水器控制系統(tǒng)簡稱BCS,BCS的溫控軟件簡稱CS。它提供若干選項。供操作員使用的控制選項C包括三個控制命令(cmd):溫度控制命令(temp)、系統(tǒng)關閉命令(shut)、請求取消命令(cancel)。命令temp要求操作員輸入溫度調節(jié)數(shù)值tempch,其范圍為[-10,10],以5攝氏度遞增,不能為0。
當操作員選擇了控制選項C時,BCS將對V進行檢查,若V為GUI,則操作員通過GUI選擇控制命令(cmd)之一執(zhí)行;若V為file,則BCS通過一命令文件獲取命令執(zhí)行。
命令文件包含一條控制命令(cmd),當控制命令為temp時,則命令文件同時包含溫度調節(jié)數(shù)值tempch。變量F表示命令文件名,BCS中另一個特定模塊負責V和F取值的選取。
溫控軟件依據(jù)temp、shut命令,產生相應的控制信號并將其發(fā)送至熱水加熱系統(tǒng)。見圖4-1所示。圖4-1溫控軟件的示意圖其中:V和F是環(huán)境變量,V用于確定命令(cmd)和溫度調節(jié)數(shù)值(tempch)的輸入方式,包括GUI方式或命令文件方式。F指的是命令文件名。
假設在仿真環(huán)境下對溫控軟件實施測試,測試人員充當系統(tǒng)操作員并通過GUI實現(xiàn)與CS的交互,GUI使得測試人員只能從需求規(guī)定的有限取值集合中進行選取。由上需求可知,temp的有效值只能是-10,-5,5,10。步驟1:確定輸入域。
首先檢查需求,確定輸入變量、變量類型及其相應取值,如下表4-1所示。變量種類類型取值V環(huán)境變量枚舉[GUI,file]F環(huán)境變量字符串文件名cmdGUI或文件方式輸入枚舉[temp,cancel,shut]tempchGUI或文件方式輸入枚舉[-10,-5,5,10]表4-1CS的變量及其相關內容步驟2:等價類劃分。各變量所對應的等價類如下表4-2所示。變量有效等價類無效等價類V[GUI[,[file]V未被定義F有效文件名集合無效文件名集合cmd[temp],[cancel],[shut]無效命令集合tempch[-10],[-5],[5],[10]無效的tempch取值集合表4-2CS變量的等價類劃分步驟3:組合等價類。
由表4-2中可知,變量V,F(xiàn),cmd,tempch代表的集合分別補劃分成3個、2個、4個、5個子集,因此這4個變量共形成3×2×4×5=120個等價類,其中有些是不可測等價類。步驟4:剔除不可測等價類。
只有當操作員選擇
temp命令時(即cmd為temp)時,才能實現(xiàn)對熱水器的溫度調節(jié),因此,符合下面模板的等價類都是不可測的:{(V,F,{cancel}∪{shut}∪{無效命令},{-10}∪{-5}∪{5}∪{10}∪{無效的tempch取值})}18個可測等價類可由下面7個模板表示。其中符號“_”表示在測試過程中需要輸入但并不起任何實際作用的數(shù)據(jù)?!癗A”表示由于軟件GUI的限制,而無法實際輸入的數(shù)據(jù)。等價類編號模板等價類數(shù)量E1{(GUI,有效文件名,temp,有效temp取值(4個))}4個E2{(GUI,無有效文件名,temp,有效temp取值(4個))}4個E3{(GUI,_,cancel,NA)}2個E4{(file,有效文件名,temp,有效的temp取值∪無效的temp取值)}5個E5{(file,有效文件名,shut,NA)}1個E6{(file,有效文件名,NA,NA)}1個E7{(未被定義,NA,NA,NA)}1個表4-3CS可測等價類表步驟5:根據(jù)可測等價類設計測試用例。根據(jù)表4-3設計測試用例見表4-4所示。測試用例編號測試用例等價類編號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測試用例例4-2三角形問題的等價類測試。輸入三個整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷由這3條邊構成的三條邊類型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能夠成一個三角形)。假定3個輸入a、b和c在1~100之間取值,三角形問題可以更詳細地描述為:輸入3個整數(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中的一個,則程序輸出為“非三角形”。②如果3條邊相等,則程序輸出為“等邊三角形”。③如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。④如果3條邊都不相等,則程序輸出為“一般三角形”。顯然,這4種情況相互排斥。從輸入域進行分類,可以得到表4-5所示的三角形輸入域的等價類表。編號輸入條件(a,b,c)有效等價類無效等價類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只輸入一個數(shù)是E12只輸入二個數(shù)是E13輸入三個以上的數(shù)是 E 14輸入非數(shù)值型的數(shù)據(jù)是表4-5三角形問題輸入域的等價類對于上表4-5中的等價類設計測試用例,見表4-6所示。測試用例編號輸入數(shù)期望輸出對應等價類abcTest1567一般三角形E1Test22.567請輸入1-100的三個整數(shù)E2Test32.53.57請輸入1-100的三個整數(shù)E3Test42.53.54.5請輸入1-100的三個整數(shù)E4Test5067請輸入1-100的三個整數(shù)E5Test60-17請輸入1-100的三個整數(shù)E6Test70-10請輸入1-100的三個整數(shù)E7Test810167請輸入1-100的三個整數(shù)E8Test91011027請輸入1-100的三個整數(shù)E9Test10101102103請輸入1-100的三個整數(shù)E10Test115請輸入1-100的三個整數(shù)E11Test1256請輸入1-100的三個整數(shù)E12Test13567,8請輸入1-100的三個整數(shù)E13Test14#m)請輸入1-100的三個整數(shù)E14表4-6三角形問題輸入域對應的測試用例若從輸出域來對等價類進行劃分,見表4-7所示。編號輸入條件(a,b,c)有效等價類無效等價類E151≤a,b,c≤100,且三個相同的整數(shù)是E161≤a,b,c≤100,且二個相同的整數(shù)是E171≤a,b,c≤100,且三個不相同的整數(shù)是E18任一邊數(shù)大于其它二邊數(shù)之和的整數(shù)是表4-7三角形問題輸出域的等價類對表4-7中的等價類設計測試用例,見表4-8所示。測試用例編號輸入數(shù)期望輸出對應等價類abcTest15666等邊三角形E15Test16665等腰三角形E16Test17345一般三角形E17Test18412非三角形E18表4-8三角形問題輸出域對應的測試用例4.2.2邊界值分析法1、邊界值分析方法概述
邊界值分析法主要從數(shù)據(jù)的定義域的邊界數(shù)據(jù)進行分析,對于合法與不合法的邊界數(shù)據(jù)進行選取和測試。用來檢查用戶輸入的信息、返回的結果以及中間計算結果是否正確。2、邊界值的獲取及測試用例的設計
測試時輸入變量取值:最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max)。
對于一個含有n個變量的程序,保留其中一個變量,讓其余的變量取正常值,被保留的變量依次取最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)、最大值(max),對每一個變量都重復進行。因此,對于一個有n個變量的程序,邊界值分析測試程序就有4n+1個測試用例。
測試所包含的邊界值常見的類型有:數(shù)值、字符、位置、大小、尺寸、空間等。邊界值的獲取及生成測試用例的步驟:(1)使用一元劃分方法劃分輸入域。此時,有多少個輸入變量就形成多少種劃分。(2)為每種劃分確定邊界,也可利用輸入變量之間的特定關系確定邊界。(3)設計測試用例,確保每個邊界至少出現(xiàn)在一個測試輸入數(shù)據(jù)中。3、健壯性的測試
健壯性測試是邊界分析測試的一種擴展,除了取上面已述的五種邊界值外,還要考慮超出范圍的值,即比最小值要小(min-)、比最大值要大(max+)的取值。對于一個含有n個變量的程序而言,同樣,保留一個變量,讓其余變量取正常值,這個保留的變量依次取七個值(min-、min、min+、nom、max-、max、max+),每個變量重復進行,則健壯性測試的用例將產生6n+1個測試用例。4、邊界分析法的測試用例例4-3考慮函數(shù)findprice,它有兩個整型輸入變量,分別為code和qty,其中code表示商品的編碼,qty表示采購數(shù)量。當函數(shù)findprice訪問數(shù)據(jù)庫,查詢并顯示code編碼所對應的產品的單價、描述信息以及總的采購價格。當code和qty中任意一個為非法輸入時,函數(shù)findprice顯示一條錯誤提示信息并返回。假設編碼code的有效區(qū)間為[99,999],數(shù)量qty的有效輸入?yún)^(qū)間為[1,100]。首先,為兩個輸入變量創(chuàng)建等價類。由上假設的區(qū)間可知有如下等價類,見表4-9所示。變量變量取值等價類編號備注code小于99E1無效等價類[99,999]E2有效等價類大于999E3無效等價類qty小于1E4無效等價類[1,100]E5有效等價類大于100E6無效等價類表4-9函數(shù)findprice的兩變量的等價類表根據(jù)相關邊界值來設計測試用例。見表4-10所示。測試用例編號變量code變量qty預期輸出Test12000錯誤提示信息Test22001相關單價等信息Test32002相關單價等信息Test420050相關單價等信息Test520099相關單價等信息Test6200100相關單價等信息Test7200101錯誤提示信息Test89850錯誤提示信息Test99950相關單價等信息Test1010050相關單價等信息Test1199850相關單價等信息Test1299950相關單價等信息Test13100050錯誤提示信息表4-10函數(shù)findprice的健壯性邊界值分析測試用例例4-4對于例4-2三角形問題采用邊界值分析法,設計其測試用例如表4-11所示。測試用例編號變量a變量b變量c預期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-11三角形邊界值分析測試用例若增加健壯性邊界法測試,在表4-11的基礎增加表4-12的測試用例內容。測試用例編號變量a變量b變量c預期輸出Test1405050請輸入1-100的三個整數(shù)Test151015050請輸入1-100的三個整數(shù)Test1650050請輸入1-100的三個整數(shù)Test175010150請輸入1-100的三個整數(shù)Test1850500請輸入1-100的三個整數(shù)Test195050101請輸入1-100的三個整數(shù)表4-12三角形健壯性測試用例4.2.3決策表法1、決策表法概述
決策表又稱為判定表,是分析和表達多邏輯條件下執(zhí)行不同操作的情況的工具。能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏,設計出完整的測試用例集合。在所有功能性測試方法中,基于決策表的測試方法是最嚴格的測試方法之一。例如,表4-13是一張“讀書指南”決策表,表中對提出的問題及建議,進行相關的選擇。其中:Y為真值,N為假值。
規(guī)則選項12345678問題你覺得疲倦嗎?YYYYNNNN你對書中內容感興趣嗎?YYNNYYNN書中內容使你胡涂嗎?YNYNYNYN建議請回到本章開頭重讀√繼續(xù)讀下去√跳到下一章去讀√√停止閱讀,請休息√√√√表4-13讀書指南決策表決策表的組成:由條件樁、動作樁、條件項和動作項四個部分組成。如圖4-2所示。條件樁:列出了問題得所有條件。通常認為列出的條件的次序無關緊要。動作樁:列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。條件項:列出針對它左列條件的取值。在所有可能情況下的真假值。動作項:列出在條件項的各種取值情況下應該采取的動作。規(guī)則:任何一個條件組合的特定取值及其相應要執(zhí)行的操作稱為規(guī)則。圖4-2決策表的組成部分2、決策表的類型
有限條目決策表:所有條件都是二叉條件(真/假)。
擴展條目決策表:條件可以有多個值。3、決策表的建立步驟
構造決策表的5個基本步驟:
(1)列出所有的條件樁和動作樁。
(2)確定規(guī)則的個數(shù)。
(3)填入條件項。
(4)填入動作項,得到初始決策表。
(5)合并相似規(guī)則,得到優(yōu)化決策表4、決策表的測試用例例4-5對三角形問題,使用決策表來設計其測試用例。列出條件樁和動作樁確定規(guī)則個數(shù)條件樁
動作樁
規(guī)則個數(shù)C1:1≤a≤100 非三角形C2:1≤b≤100 不等邊三角形C3:1≤c≤100 等腰三角形C4:a=b? 等邊三角形C5:b=c? 不可能 26=64C6:a=c?
③填入條件項。見表4-14所示。其中:F表示取假,T表示取真。④填入動作項。見表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ù)決策表設計測試用例,見表4-16所示。測試用例編號abc預期輸出Test1412非三角形Test2142非三角形Test3124非三角形Test4666等邊三角形Test5???不可能Test6???不可能Test7667等腰三角形Test8???不可能Test9676等腰三角形Test10766等腰三角形Test11345不等邊三角形表4-16三角形決策表的測試用例4.2.4因果圖法1、因果圖方法概述
因果圖,也稱作依賴關系模型。主要用于描述軟件輸入條件(原因)與軟件輸出結果(結果)之間的依賴關系。“原因”是指軟件需求中能影響軟件輸出的任意輸入條件?!敖Y果”是指軟件對某些輸入條件的組合所做出的響應??梢允且粭l提示信息,也可以是彈出的一個新窗口,還可以是數(shù)據(jù)庫的一次更新。結果可以可見或不可見。
因果圖法特別適用于被測程序具有多種輸入條件,程序的輸出又依賴于輸入條件的各種組合的情況。因果圖方法最終生成的就是判定表。
2、因果圖中的基本符號和約束在圖果圖有兩種類型的符號:(1)因果關系符號有:對應關系、否定關系、選擇關系和并列關系;(2)約束關系符號有:互斥關系、包含關系、唯一關系、要求關系和屏蔽關系;因果圖中的基本符號與約束關系見表4-17所示:表4-17因果圖的基本符號與約束3、因果圖測試用例的設計步驟(1)分析程序規(guī)格說明中哪些是原因,哪些是結果。原因常常是輸入條件或輸入條件的等價類,結果則是輸出條件。(2)分析程序規(guī)格說明中描述內容的語義和限制,找出兩類關系,畫出因果圖。(3)把因果圖轉換成判定表。(4)對判定表的每一列寫成一個測試用例。4、因果圖法的測試用例例4-6假設某軟件中對一些文件名要求如下:
對于輸入或輸出文件名規(guī)定:第一個字符必須是字母I或O(如:I字符開始表示輸入文件名,O字符開始表示輸出文件名),第二個字符必須是一個數(shù)字,如:I1、O3等。當輸入文件名后,對文件進行相關處理。如果文件名中第一個字符不正確,則給出“操作文件類型錯”信息。若第一個字符正確,但第二個字符不正確,則給出“文件順序號錯”信息。①根據(jù)規(guī)格需求,列出原因和結果原因: C1:第一個字符是I C2:第一個字符是O C3:第二個字符是數(shù)字結果: S1:對文件進行處理 S2:給出“操作類型錯”信息 S3:給出“順序號錯”信息②畫出因果圖,找出約束關系。見圖4-3所示。圖4-3例4-5的因果圖其中M為中間結點③將因果圖轉換為判定表,如表4-18所示,其中T為是,F(xiàn)為不是。條件C1:第一個字符是ITFFFTFC2:第一個字符是OFTFFFTC3:第二個字符是數(shù)字TTFTFF操作S1:對文件進行處理√√S2:操作類型錯√√S3:順序號錯√√表4-18圖4-3對應的判定表④根據(jù)判定表設計測試用例,見表4-19所示。測試用例編號輸入文件名預期輸出Test1I4對文件進行處理Test2O5對文件進行處理Test3XX操作類型錯Test4X8操作類型錯Test5IX順序號錯Test6OX順序號錯表4-19表4-18對應的測試用例4.2.5其他黑盒測試方法1、類別劃分法(1)類別劃分法概述
類別劃分法是一種從軟件需求生成測試用例的系統(tǒng)化的方法。該方法同時可以包含手工和自動完成的步驟。類別劃分法的本質是測試人員將軟件需求轉換為相應的測試規(guī)范,其中,測試規(guī)范由對應于軟件輸入變量和環(huán)境對象的各種類別構成。
每個類別被劃分為若干個對應于軟件輸入變量、環(huán)境對象狀態(tài)的一個或多個取值的選項。測試規(guī)范中同時也包含了各選項之間的關系,以便確保生成合理、有效的測試集。將編寫好的測試規(guī)范輸入測試框架生成器,獲得相應的框架,再根據(jù)測試框架可生成相應的測試腳本。(2)類別劃分的步驟類別劃分法分為8個步驟,如圖4-4所示。圖4-4類別劃分法測試步驟其中實線矩形是人工完成,虛線矩形框是自動完成。2、謂詞測試(1)謂詞測試概述
規(guī)則可以形式化地表示為謂詞。例如,考慮軟件需求“若打印機處于ON狀態(tài)且具備打印紙,則發(fā)送要打印的文件”。這需求中包含一個條件和一個動作。而條件是一個關系表達式,即打印機在打印狀態(tài)和有打印紙存在??梢员硎緸镻: P:(printer_status=ON)∧(printer_tray=?empty)這是一個謂詞P,它是由布爾運算符“∧”連接的關系表達式。編程人員可能正確地為這個謂詞編碼,也可能沒有正確編碼。
根據(jù)謂詞產生測試用例,來測試程序中的錯誤,從而可以確保在測試中發(fā)現(xiàn)某種類型的所有缺陷。這種用于驗證謂詞實現(xiàn)是否正確的測試稱為謂詞測試。(2)謂詞測試中的故障類型
一個條件可以表示成簡單謂詞或復合謂詞。簡單謂詞就是一個布爾變量或關系表達式,其中變量可能取非。復合謂詞可以是一簡單謂詞,或是由若干簡單謂詞或其補通過二元布爾運算符連接起來的式子。
謂詞測試,主要關注三類故障:布爾運算符故障、關系運算符故障、算術表達式故障。(3)謂詞測試準則 BOR:對于復合謂詞P,如果測試集T確保能夠檢測出P實現(xiàn)中存在的單/多布爾運算符故障,則T滿足了BOR測試準則。稱T為BOR充分測試集。 BRO:對于復合謂詞P,如果測試集T確保能夠檢測出P實現(xiàn)中存在的單/多布爾運算符及關系運算符故障,則T滿足了BRO測試準則。稱T為BRO充分測試集。 BRE:對于復合謂詞P,如果測試集T確保能夠檢測出P實現(xiàn)中存在的單/多布爾運算符、關系表達式及算術表達式故障,則T滿足了BRE測試準則。稱T為BRE充分測試集。3、錯誤推測法
基本思想是:利用直覺和經驗推測軟件系統(tǒng)中可能出錯的類型,列舉出程序中所有可能的錯誤和容易發(fā)生錯誤的情況,用清單的形式表示,然后,再根據(jù)清單來編寫測試用例。常從以下幾個方面來推測軟件件系統(tǒng)中存在的錯誤:(1)軟件產品以前版本中已存在的未解決的問題;(2)因為編程語言、操作系統(tǒng)、瀏覽器等環(huán)境的限制而出現(xiàn)的問題;(3)因模塊間關聯(lián)的測試出現(xiàn)的缺陷,修復后可能帶來其他的問題等。4.3黑盒測試的依據(jù)和流程4.3.1黑盒測試的依據(jù)
黑盒測試也稱為功能測試、行為測試或數(shù)據(jù)驅動測試,在測試時,把程序看作一個不能打開的黑盒,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測試主要檢查下面幾個方面的內容:(1)正確性:計算結果,命名方面。(2)可用性:是否可以滿足軟件的需求說明。(3)邊界條件:輸入部分的邊界值。(4)性能:程序的性能取決于兩個因素:運行速度的快慢和需要消耗的系統(tǒng)資源。(5)壓力測試:多用戶情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來進行。如果有負載平衡的話還要在服務器端打開檢測工具,查看服務器CPU使用率,內存占用情況,如果有必要可以模擬大量數(shù)據(jù)輸入,對硬盤的影響等等信息。(6)錯誤恢復:錯誤處理,頁面數(shù)據(jù)驗證,包括突然間斷點,輸入錯誤數(shù)據(jù)等。(7)安全性測試:對系統(tǒng)的安全進入、安全操作及相關權限進行測試。特別是一些商務網站,或者跟錢有關,或者和公司秘密有關的web更是需要這方面的測試。(8)兼容性:不同瀏覽器,不同應用程序版本在實現(xiàn)功能時的表現(xiàn)。4.3.2黑盒測試的流程1、測試計劃2、測試設計3、測試開發(fā)4、測試執(zhí)行5、測試評估4.4黑盒測試運用實例例4-7保險金計算程序:
保險金=500×年齡系數(shù)–安全駕駛折扣安全駕駛折扣是投保人駕駛執(zhí)照上當前點數(shù)的函數(shù),年齡系數(shù)是投保人年齡的函數(shù),若點數(shù)低于等于與年齡有關的點數(shù)門限,則給予安全駕駛折扣。程序輸入:年齡、點數(shù),駕駛人年齡范圍為16-100歲;點數(shù)范圍為0-12。輸出:保險金。年齡范圍年齡系數(shù)門限點數(shù)安全駕駛折扣16≤年齡<252.815025≤年齡<351.835035≤年齡<451.0510045≤年齡<600.8715060≤年齡≤1001.58200表4-20年齡系數(shù)和安全駕駛折扣計算表1、邊界值測試輸入變量年齡和點數(shù)的邊界值條件1如表4-21所示。變量minmin+nommaxmax+年齡16175099100點數(shù)0161112表4-21變量年齡和點數(shù)的邊界值條件1輸入變量年齡和點數(shù)的邊界值條件2如表4-22所示。變量minmin+nommaxmax+年齡16172024-年齡25263034-年齡35364044-年齡45465359-年齡60617599100點數(shù)0---1點數(shù)2---3點數(shù)4---5點數(shù)6---7點數(shù)89101112表4-22變量年齡和點數(shù)的邊界值條件22、等價類劃分法測試(1)年齡等價類集合A1:{16≤年齡<25}A2:{25≤年齡<35}A3:{35≤年齡<45}A4:{45≤年齡<60}A5:{60≤年齡≤100}測試用例設計如表4-23所示。(2)點數(shù)等價類集合P1:{點數(shù)=0,1}P2:{點數(shù)=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電鎖項目營銷計劃書
- 企業(yè)容災演練服務行業(yè)營銷策略方案
- 電子管項目運營指導方案
- 窯具支架商業(yè)機會挖掘與戰(zhàn)略布局策略研究報告
- 樂器用電子練習弱音器產品供應鏈分析
- 塑料杯蓋產品供應鏈分析
- 2.1《網絡改變世界》 課件 -2024-2025學年統(tǒng)編版道德與法治八年級上冊
- 兒童雨靴產品供應鏈分析
- 藥用植物根項目營銷計劃書
- 管理飛機控制裝置用計算機商業(yè)機會挖掘與戰(zhàn)略布局策略研究報告
- A3報告培訓教材
- 健康教育與健康促進試題及參考答案
- 送別懷人詩鑒賞公開課一等獎市賽課一等獎課件
- 大學教師年度師德考核表
- 秋冬季安全檢查表
- 應用文寫作通知試題4篇范文
- 保利發(fā)展控股集團-2022-2023年房地產行業(yè)白皮書
- 土力學(二)-課件清華大學-張丙印
- 小區(qū)日常清潔服務項目投標書
- 第三章人本心理治療
- 孔融讓梨(故事PPT)
評論
0/150
提交評論