白盒測試用例設計技術_第1頁
白盒測試用例設計技術_第2頁
白盒測試用例設計技術_第3頁
白盒測試用例設計技術_第4頁
白盒測試用例設計技術_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

內容提要靜態(tài)白盒法侵入式法路徑覆蓋法基本路徑法定義/使用法程序片法白盒測試的其他方法白盒測試概念白盒測試也稱結構測試或邏輯驅動測試,通過了解軟件系統(tǒng)的內部工作過程,設計測試用例來檢測程序內部動作是否按照規(guī)格說明書規(guī)定的正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作。白盒測試旨在使測試充分地覆蓋軟件系統(tǒng)的內部結構,并以軟件結構中的某些元素是否都已得到測試為準則來判斷測試的充分性。目前,比較成熟的白盒測試技術方法有靜態(tài)白盒法、侵入式法、控制流圖法、基路徑法、數(shù)據(jù)定義使用法、程序片法。內容提要靜態(tài)白盒法

侵入式法路徑覆蓋法基本路徑法定義/使用法程序片法白盒測試的其他方法靜態(tài)白盒法靜態(tài)白盒測試是在不執(zhí)行的條件下有條理地仔細審查軟件設計、體系結構和代碼,從而找出軟件缺陷的過程。好處:盡早發(fā)現(xiàn)軟件缺陷。為黑盒測試員提供思路。靜態(tài)白盒測試法分類靜態(tài)白盒測試法一般根據(jù)審查的嚴格程度分為三種:同行評審走查評審同行評審也稱為伙伴審查,這種方法大體類似于“如果你給我看你的,我也給你看我的”類型的討論。同行評審常常僅在編寫代碼或設計體系結構的程序員,以及充當審查者的其他一兩個程序員和測試員之間進行。走查走查是正式、嚴格、具有深度的技術評審,以便盡可能準確地確定問題之所在。走查過程的目的:在軟件開發(fā)過程中盡可能早地發(fā)現(xiàn)問題。確保對重要部分達成一致意見。評審評審是最正式的審查類型,具有高度組織化,要求每一個參與者都接受訓練。評審與同行評審和走查的不同之處在于陳述代碼的人——陳述者或者宣讀者——不是原來的程序員。這就迫使他們學習和了解要陳述的材料,從而有可能在檢驗會議上提出不同的看法和解釋。其余的參與者稱為評審員,其職責是從不同的角度,例如用戶、測試員或者產品支持人員的角度審查代碼。這有助于對產品的全面審查,通??梢哉页霾煌能浖毕荨U匍_評審會議之后,要準備一份書面報告,明確解決問題所必需重做的工作。然后程序員進行修改,由會議協(xié)調員驗證修改結果。根據(jù)修改的范圍和規(guī)模以及軟件的關鍵程序,可能還需要進行重新評審,以便找到其余的軟件缺陷。評審經證實是所有軟件交付過程中,特別是設計文檔和代碼中發(fā)現(xiàn)軟件缺陷非常有效的方法。靜態(tài)白盒法應該具備的基本要素確定問題。靜態(tài)白盒測試的目的是找出軟件的問題,全部的批評應該直指代碼或設計,而不是其設計實現(xiàn)者。參與者之間不應該相互指責,應該把自我意識、個人情緒和敏感丟在一邊。遵守規(guī)則。靜態(tài)白盒測試要遵守一套固定的規(guī)則,如哪些內容要做評價等。其重要性在于參與者了解自己的角色、目標是什么。這有助于使審查進展的更加順利。充分準備。每一個參與者都盡自己的力量為審查做準備。根據(jù)審查的類型,參與者可能扮演不同的角色。他們需要了解自己的責任和義務,并積極參與審查。在審查過程中找出的問題大部分是在準備期間發(fā)現(xiàn)的,而不是實際審查期間。編寫報告。審查小組必須做出審查結果的書面總結報告,并使報告便于開發(fā)小組的成員使用。內容提要靜態(tài)白盒法侵入式法

路徑覆蓋法基本路徑法定義/使用法程序片法白盒測試的其他方法侵入式法侵入式法白盒測試指的是在軟件測試過程中需要對軟件系統(tǒng)的代碼進行修改的測試方法。按照修改的目的不同分為:程序插樁測試、斷言測試和缺陷種植法。程序插樁技術借助往被測程序中插入操作,來實現(xiàn)測試目的的方法。在調試程序中,常常要在程序中插入一些打印語句。通過打印信息了解執(zhí)行過程中程序的一下動態(tài)特性。程序插樁圖插樁程序中插入的語句設計插樁程序要考慮的問題探測哪些信息;在程序的什么部位設置探測點;需要設置多少個探測點。斷言測試斷言測試用于檢查在程序運行過程出現(xiàn)的一些本“不應該”發(fā)生的情況。也就是在一個應該正確的地方,加一條判斷來驗證程序運行時,它是否真正如當初預料的那樣,具有預期的正確性。斷言測試就是在程序中插入斷言,插入斷言的根本目的是用于幫助程序的調試與排錯,因此本質上它是屬于測試代碼,是一種特殊的插樁語句,而不是屬于真正的應用程序模塊的一部分。缺陷種植測試

是一種用來估計駐留在程序中的缺陷數(shù)量的技術。工作原理是向一個軟件中“種植”缺陷,然后運行測試集,以檢查發(fā)現(xiàn)了多少個種植的缺陷,還有多少個種植的缺陷沒有被發(fā)現(xiàn),以及已經發(fā)現(xiàn)了多少個新的非種植的缺陷。然后就可以預測殘留的缺陷數(shù)量。案例

如果種植了100個種子缺陷,而在測試中只找到75個種植的缺陷,那么種子發(fā)現(xiàn)率為75%。如果已經發(fā)現(xiàn)了450個真實的缺陷,那么可以通過種子發(fā)現(xiàn)率,推出這450個真實的缺陷只代表了現(xiàn)在存在所有真實缺陷的75%。那么,真是的缺陷總數(shù)估計為600個。所以還有150個真實的缺陷需要測試出來。內容提要靜態(tài)白盒法侵入式法路徑覆蓋法基本路徑法定義/使用法程序片法白盒測試的其他方法路徑覆蓋法

即設計出足夠的測試用例來完成對被測試程序可執(zhí)行路徑進行全方位的執(zhí)行覆蓋。它一般主要包括邏輯路徑覆蓋和物理路徑覆蓋的兩種方法,這是從兩個不同的角度來實現(xiàn)代碼覆蓋,它們之間既有聯(lián)系,也有區(qū)別。

白盒覆蓋率分析

白盒測試最常用的基本技術是覆蓋率分析,研究的內容包括:如何選擇程序元素,如何生成指定程序元素的測試用例;程序元素的覆蓋率;測試效果的評價。邏輯路徑覆蓋度量標準語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋邏輯與物理區(qū)別

邏輯路徑覆蓋主要是從由于各種邏輯判定條件所形成的復雜的程序執(zhí)行路徑這個角度入手,來進行分析??梢哉f邏輯路徑覆蓋必然涉及到程序的邏輯結構。物理路徑覆蓋是從圖論的角度來測試所有可執(zhí)行的物理路徑。語句路徑覆蓋

語句路徑覆蓋是一個比較弱的邏輯路徑覆蓋標準。它的涵義是指通過選擇足夠的測試用例,使得運行這些測試用例時,被測程序的每個語句至少被執(zhí)行一次。TdbasFF入口返回(y>1)&&(z==0)(y==2)||(x>1)x=x/yx=x+1Tce語句路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE1x=4,y=2,z=0x=3sacbed判定路徑覆蓋

判定路徑覆蓋又稱為分支路徑覆蓋,判定路徑覆蓋比語句路徑覆蓋的標準稍強一些,它是指通過設計足夠的測試用例,使得程序中的每一個判定至少都獲得一次“真值”和“假值”,或者說使得程序中的每一個分支都至少通過一次。判定路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE2x=1,y=3,z=0

x=1/3sacbd

CASE3x=3,y=2,z=1

X=4

sabed

條件路徑覆蓋

條件路徑覆蓋的涵義是指,對于每個判定中所包含的若干個條件,應設計足夠多的測試用例,使得判定中的每個條件都至少取到一次“真值”和“假值”的機會,也就是說,判定中的每個條件的所有可能結果至少出現(xiàn)一次。條件路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE4x=0,y=2,z=0x=1sacbedCASE5x=2,y=1,z=1x=3sabed判定/條件路徑覆蓋

判定/條件路徑覆蓋是指通過設計足夠多的測試用例,使得運行這些測試用例時,判定中的每個條件的所有可能結果至少出現(xiàn)一次,并且每個判定本身的所有可能結果也至少出現(xiàn)一次。判定/條件路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE6x=4,y=2,z=0

x=3

sacbed

CASE7x=1,y=1,z=1

x=1

sabd

條件組合路徑覆蓋

條件組合路徑覆蓋是指,通過設計足夠多的測試用例,使得運行這些測試用例時,每個判定中條件結果的所有可能組合至少出現(xiàn)一次。條件組合路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE8x=4,y=2,z=0x=3sacbedCASE9x=1,y=2,z=1x=2sabedCASE10x=2,y=1,z=0x=3sabedCASE11x=1,y=1,z=1x=1sabd物理路徑覆蓋

物理路徑覆蓋是指,通過設計足夠多的測試用例,使得運行這些測試用例時,程序的每條可能執(zhí)行的物理路徑都至少經過一次(如果程序中有環(huán)路,則要求每條環(huán)路至少經過一次)。物理路徑覆蓋的測試用例測試用例輸入預期輸出被測路徑CASE8x=4,y=2,z=0x=3sacbedCASE9x=1,y=2,z=1x=2sabedCASE10x=1,y=3,z=0x=1/3sacbdCASE11x=1,y=1,z=1x=1sabd內容提要靜態(tài)白盒法侵入式法路徑覆蓋法基本路徑法

定義/使用法程序片法白盒測試的其他方法基本路徑法向量空間的基是相互獨立的一組向量,基“覆蓋”整個向量空間,使得該空間中的任何其他向量都可以用基向量來表示。因此,一組基向量在一定程度上可表示整個向量空間的本質:空間中的一切都可以用基表示,并且如果一個基元素被刪除了,則這種覆蓋特性也會丟失?;韭窂椒ɑ鶎y試的潛在意義是:如果可以把程序看做是一種向量空間,則這種空間的基就是要測試的非常有意義的元素集合。如果基沒有問題,則可以希望能夠用基表達的一切都是沒有問題的?;韭窂椒ɑ韭窂椒ㄊ窃诔绦蚩刂屏鲌D的基礎上,通過分析控制結構的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設計測試用例的方法。基本路徑法包括以下幾個部分:程序的控制流圖:描述程序控制流的一種圖示方法。程序環(huán)路復雜性:McCabe復雜性度量;從程序的環(huán)路復雜性可導出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界,也即應該設計的測試用例的數(shù)目。確定線性無關的路徑的基本集。準備測試用例,確保測試基本路徑集中的每一條路徑的執(zhí)行。控制流圖13625821457837(a)程序流程圖(b)控制流程圖McCabe的基路徑方法McCabe認為強連接圖的圈數(shù)量就是圖中線性獨立環(huán)路數(shù)的數(shù)量。McCabe的基路徑方法通過定義加法和標量乘法的概念,強制使其看起來像向量空間:路徑加法就是一條路徑后接另一條路徑,乘法對應于路徑的重復。McCabe的基路徑方法McCabe開發(fā)了一種算法過程,用于確定基路徑集合。這種方法首先選擇一個基線路徑,應該對應某個“正常案例”程序的執(zhí)行。接下來重復回溯基線路徑,依次“翻轉”每個判斷點,即當節(jié)點的外度≥2時,必須取不同的邊。McCabe的基路徑方法定義:圖G的圈數(shù)由V(G)=e-n+2p給定,其中:

e是G中的邊數(shù)。

n是G中的節(jié)點數(shù)。

p是G中的組件數(shù)。V(G)是圖中不同區(qū)域的個數(shù)。McCabe的控制圖五個線性獨立路徑P1:A,B,C,GP2:A,B,C,B,C,GP3:A,B,E,F(xiàn),GP4:A,D,E,F(xiàn),GP5:A,D,F(xiàn),GMcCabe的基路徑方法McCabe的基路徑方法弱點:一、測試基路徑集合是充分的(它不是)二、向量運算用于程序路徑的表達上,沒有意義。內容提要靜態(tài)白盒法侵入式法路徑覆蓋法基本路徑法定義/使用法

程序片法白盒測試的其他方法數(shù)據(jù)流測試早期的數(shù)據(jù)流分析常常集中于現(xiàn)在叫做定義/引用異常的缺陷:變量被定義,但是從來沒有使用。所使用的變量沒有被定義。變量在使用之前被定義兩次。定義/使用測試定義節(jié)點n∈G(P)是變量v∈V的定義節(jié)點,記做DEF(v,n),當且僅當變量v的值由對應節(jié)點n的語句片段處定義。定義/使用測試定義節(jié)點n∈G(P)是變量v∈V的使用節(jié)點,記做USE(v,n),當且僅當變量v的值由對應節(jié)點n的語句片段處使用。定義/使用測試定義使用節(jié)點USE(v,n)是一個謂詞使用(記做P-use),當且僅當語句n是判斷語句;否則,USE(v.n)是計算使用(記做C-use)。定義/使用測試定義關于變量v的定義-使用路徑(記做du-path)是PATHS(P)中的路徑,使得對某個v∈V,存在定義和使用節(jié)點DEF(v,m)和USE(v,n),使得m和n是該路徑的最初和最終節(jié)點。定義/使用測試定義關于變量v的定義清除路徑(記做dc-path),是具有最初和最終節(jié)點DEF(v,m)和USE(v,n)的PATHS(P)中的路徑,使得該路徑中沒有其他節(jié)點是v的定義節(jié)點。

內容提要靜態(tài)白盒法侵入式法路徑覆蓋法基本路徑法定義/使用法程序片法

白盒測試的其他方法程序片法程序片是確定或影響某個變量在程序某個點上的取值的一組程序語句。程序片法定義給定一個程序P和P中的一個變量集合V,變量集合V在語句n上的一個片,記做S(V,n),是P中對V中的變量值做出貢獻的所有語句集合。程序片法定義給定一個程序P和一個給出語句及語句片段編號的程序圖G(P),以及P中的一個變量集合V,變量集合V在語句片段n上的一個片,記做S(V,n),是P中在n以前對V中的變量值作出貢獻的所有語句片段編號的集合。程序片法五種形式的使用謂詞使用用在謂詞(判斷)中。計算使用用在計算中。輸出使用用于輸出。定位使用用于定位(指針、下標)。迭代使用迭代(內部計數(shù)器、循環(huán)指示)。程序片法標識兩種定義節(jié)點:輸入定義通過輸入定義賦值定義通過賦值定義程序片法現(xiàn)在先假設片S(V,n)是一個變量的片,即集合V由單一變量v組成。如果語句片段n是v的一個定義節(jié)點,則n包含在該片中。如果語句片段n是v的一個使用節(jié)點,則n不包含在該片中。其他變量的謂詞使用和計算使用,要包含其執(zhí)行會影響變量v取值的節(jié)點。原程序變量Z的值在語句1

溫馨提示

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

評論

0/150

提交評論