




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
白盒測試方法frank老師在線學(xué)習(xí)平臺(tái):YY平臺(tái)白盒測試1、
白盒測試的定義2、白盒測試概述3、
程序結(jié)構(gòu)分析4、
邏輯覆蓋5、
其他白盒測試方法簡單介紹6、
白盒測試的實(shí)際應(yīng)用白盒測試定義白盒測試是根據(jù)被測程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測試用例的一種測試方法,達(dá)到覆蓋語句、判定、路徑等,白盒測試方法又稱為結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試.
輸入輸出被測對像白盒測試概述把測試對象看做一個(gè)透明的盒子白盒測試是根據(jù)被測程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測試用例并完成測試的一種測試方法白盒測試使用被測單元內(nèi)部如何工作的信息,允許測試人員對程序內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計(jì)和選擇測試用例,對程序的邏輯路徑進(jìn)行測試?;谝粋€(gè)應(yīng)用代碼的內(nèi)部邏輯知識(shí),測試是基于覆蓋全部代碼、分支、路徑、條件。白盒測試主要目的保證一個(gè)模塊中的所有獨(dú)立路徑至少被執(zhí)行一次;對所有的邏輯值均需要測試真、假兩個(gè)分支;對程序進(jìn)行邊界檢查(常見的如數(shù)據(jù)結(jié)構(gòu)越界檢查);檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。白盒測試發(fā)展(1)白盒測試發(fā)展(2)“是否評估測試效果”指是否有覆蓋率或其它評估測試效果的指標(biāo),“是否自動(dòng)測試”指是否形式化描述測試操作并將它用于再次測試,“是否持續(xù)測試”指是否以按持續(xù)集成的模式開展測試,“是否調(diào)測一體”指是否將測試設(shè)計(jì)高效的融入產(chǎn)品編碼與調(diào)試的日常實(shí)踐之中。白盒測試發(fā)展(3)第1代白盒測試在測試發(fā)展初期,測試工具很不成熟,人們通常以單步調(diào)試代替測試,或采用assert斷言、print語句等簡單方式的組織測試體系,即我們所謂的第1代白盒測試,這一時(shí)期的測試是半手工的,沒實(shí)現(xiàn)自動(dòng)化測試效果也嚴(yán)重依賴測試者(或者調(diào)試者)的個(gè)人能力,缺少統(tǒng)一規(guī)范的評判標(biāo)準(zhǔn)。白盒測試發(fā)展(4)第1代白盒測試方法存在嚴(yán)重缺陷,主要有:測試過程難以重用,成功經(jīng)驗(yàn)無法拷貝,測試結(jié)果也難以評估并用于改進(jìn),這些對于團(tuán)隊(duì)運(yùn)作是非常致命的白盒測試發(fā)展(5)第2代白盒測試,將測試操作改用一種形式化語言(通常稱為測試腳本)來表述,腳本可以組合成用例,用例可組合成測試集,用例與測試集再統(tǒng)一到測試工程中管理,把測試腳本保存到文件,重用問題解決了。另外,代碼覆蓋率功能使測試結(jié)果可以評估,能直觀的看到哪些代碼或分支未被覆蓋,然后有針對性的增加測試設(shè)計(jì)。白盒測試發(fā)展(6)目前市面上有大量商用工具,如RTRT、CodeTest、VisualTester、C++Tester等都屬于這第2代白盒測試工具。白盒測試發(fā)展(7)第2代白盒測試解決了重復(fù)測試問題,但沒解決持續(xù)測試問題。簡單來說,重復(fù)測試使測試操作能以規(guī)范格式記錄,當(dāng)被測對象沒變化(或變化很少)時(shí),測試用例是可重用的,但如果源碼大幅調(diào)整(甚至重構(gòu)),或者按迭代模式不停追加新功能時(shí),如何維持用例同步增長,并與源碼一起同步更新,已經(jīng)不是簡單的增強(qiáng)用例復(fù)用能力就能解決的。因?yàn)榇a更新與用例更新交織進(jìn)行,測試用例與被測源碼一樣對等的成為日常工作對象,必然促使原有工作模式與測試方法產(chǎn)生變革,概括而言,白盒測試過程要從一次測試模式過渡到持續(xù)測試模式。白盒測試發(fā)展(8)第3代白盒測試工具以xUnit為代表,包括JUnit、DUnit、CppUnit等區(qū)別第2代方法與第3代方法,主要是測試?yán)砟钌喜顒e第4代白盒測試嘗試解決軟件測試的深層次矛盾:測試的投入產(chǎn)出比問題。相對第3代方法,增加了將測試過程(包括測試設(shè)計(jì)、執(zhí)行與改進(jìn))高效的融入開發(fā)全過程第4代白盒測試方法4GWM3個(gè)關(guān)鍵領(lǐng)域的9項(xiàng)關(guān)鍵特征第一關(guān)鍵域:在線測試1、在線測試驅(qū)動(dòng)2、在線腳本樁3、在線測試用例設(shè)計(jì)、運(yùn)行,及評估改進(jìn)第二關(guān)鍵域:灰盒調(diào)測4、基于調(diào)用接口5、調(diào)試即測試6、集編碼、調(diào)試、測試于一體第三關(guān)鍵域:持續(xù)測試7、測試設(shè)計(jì)先行8、持續(xù)保障信心9、重構(gòu)測試設(shè)計(jì)在線測試所謂在線測試,是指被測程序啟動(dòng)后,用例在線設(shè)計(jì)、調(diào)試、運(yùn)行,運(yùn)行結(jié)果在線查看的測試方法。因?yàn)樗袦y試操作都在線進(jìn)行,測試用例不必編譯鏈接,被測程序也不用復(fù)位重起,被測環(huán)境(被測系統(tǒng)的變量、函數(shù)等屬性)在線可查看,所以該測試模式非常高效,另外,各測試步驟所見即所得,人性化的操作過程很容易被廣大開發(fā)人員接受。腳本語言具有在線更新功能,比如定義一個(gè)腳本函數(shù),調(diào)用一次后,發(fā)現(xiàn)某個(gè)地方處理不對,于是重寫這個(gè)函數(shù),然后在線的更新這個(gè)函數(shù)定義。測試覆蓋標(biāo)準(zhǔn)白盒測試主要方法1、邏輯驅(qū)動(dòng)測試語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋2、基本路徑測試邏輯驅(qū)動(dòng)測試語句覆蓋:語句覆蓋就是設(shè)計(jì)若干個(gè)測試用例,運(yùn)行被測試程序,使得每一條可執(zhí)行語句至少執(zhí)行一次判定覆蓋(也稱為分支覆蓋):設(shè)計(jì)若干個(gè)測試用例,運(yùn)行所測程序,使程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次;條件覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行所測程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次;判定/條件覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行所測程序,使程序中每個(gè)判斷的每個(gè)條件的所有可能取值至少執(zhí)行一次,并且每個(gè)可能的判斷結(jié)果也至少執(zhí)行一次,換句話說,即是要求各個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次;條件組合覆蓋:設(shè)計(jì)足夠多的測試用例,運(yùn)行所測程序,使程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次;基本路徑測試設(shè)計(jì)足夠多的測試用例,運(yùn)行所測程序,要覆蓋程序中所有可能的路徑。這是最強(qiáng)的覆蓋準(zhǔn)則。但在路徑數(shù)目很大時(shí),真正做到完全覆蓋是很困難的,必須把覆蓋路徑數(shù)目壓縮到一定限度。在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例語句覆蓋語句覆蓋”是一個(gè)比較弱的測試標(biāo)準(zhǔn),它的含義是:選擇足夠的測試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次。float
M(floatA,floatB,floatX){
if((A>1)&&(B==0)){
X=X/A;}
elseif((A==2)||(X>1)){
X=X+1;}returnX;}語句覆蓋語句覆蓋”是一個(gè)比較弱的測試標(biāo)準(zhǔn),它的含義是:選擇足夠的測試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次。float
M(floatA,floatB,floatX){
if((A>1)&&(B==0)){
X=X/A;}
elseif((A==2)||(X>1)){
X=X+1;}returnX;}語句覆蓋為使程序中每個(gè)語句至少執(zhí)行一次,只需設(shè)計(jì)一個(gè)能通過路徑ace的例子就可以了,例如選擇輸入數(shù)據(jù)為:
A=2,B=0,X=3就可達(dá)到“語句覆蓋”標(biāo)準(zhǔn)語句覆蓋voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;//語句塊1j=sqrt(k);}if((x==4)||(y>5)){j=x*y+10;//語句塊2}j=j%3;//語句塊3}語句覆蓋為了測試語句覆蓋率只要設(shè)計(jì)一個(gè)測試用例就可以把三個(gè)執(zhí)行語句塊中的語句覆蓋了。測試用例輸入為:x=4、y=5、z=5程序執(zhí)行的路徑是:abd判定覆蓋判定覆蓋又稱為分支覆蓋,執(zhí)行足夠的測試用例,使得程序中的每一個(gè)判定取真分支和取假分支至少都通過一次。對例1的程序,如果設(shè)計(jì)兩個(gè)例子,使它們能通過路徑ace和abd,或者通過路徑acd和abe,就可達(dá)到“判定覆蓋”標(biāo)準(zhǔn),為此,可以選擇輸入數(shù)據(jù)為:①A=3,B=0,X=1(沿路徑acd執(zhí)行);
②A=2,B=1,X=3(沿路徑abe執(zhí)行)
判定覆蓋A=3,B=0,X=1(沿路徑acd執(zhí)行)
A=2,B=1,X=3(沿路徑abe執(zhí)行)
判定覆蓋對于例2的程序,如果設(shè)計(jì)兩個(gè)測試用例則可以滿足條件覆蓋的要求。測試用例的輸入為:x=4、y=5、z=5x=2、y=5、z=5上面的兩個(gè)測試用例雖然能夠滿足條件覆蓋的要求,但是也不能對判斷條件進(jìn)行檢查,例如把第二個(gè)條件y>5錯(cuò)誤的寫成y<5,、上面的測試用例同樣滿足了判定覆蓋。
條件覆蓋“條件覆蓋”的含義是:執(zhí)行足夠的測試用例,使得判定中的每個(gè)條件的可能取值至少滿足一次。例1的程序有四個(gè)條件:
A>1、B=0、A=2、X>1為了達(dá)到“條件覆蓋”標(biāo)準(zhǔn),需要執(zhí)行足夠的測試用例使得在a點(diǎn)有:
A>1、A≤1、B=0、B≠0等各種結(jié)果出現(xiàn),以及在b點(diǎn)有:
A=2、A≠2、X>1、X≤1等各種結(jié)果出現(xiàn)?,F(xiàn)在只需設(shè)計(jì)以下兩個(gè)測試用例就可滿足這一標(biāo)準(zhǔn):①A=2,B=0,X=4
(沿路徑ace執(zhí)行);②A=1,B=1,X=1
(沿路徑abd執(zhí)行)。
條件覆蓋A=2,B=0,X=4
(沿路徑ace執(zhí)行)A=1,B=1,X=1
(沿路徑abd執(zhí)行)
條件覆蓋條件覆蓋對例2中的所有條件取值加以標(biāo)記。對于第一個(gè)判斷:條件x>3取真值為T1,取假值為F1條件z<10取真值為T2,取假值為F2對于第二個(gè)判斷:條件x=4取真值為T3,取假值為F3條件y>5取真值為T4,取假值為F4條件覆蓋可設(shè)計(jì)如下測試用例測試用例通過路徑條件取值覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=5aceF1、T2、F3、F4cex=4、y=5、z=15acdT1、F2、T3、F4cd條件覆蓋如對例2設(shè)計(jì)了下面的測試用例,則雖然滿足了條件覆蓋,但只覆蓋了第一個(gè)條件的取假分支和第二個(gè)條件的取真分支,不滿足分支覆蓋的要求。測試用例
通過路徑
條件取值覆蓋分支x=2、y=6、z=5acdF1、T2、F3、T4cdx=4、y=5、z=15acdT1、F2、T3、F4cd判定/條件覆蓋判定/條件覆蓋”,它的含義是:執(zhí)行足夠的測試用例,使得分支中每個(gè)條件取到各種可能的值,并使每個(gè)分支取到各種可能的結(jié)果。對例1的程序,前面的兩個(gè)例子①A=2,B=0,X=4(沿ace路)
②A=1,B=1,X=1(沿abd路徑)
是滿足這一標(biāo)準(zhǔn)的。判定/條件覆蓋對例2,根據(jù)定義只需設(shè)計(jì)以下兩個(gè)測試用例便可以覆蓋8個(gè)條件值以及4個(gè)判斷分支。測試用例通過路徑條件取值覆蓋分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=11aceF1、F2、F3、F4ce條件組合覆蓋它的含義是:執(zhí)行足夠的例子,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。顯然,滿足“條件組合覆蓋”的測試用例是一定滿足“判定覆蓋”、“條件覆蓋”和“判定/條件覆蓋”的。例1的程序,我們需要選擇適當(dāng)?shù)睦樱沟孟旅?種條件組合都能夠出現(xiàn):1)A>1,B=0
2)
A>1,B≠03)
A≤1,B=0 4)A≤1,B≠05)A=2,X>1 6)A=2,X≤17)A≠2,X>1 8)A≠2,X≤15)、6)、7)、8)四種情況是第二個(gè)IF語句的條件組合,而X的值在該語句之前是要經(jīng)過計(jì)算的,所以還必須根據(jù)程序的邏輯推算出在程序的入口點(diǎn)X的輸入值應(yīng)是什么。條件組合覆蓋下面設(shè)計(jì)的四個(gè)例子可以使上述8種條件組合至少出現(xiàn)一次:①A=2,B=0,X
溫馨提示
- 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨文化下的節(jié)日酒店?duì)I銷策略研究與實(shí)踐
- 金融服務(wù)金融服務(wù)的標(biāo)準(zhǔn)化規(guī)范與監(jiān)管
- 長尾關(guān)鍵詞在提升品牌影響力中的價(jià)值
- 金融投資中的財(cái)務(wù)分析技巧與策略
- 超聲技術(shù)在醫(yī)療領(lǐng)域的教育價(jià)值挖掘
- 財(cái)務(wù)風(fēng)險(xiǎn)管理與企業(yè)社會(huì)責(zé)任
- 金融科技下的企業(yè)財(cái)務(wù)管理創(chuàng)新
- 專題20 簡單實(shí)驗(yàn)方案的設(shè)計(jì)與評價(jià)【考點(diǎn)精講】-中考化學(xué)考點(diǎn)總復(fù)習(xí)(原卷版)
- 財(cái)務(wù)管理軟件應(yīng)用提升企業(yè)財(cái)務(wù)效率的秘訣
- 質(zhì)量風(fēng)險(xiǎn)管理基礎(chǔ)與實(shí)施
- 非煤露天礦山風(fēng)險(xiǎn)辨識(shí)與評估及風(fēng)險(xiǎn)控制
- 2022版義務(wù)教育(物理)課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
- AIB(2022版)統(tǒng)一檢查標(biāo)準(zhǔn)-前提方案與食品安全程序
- 網(wǎng)絡(luò)安全技術(shù)服務(wù)方案
- 地鐵站務(wù)員職業(yè)發(fā)展規(guī)劃
- 統(tǒng)編版小學(xué)語文一年級下冊全冊教學(xué)課件(2024年春季版)
- 醫(yī)療器械經(jīng)營質(zhì)量管理制度范本
- 《國家衛(wèi)生統(tǒng)計(jì)網(wǎng)絡(luò)直報(bào)系統(tǒng)》數(shù)據(jù)填報(bào)員操作指南V1.2
- 危險(xiǎn)性較大分部分項(xiàng)工程安全專項(xiàng)施工方案專家論證審查表
- 02區(qū)域分析與區(qū)域規(guī)劃(第三版)電子教案(第二章)
- 泡沫鉆井技術(shù)
評論
0/150
提交評論