軟件測試(第2版) 課件 第3章 白盒測試方法_第1頁
軟件測試(第2版) 課件 第3章 白盒測試方法_第2頁
軟件測試(第2版) 課件 第3章 白盒測試方法_第3頁
軟件測試(第2版) 課件 第3章 白盒測試方法_第4頁
軟件測試(第2版) 課件 第3章 白盒測試方法_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章白盒測試方法《軟件測試(第2版)》學(xué)習(xí)目標(biāo)/Target

掌握基本路徑法的使用,能夠應(yīng)用基本路徑法設(shè)計測試用例

掌握語句覆蓋法的使用,能夠應(yīng)用語句覆蓋法設(shè)計測試用例

掌握判定覆蓋法的使用,能夠應(yīng)用判定覆蓋法設(shè)計測試用例

掌握條件覆蓋法的使用,能夠應(yīng)用條件覆蓋法設(shè)計測試用例學(xué)習(xí)目標(biāo)/Target

掌握判定-條件覆蓋法的使用,能夠應(yīng)用判定-條件覆蓋法設(shè)計測試用例

掌握條件組合覆蓋法的使用,能夠應(yīng)用條件組合覆蓋法設(shè)計測試用例

了解目標(biāo)代碼插樁法的原理,能夠描述目標(biāo)代碼插樁法的3種執(zhí)行模式

掌握源代碼插樁法的使用,能夠應(yīng)用探針代碼測試程序章節(jié)概述/Summary白盒測試又稱為透明盒測試、結(jié)構(gòu)測試,它基于程序的內(nèi)部邏輯結(jié)構(gòu)進行測試,而不是程序的功能(黑盒測試)。因此,進行白盒測試時,測試人員需要了解程序的內(nèi)部邏輯結(jié)構(gòu),根據(jù)使用的編程語言設(shè)計測試用例。白盒測試可用于單元測試、集成測試和系統(tǒng)測試。白盒測試的方法包括基本路徑法、邏輯覆蓋法、程序插樁法,本章將對白盒測試的方法進行詳細講解。目錄/Contents010203基本路徑法邏輯覆蓋法程序插樁法基本路徑法3.1

先定一個小目標(biāo)!掌握基本路徑法的概述,能夠使用基本路徑法設(shè)計測試用例3.1.1 基本路徑法概述基本路徑法是一種將程序的流程圖轉(zhuǎn)化為程序控制流圖,并在程序控制流圖的基礎(chǔ)上,分析被測程序控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。使用基本路徑法設(shè)計的測試用例需要確保被測程序中的每個可執(zhí)行語句至少被執(zhí)行一次。3.1.1 基本路徑法概述3.1.1 基本路徑法概述步驟1步驟2步驟3步驟4使用基本路徑法設(shè)計測試用例的4個步驟首先需要分析被測程序的源代碼,并畫出程序的流程圖。畫出流程圖3.1.1 基本路徑法概述步驟2步驟1步驟3步驟4控制流圖是描述程序控制流的一種圖示方法??刂屏鲌D可以由程序流程圖轉(zhuǎn)化而來。如果測試的源程序代碼簡潔,也可以直接通過分析源程序代碼畫出控制流圖。在畫程序的控制流圖時,使用圓圈表示一條或多條無分支的語句;使用箭頭表示控制流方向。程序中常見的控制流圖如下圖所示。畫出控制流圖3.1.1 基本路徑法概述步驟3步驟1步驟2步驟4計算程序圈復(fù)雜度的方法有3種,具體如下。使用公式計算:V(G)=E-N+2,其中V(G)表示程序的圈復(fù)雜度,E表示控制流圖中邊的數(shù)量,N表示控制流圖中節(jié)點的數(shù)量。使用公式計算:V(G)=P+1,P表示控制流圖中判定節(jié)點的數(shù)量。程序的圈復(fù)雜度數(shù)量等于控制流圖中的區(qū)域數(shù)量。為了演示上述介紹的3種方法,假設(shè)某程序的控制流圖如右圖所示。計算程序的圈復(fù)雜度3.1.1 基本路徑法概述步驟4步驟1步驟2步驟3根據(jù)計算出的程序圈復(fù)雜度導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期結(jié)果。以上一頁中某程序的控制流圖為例,由于圈復(fù)雜度為4,所以可以得到4條獨立的路徑,具體如下。路徑1:1→7。路徑2:1→2→3→7。路徑3:1→2→4→5→8→1→7。路徑4:1→2→4→6→8→1→7。根據(jù)以上4條獨立的路徑即可設(shè)計測試用例,從而確保每一條路徑都能被執(zhí)行。設(shè)計測試用例如何將程序流程圖轉(zhuǎn)化為控制流圖多學(xué)一招將程序流程圖轉(zhuǎn)化為控制流圖時,在順序結(jié)構(gòu)、if條件語句結(jié)構(gòu)、while循環(huán)語句結(jié)構(gòu)、until循環(huán)語句結(jié)構(gòu)和多分支結(jié)構(gòu)語句中,分支的匯聚處需要有一個匯聚節(jié)點。如果判斷條件表達式是由一個或多個邏輯運算符(如or、and)連接的復(fù)合條件表達式,則需要修改為只有單個條件的嵌套判斷。假設(shè)有一個待測試的程序流程圖如右圖所示。3.1.1 基本路徑法概述上一頁中的待測試的程序流程圖中,序號0表示開始,在轉(zhuǎn)化為控制流圖時可以忽略。將待測試的程序流程圖轉(zhuǎn)化為控制流圖后,控制流圖如下圖所示。3.1.1 基本路徑法概述多學(xué)一招

先定一個小目標(biāo)!掌握基本路徑法的使用,能夠使用基本路徑法設(shè)計判斷年份是否為閏年的測試用例3.1.2 實例:判斷年份是否為閏年在白盒測試中,經(jīng)常使用基本路徑法測試程序的代碼。為了讓讀者更好地掌握基本路徑法的使用,下面以判斷閏年問題的C語言程序代碼為例,講解如何通過基本路徑法設(shè)計測試用例。3.1.2 實例:判斷年份是否為閏年當(dāng)年份能夠被4但不能被100整除時為閏年,或者年份能夠被400整除時為閏年,據(jù)此可以設(shè)計判斷輸入的年份是否為閏年的C語言程序代碼,具體代碼如下。通過分析上述代碼畫出程序的流程圖,如下圖所示。3.1.2 實例:判斷年份是否為閏年[單擊查看源碼]畫出程序的控制流圖,如右圖所示。右圖中,一共有10條邊,8個節(jié)點,4個區(qū)域,其中判定節(jié)點有3個,分別是1、3、4,程序的圈復(fù)雜度為4。根據(jù)圈復(fù)雜度可以得到4條獨立的路徑,具體如下。路徑1:1→2→8。路徑2:1→3→4→6→8。路徑3:1→3→4→7→8。路徑4:1→3→5→8。3.1.2 實例:判斷年份是否為閏年根據(jù)上一頁中的4條獨立路徑即可設(shè)計測試用例。判斷閏年問題的測試用例如下表所示。3.1.2 實例:判斷年份是否為閏年測試用例執(zhí)行路徑輸入數(shù)據(jù)預(yù)期結(jié)果test1路徑1year=1999leap=0test2路徑2year=2000leap=1test3路徑3year=1900leap=0test4路徑4year=2020leap=1當(dāng)預(yù)期結(jié)果leap=0時,表示平年;當(dāng)預(yù)期結(jié)果leap=1時,表示閏年。邏輯覆蓋法3.2

先定一個小目標(biāo)!掌握語句覆蓋法的使用,能夠應(yīng)用語句覆蓋法設(shè)計測試用例3.2.1 語句覆蓋語句覆蓋(StatementCoverage)又稱行覆蓋、段覆蓋、基本塊覆蓋,它是最常見的覆蓋方式之一。語句覆蓋的目的是測試程序中的代碼是否被執(zhí)行,它只測試代碼中的執(zhí)行語句,這里的執(zhí)行語句不包括頭文件、注釋、空行等。語句覆蓋在多分支的程序中只能覆蓋某一條路徑,使得該路徑中的每一個語句至少被執(zhí)行一次,不會考慮各種分支組合的情況。3.2.1 語句覆蓋下面結(jié)合一段小程序介紹語句覆蓋中方法的執(zhí)行,程序偽代碼如下。3.2.1 語句覆蓋ifx>0andy<0//條件1

z=z-(x-y)ifx>2orz>0//條件2

z=z+(x+y)上述代碼中,and表示邏輯運算&&,or表示邏輯運算||。第1~2行代碼表示如果x>0成立并且y<0成立,則執(zhí)行z=z-(x-y)語句;第3~4行代碼表示如果x>2成立或者z>0成立,則執(zhí)行z=z+(x+y)語句。根據(jù)程序偽代碼可以畫出流程圖,程序執(zhí)行的流程圖如右圖所示。根據(jù)程序執(zhí)行流程圖中標(biāo)示的語句執(zhí)行路徑設(shè)計測試用例,具體如下。3.2.1 語句覆蓋test1:x=3y=-1z=2執(zhí)行上述測試用例,程序的運行路徑為a→c→e??梢钥闯龀绦蛑衋→c→e路徑上的每個語句都能被執(zhí)行,但是語句覆蓋無法全面反映多分支的邏輯,僅僅執(zhí)行一次不能進行全面覆蓋。因此,語句覆蓋是弱覆蓋方法。

先定一個小目標(biāo)!掌握判定覆蓋法的使用,能夠應(yīng)用判定覆蓋法設(shè)計測試用例3.2.2 判定覆蓋判定覆蓋(DecisionCoverage)又稱為分支覆蓋,其原則是設(shè)計足夠多的測試用例,在測試過程中保證每個判定條件至少有一次為真值,有一次為假值。判定覆蓋的作用是使真假分支均被執(zhí)行,雖然判定覆蓋比語句覆蓋測試能力強,但仍然具有和語句覆蓋一樣的單一性。3.2.2 判定覆蓋判定覆蓋測試用例如下表所示。3.2.2 判定覆蓋測試用例xyz執(zhí)行語句路徑test12-11a→c→dtest2-31-1a→b→dtest33-15a→c→etest4111a→b→e判定覆蓋語句一般是由多個邏輯條件組成的,如果僅僅判斷測試程序執(zhí)行的最終結(jié)果而忽略每個條件的取值,必然會遺漏部分測試路徑。因此,判定覆蓋也屬于弱覆蓋。

先定一個小目標(biāo)!掌握條件覆蓋法的使用,能夠應(yīng)用條件覆蓋法設(shè)計測試用例3.2.3 條件覆蓋條件覆蓋(ConditionCoverage)是指設(shè)計足夠多的測試用例,使判定語句中的每個邏輯條件取真值與取假值至少出現(xiàn)一次。例如,對于判定語句if(a>1orc<0)中存在a>1和c<0這2個邏輯條件,設(shè)計條件覆蓋測試用例時,要保證a>1、c<0的真值、假值至少出現(xiàn)一次。下面以程序執(zhí)行的流程圖及其程序為例,設(shè)計條件覆蓋測試用例,在該程序中,有2個判定語句,每個判定語句有2個邏輯條件,共有4個邏輯條件,使用標(biāo)識符標(biāo)記各個邏輯條件取真值與取假值的情況,條件覆蓋判定條件如下表所示。3.2.3 條件覆蓋條件1條件標(biāo)記條件2條件標(biāo)記x>0S1x>2S3x<=0-S1x<=2-S3y<0S2z>0S4y>=0-S2z<=0-S4以程序執(zhí)行的流程圖為例,使用條件覆蓋則可以設(shè)計3條測試用例,條件覆蓋測試用例如下表所示。3.2.3 條件覆蓋測試用例xyz執(zhí)行語句路徑test1315a→b→etest2-31-1a→b→dtest33-11a→c→e

先定一個小目標(biāo)!掌握判定-條件覆蓋法的使用,能夠應(yīng)用判定-條件覆蓋法設(shè)計測試用例3.2.4 判定-條件覆蓋判定-條件覆蓋(Condition/DecisionCoverage)要求設(shè)計較多的測試用例,使得判定語句中所有條件的可能取值至少出現(xiàn)一次,同時,所有判定語句的可能結(jié)果也至少出現(xiàn)一次。例如,對于判定語句if(a>1andc<1),該判定語句有a>1、c<1這2個條件,則在設(shè)計測試用例時,要保證a>1和c<1這2個條件取真值、假值至少一次,同時,判定語句if(a>1andc<1)取真值、假值也至少出現(xiàn)一次。判定-條件覆蓋彌補了判定覆蓋和條件覆蓋的不足之處。3.2.4 判定-條件覆蓋根據(jù)判定-條件覆蓋原則,以3.2.2小節(jié)中的程序執(zhí)行的流程圖對應(yīng)的程序為例設(shè)計判定-條件覆蓋測試用例。判定-條件覆蓋測試用例如下表所示。3.2.4 判定-條件覆蓋測試用例xyz條件標(biāo)記條件1條件2執(zhí)行路徑test1315S1、-S2、S3、S401a→b→etest2-31-1-S1、-S2、-S3、-S400a→b→dtest33-11S1、S2、S3、S411a→c→etest42-11S1、S2、-S3、-S410a→c→d

先定一個小目標(biāo)!掌握條件組合覆蓋法的使用,能夠應(yīng)用條件組合覆蓋法設(shè)計測試用例3.2.5 條件組合覆蓋條件組合覆蓋(MultipleConditionCoverage)是指設(shè)計足夠多的測試用例,使判定語句中每個條件的所有可能情況至少出現(xiàn)一次,并且每個判定語句本身的判定結(jié)果也至少出現(xiàn)一次。它與判定-條件覆蓋的區(qū)別是,它不是簡單地要求每個條件都出現(xiàn)真與假2種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都至少出現(xiàn)一次。3.2.5 條件組合覆蓋以3.2.2小節(jié)中的程序執(zhí)行的流程圖及其程序為例,該程序中共有4個條件:x>0、y<0、x>2、z>0。下面繼續(xù)使用S1、S2、S3、S4標(biāo)記這4個條件成立,用-S1、-S2、-S3、-S4標(biāo)記這4個條件不成立。S1與S2屬于一個判定語句,兩兩組合有4種情況,如下所示。S1,S2S1,-S2-S1,S2-S1,-S2。同樣,S3與S4屬于一個判定語句,兩兩組合也有4種情況。2個判定語句的組合情況各有4種。在執(zhí)行程序時,只要能分別覆蓋2個判定語句的組合情況即可,因此,針對3.2.2小節(jié)中的程序執(zhí)行的流程圖的程序,條件組合覆蓋至少要設(shè)計4個測試用例。3.2.5 條件組合覆蓋條件組合覆蓋的4種情況如下表所示。3.2.5 條件組合覆蓋序號組合含義1S1、S2、S3、S4x>0成立,y<0成立,x>2成立,z>0成立2S1、-S2、S3、-S4x>0成立,y<0不成立,x>2成立,z>0不成立3-S1、S2、-S3、S4x>0不成立,y<0成立,x>2不成立,z>0成立4-S1、-S2、-S3、-S4x>0不成立,y<0不成立,x>2不成立,z>0不成立條件組合覆蓋測試用例3.2.5 條件組合覆蓋序號組合測試用例條件1條件2覆蓋路徑xyztest1S1、S2、S3、S43-1511a→c→etest2-S1、S2、-S3、S4-5-2101a→b→etest3S1、-S2、S3、-S461-201a→b→etest4-S1、-S2、-S3、-S4-31-100a→b→d

先定一個小目標(biāo)!掌握三角形的邏輯覆蓋,能夠設(shè)計三角形程序判定覆蓋測試用例3.2.6 實例:三角形的邏輯覆蓋在第2章的黑盒測試中使用了決策表法判斷三角形的類型,根據(jù)三角形三邊關(guān)系可知可能出現(xiàn)4種情況:不構(gòu)成三角形、一般三角形、等腰三角形、等邊三角形。據(jù)此實現(xiàn)一個判斷三角形的程序,偽代碼如下。3.2.6 實例:三角形的邏輯覆蓋intABC

//三角形的三個邊 if((A+B>C)&&(A+C>B)&&(B+C)>A) //是否滿足三角形構(gòu)成條件

if((A==B)&&(B==C)) //等邊三角形

等邊三角形

elseif((A==B)||(B==C)||(A==C)) //等腰三角形

等腰三角形

else

//一般三角形

一般三角形else

不是三角形end根據(jù)上述代碼可以畫出流程圖,三角形程序流程圖如下圖所示。3.2.6 實例:三角形的邏輯覆蓋繪制程序的控制流圖,如下圖表示。3.2.6 實例:三角形的邏輯覆蓋3.2.6 實例:三角形的邏輯覆蓋編號測試用例路徑預(yù)期結(jié)果ABCtest16661→2→3→4→11等邊三角形test26681→2→5→6→11等腰三角形test33451→2→7→8→11一般三角形test43361→9→10→11不構(gòu)成三角形三角形程序判定覆蓋測試用例程序插樁法3.3

先定一個小目標(biāo)!了解目標(biāo)代碼插樁法的原理,能夠描述目標(biāo)代碼插樁法的3種執(zhí)行模式3.3.1 目標(biāo)代碼插樁目標(biāo)代碼插樁是指向目標(biāo)代碼(即二進制代碼)插入測試代碼,以獲取程序運行信息的測試方法,也稱為動態(tài)程序分析方法。在進行目標(biāo)代碼插樁之前,測試人員要對目標(biāo)代碼的邏輯結(jié)構(gòu)進行分析,從而確認需要插樁的位置。目標(biāo)代碼插樁對程序運行時的內(nèi)存監(jiān)控、指令跟蹤、錯誤檢測等有著重要意義。相比于邏輯覆蓋法,目標(biāo)代碼插樁在測試過程中不需要重新編譯代碼或鏈接程序,并且目標(biāo)代碼的格式與具體的編程語言無關(guān),主要與操作系統(tǒng)相關(guān),因此目標(biāo)代碼插樁被廣泛使用。3.3.1 目標(biāo)代碼插樁下面對目標(biāo)代碼插樁的原理、方式、執(zhí)行模式和工具進行介紹,具體內(nèi)容如下。3.3.1 目標(biāo)代碼插樁目標(biāo)代碼插樁的原理目標(biāo)代碼插樁法的原理是在程序運行平臺和底層操作系統(tǒng)之間建立中間層,通過中間層檢查執(zhí)行程序、修改指令,開發(fā)人員、軟件分析工程師等對運行的程序進行觀察,判斷程序是否被惡意攻擊或者出現(xiàn)異常行為,從而提高程序的整體質(zhì)量。3.3.1 目標(biāo)代碼插樁2.

目標(biāo)代碼插樁的兩種方式由于目標(biāo)代碼是可執(zhí)行的二進制代碼,所以目標(biāo)代碼的插樁可分為兩種方式。第1種方式對未運行的目標(biāo)代碼插樁,首先從頭到尾插入測試代碼,然后執(zhí)行程序。這種方式適用于需要實現(xiàn)完整系統(tǒng)或仿真(模擬真實系統(tǒng))進行的代碼覆蓋測試。向正在運行的程序插入測試代碼,用來檢測程序在特定時間的運行狀態(tài)信息。第2種方式3.3.1 目標(biāo)代碼插樁3.

目標(biāo)代碼插樁的執(zhí)行模式目標(biāo)代碼插樁具有以下3種執(zhí)行模式。即時模式將修改部分的二進制代碼以副本的形式在新的內(nèi)存區(qū)域中,在測試時僅執(zhí)行修改部分的目標(biāo)代碼。解釋模式測試人員插入的測試代碼作為目標(biāo)代碼指令的解釋語言。每當(dāng)執(zhí)行一條目標(biāo)代碼指令時,程序就會在測試代碼中查找并執(zhí)行相應(yīng)的替代指令。探測模式探測模式使用新指令覆蓋舊指令進行測試,這種模式在某些體系結(jié)構(gòu)(如x86體系結(jié)構(gòu))中比較適用。3種執(zhí)行模式Just-In-TimeModeInterpretationModeProbeMode3.3.1 目標(biāo)代碼插樁4.

目標(biāo)代碼插樁工具常見的目標(biāo)代碼插樁工具主要有以下2種。(1)Pin-ADynamicBinaryInstrumentationTool(Pin)Pin是由Intel公司開發(fā)的免費框架,它可以用于二進制代碼檢測與源代碼檢測。Pin支持IA-32、x86-64、MIC(ManyIntegratedCore,眾核架構(gòu))體系,可以運行在Linux平臺、Windows平臺和Android平臺上。Pin具有基本塊分析器、緩存模擬器、指令跟蹤生成器等模塊,使用該工具可以創(chuàng)建程序分析工具、監(jiān)視程序運行的狀態(tài)信息等。Pin非常穩(wěn)定可靠,常用于大型程序測試,(如Office辦公軟件、虛擬現(xiàn)實引擎等)測試。(2)DynamoRIODynamoRIO是一個受許可的動態(tài)二進制代碼檢測框架,作為應(yīng)用程序和操作系統(tǒng)的中間平臺,它可以在程序執(zhí)行時實現(xiàn)程序任何部分的代碼轉(zhuǎn)換。DynamoRIO支持IA-32、x86-64、AArch64體系,可以運行在Linux平臺、Windows平臺和Android平臺上。DynamoRIO包含內(nèi)存調(diào)試工具、內(nèi)存跟蹤工具、指令跟蹤工具等。

先定一個小目標(biāo)!掌握源代碼插樁法的使用,能夠應(yīng)用探針代碼測試程序3.3.2 源代碼插樁源代碼插樁是指對源文件進行完整的詞法、語法分析后,確認插樁的位置,植入探針代碼(測試代碼)。相比目標(biāo)代碼插樁,源代碼插樁具有針對性和更高的精確性,源代碼插樁模型如下圖所示。3.3.2 源代碼插樁下面通過一個小案例來講解源代碼插樁,該案例是一個除法運算,具體代碼如下所示。程序運行后,提示輸入被除數(shù)和除數(shù),在輸入除數(shù)后,程序宏函數(shù)ASSERT(y)判斷除數(shù)是否為0,若除數(shù)為0則輸出錯誤信息,程序運行結(jié)束;若除數(shù)不為0,則進行除法運算并輸出計算結(jié)果。3.3.2 源代碼插樁[單擊查看源碼]根據(jù)除法運算程序設(shè)計測試用例,除法運算測試用例如下表所示。3.3.2 源代碼插樁測試用例測試數(shù)據(jù)預(yù)期結(jié)果test11,11test21,-1-1test3-1,-11test4-1,1-1test51,0錯誤test6-1,0錯誤test70,0錯誤test80,10test90,-10程序的目標(biāo)代碼插樁與源代碼插樁測試方法有效提高了代碼測試覆蓋率,但是使用插樁測試方法會出現(xiàn)代碼膨脹、執(zhí)行效率低下、HeisenBugs等問題。在一般情況下,插樁后的代碼膨脹率在20%~40%,甚至能達到100%,導(dǎo)致插樁測試失敗。3.3.2 源代碼插樁HeisenBugs即海森堡Bug,它是一種軟件缺陷,這種缺陷的重現(xiàn)率很低,當(dāng)開發(fā)人員試圖研究時,它會消失或改變。實際軟件測試中,這種缺陷也比較常見,例如,測試人員測試到一個缺陷并提交給開發(fā)人員后,開發(fā)人員按照測試人員提交的缺陷報告中的步驟執(zhí)行時,卻無法重現(xiàn)缺陷,其原因是缺陷已經(jīng)消失或者出現(xiàn)了其他缺陷。小提示:HeisenBugs黑盒測試和白盒測試異同多學(xué)一招3.3.2 源代碼插樁VS黑盒測試黑盒測試可以發(fā)現(xiàn)以下3種類型的缺陷。外部邏輯功能缺陷。兼容性錯誤。性能問題。白盒測試白盒測試常用于以下2種情況。源程序中含有多個分支,在設(shè)計測試用例時要盡可能覆蓋所有分支,提高測試覆蓋率。檢查內(nèi)存泄漏。1.

黑盒測試和白盒測試比較黑盒測試過程中不用考慮程序內(nèi)部的邏輯結(jié)構(gòu),僅僅需要驗證程序外部功能是否符合用戶實際需求。3.3.2 源代碼插樁2.

測試階段黑盒測試與白盒測試在不同的測試階段的使用情況也不同,兩者在不同階段的使用情況如下表所示。測試名稱測試對象測試方法單元測試模塊中的功能白盒測試集成測試模塊間的接口黑盒測試、白盒測試系統(tǒng)測試整個系統(tǒng)(軟件、硬件)黑盒測試驗收測試整個系統(tǒng)(軟件、硬件、用戶體驗)黑盒測試多學(xué)一招

先定一個小目標(biāo)!掌握求3個數(shù)的中間值的案例,能夠使用源代碼插樁求3個數(shù)的中間值3.3.3 實例:求3個數(shù)的中間值下面通過一個案例對源代碼插樁進行講解,以加深讀者對源代碼插樁的理解。該案例要求用鍵盤輸入3個數(shù)并求中間值,源程序代碼如下。測試人員通過寫入的文件可以查看源程序執(zhí)行的過程,插樁后的代碼如下。3.3.3 實例:求3個數(shù)的中間值[單擊查看源碼][單擊查看源碼]源代碼插樁完成之后,根據(jù)3個數(shù)的不同組合方式設(shè)計測試用例,具體測試用例如下表所示。3.3.3 實例:求3個數(shù)的中間值測試用例測試數(shù)據(jù)預(yù)期結(jié)果test11,1,21test21,2,32

溫馨提示

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

評論

0/150

提交評論