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

下載本文檔

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

文檔簡介

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

2、 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,靜態(tài)白盒法,靜態(tài)白盒測試是在不執(zhí)行的條件下有條理地仔細(xì)審查軟件設(shè)計、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過程。 好處: 盡早發(fā)現(xiàn)軟件缺陷。 為黑盒測試員提供思路。,靜態(tài)白盒測試法分類,靜態(tài)白盒測試法一般根據(jù)審查的嚴(yán)格程度分為三種: 同行評審 走查 評審,同行評審,也稱為伙伴審查,這種方法大體類似于“如果你給我看你的,我也給你看我的”類型的討論。同行評審常常僅在編寫代碼或設(shè)計體系結(jié)構(gòu)的程序員,以及充當(dāng)審查者的其他一兩個程序員和測試員之間進行。,走查,走查是正式、嚴(yán)格、具有深度的技術(shù)評審,以便盡可能準(zhǔn)確地確定問題之所在。 走查過程

3、的目的: 在軟件開發(fā)過程中盡可能早地發(fā)現(xiàn)問題。 確保對重要部分達(dá)成一致意見。,評審,評審是最正式的審查類型,具有高度組織化,要求每一個參與者都接受訓(xùn)練。評審與同行評審和走查的不同之處在于陳述代碼的人陳述者或者宣讀者不是原來的程序員。這就迫使他們學(xué)習(xí)和了解要陳述的材料,從而有可能在檢驗會議上提出不同的看法和解釋。其余的參與者稱為評審員,其職責(zé)是從不同的角度,例如用戶、測試員或者產(chǎn)品支持人員的角度審查代碼。這有助于對產(chǎn)品的全面審查,通??梢哉页霾煌能浖毕荨?召開評審會議之后,要準(zhǔn)備一份書面報告,明確解決問題所必需重做的工作。然后程序員進行修改,由會議協(xié)調(diào)員驗證修改結(jié)果。根據(jù)修改的范圍和規(guī)模以及

4、軟件的關(guān)鍵程序,可能還需要進行重新評審,以便找到其余的軟件缺陷。評審經(jīng)證實是所有軟件交付過程中,特別是設(shè)計文檔和代碼中發(fā)現(xiàn)軟件缺陷非常有效的方法。,靜態(tài)白盒法應(yīng)該具備的基本要素,確定問題。靜態(tài)白盒測試的目的是找出軟件的問題,全部的批評應(yīng)該直指代碼或設(shè)計,而不是其設(shè)計實現(xiàn)者。參與者之間不應(yīng)該相互指責(zé),應(yīng)該把自我意識、個人情緒和敏感丟在一邊。 遵守規(guī)則。靜態(tài)白盒測試要遵守一套固定的規(guī)則,如哪些內(nèi)容要做評價等。其重要性在于參與者了解自己的角色、目標(biāo)是什么。這有助于使審查進展的更加順利。 充分準(zhǔn)備。每一個參與者都盡自己的力量為審查做準(zhǔn)備。根據(jù)審查的類型,參與者可能扮演不同的角色。他們需要了解自己的責(zé)任

5、和義務(wù),并積極參與審查。在審查過程中找出的問題大部分是在準(zhǔn)備期間發(fā)現(xiàn)的,而不是實際審查期間。 編寫報告。審查小組必須做出審查結(jié)果的書面總結(jié)報告,并使報告便于開發(fā)小組的成員使用。,內(nèi)容提要,靜態(tài)白盒法 侵入式法 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,侵入式法,侵入式法白盒測試指的是在軟件測試過程中需要對軟件系統(tǒng)的代碼進行修改的測試方法。按照修改的目的不同分為:程序插樁測試、斷言測試和缺陷種植法。,程序插樁技術(shù),借助往被測程序中插入操作,來實現(xiàn)測試目的的方法。 在調(diào)試程序中,常常要在程序中插入一些打印語句。 通過打印信息了解執(zhí)行過程中程序的一下動態(tài)特性。,程序插樁圖,

6、插樁程序中插入的語句,設(shè)計插樁程序要考慮的問題,探測哪些信息; 在程序的什么部位設(shè)置探測點; 需要設(shè)置多少個探測點。,斷言測試,斷言測試用于檢查在程序運行過程出現(xiàn)的一些本“不應(yīng)該”發(fā)生的情況。也就是在一個應(yīng)該正確的地方,加一條判斷來驗證程序運行時,它是否真正如當(dāng)初預(yù)料的那樣,具有預(yù)期的正確性。 斷言測試就是在程序中插入斷言,插入斷言的根本目的是用于幫助程序的調(diào)試與排錯,因此本質(zhì)上它是屬于測試代碼,是一種特殊的插樁語句,而不是屬于真正的應(yīng)用程序模塊的一部分。,缺陷種植測試,是一種用來估計駐留在程序中的缺陷數(shù)量的技術(shù)。工作原理是向一個軟件中“種植”缺陷,然后運行測試集,以檢查發(fā)現(xiàn)了多少個種植的缺陷

7、,還有多少個種植的缺陷沒有被發(fā)現(xiàn),以及已經(jīng)發(fā)現(xiàn)了多少個新的非種植的缺陷。然后就可以預(yù)測殘留的缺陷數(shù)量。,案例,如果種植了100個種子缺陷,而在測試中只找到75個種植的缺陷,那么種子發(fā)現(xiàn)率為75%。如果已經(jīng)發(fā)現(xiàn)了450個真實的缺陷,那么可以通過種子發(fā)現(xiàn)率,推出這450個真實的缺陷只代表了現(xiàn)在存在所有真實缺陷的75%。那么,真是的缺陷總數(shù)估計為600個。所以還有150個真實的缺陷需要測試出來。,內(nèi)容提要,靜態(tài)白盒法 侵入式法 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,路徑覆蓋法,即設(shè)計出足夠的測試用例來完成對被測試程序可執(zhí)行路徑進行全方位的執(zhí)行覆蓋。它一般主要包括邏輯路徑

8、覆蓋和物理路徑覆蓋的兩種方法,這是從兩個不同的角度來實現(xiàn)代碼覆蓋,它們之間既有聯(lián)系,也有區(qū)別。,白盒覆蓋率分析,白盒測試最常用的基本技術(shù)是覆蓋率分析,研究的內(nèi)容包括:如何選擇程序元素,如何生成指定程序元素的測試用例;程序元素的覆蓋率;測試效果的評價。,邏輯路徑覆蓋度量標(biāo)準(zhǔn),語句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 條件組合覆蓋,邏輯與物理區(qū)別,邏輯路徑覆蓋主要是從由于各種邏輯判定條件所形成的復(fù)雜的程序執(zhí)行路徑這個角度入手,來進行分析。可以說邏輯路徑覆蓋必然涉及到程序的邏輯結(jié)構(gòu)。物理路徑覆蓋是從圖論的角度來測試所有可執(zhí)行的物理路徑。,語句路徑覆蓋,語句路徑覆蓋是一個比較弱的邏輯路徑覆蓋標(biāo)準(zhǔn)。

9、它的涵義是指通過選擇足夠的測試用例,使得運行這些測試用例時,被測程序的每個語句至少被執(zhí)行一次。,語句路徑覆蓋的測試用例,判定路徑覆蓋,判定路徑覆蓋又稱為分支路徑覆蓋,判定路徑覆蓋比語句路徑覆蓋的標(biāo)準(zhǔn)稍強一些,它是指通過設(shè)計足夠的測試用例,使得程序中的每一個判定至少都獲得一次“真值”和“假值”,或者說使得程序中的每一個分支都至少通過一次。,判定路徑覆蓋的測試用例,條件路徑覆蓋,條件路徑覆蓋的涵義是指,對于每個判定中所包含的若干個條件,應(yīng)設(shè)計足夠多的測試用例,使得判定中的每個條件都至少取到一次“真值”和“假值”的機會,也就是說,判定中的每個條件的所有可能結(jié)果至少出現(xiàn)一次。,條件路徑覆蓋的測試用例,

10、判定/條件路徑覆蓋,判定/條件路徑覆蓋是指通過設(shè)計足夠多的測試用例,使得運行這些測試用例時,判定中的每個條件的所有可能結(jié)果至少出現(xiàn)一次,并且每個判定本身的所有可能結(jié)果也至少出現(xiàn)一次。,判定/條件路徑覆蓋的測試用例,條件組合路徑覆蓋,條件組合路徑覆蓋是指,通過設(shè)計足夠多的測試用例,使得運行這些測試用例時,每個判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。,條件組合路徑覆蓋的測試用例,物理路徑覆蓋,物理路徑覆蓋是指,通過設(shè)計足夠多的測試用例,使得運行這些測試用例時,程序的每條可能執(zhí)行的物理路徑都至少經(jīng)過一次(如果程序中有環(huán)路,則要求每條環(huán)路至少經(jīng)過一次)。,物理路徑覆蓋的測試用例,內(nèi)容提要,靜態(tài)白盒法

11、 侵入式法 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,基本路徑法,向量空間的基是相互獨立的一組向量,基“覆蓋”整個向量空間,使得該空間中的任何其他向量都可以用基向量來表示。 因此,一組基向量在一定程度上可表示整個向量空間的本質(zhì):空間中的一切都可以用基表示,并且如果一個基元素被刪除了,則這種覆蓋特性也會丟失。,基本路徑法,基對測試的潛在意義是: 如果可以把程序看做是一種向量空間,則這種空間的基就是要測試的非常有意義的元素集合。如果基沒有問題,則可以希望能夠用基表達(dá)的一切都是沒有問題的。,基本路徑法,基本路徑法是在程序控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)路復(fù)雜性,導(dǎo)出基

12、本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。 基本路徑法包括以下幾個部分: 程序的控制流圖:描述程序控制流的一種圖示方法。 程序環(huán)路復(fù)雜性:McCabe復(fù)雜性度量;從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界,也即應(yīng)該設(shè)計的測試用例的數(shù)目。 確定線性無關(guān)的路徑的基本集。 準(zhǔn)備測試用例,確保測試基本路徑集中的每一條路徑的執(zhí)行。,控制流圖,McCabe的基路徑方法,McCabe認(rèn)為強連接圖的圈數(shù)量就是圖中線性獨立環(huán)路數(shù)的數(shù)量。,McCabe的基路徑方法,通過定義加法和標(biāo)量乘法的概念,強制使其看起來像向量空間:路徑加法就是

13、一條路徑后接另一條路徑,乘法對應(yīng)于路徑的重復(fù)。,McCabe的基路徑方法,McCabe開發(fā)了一種算法過程,用于確定基路徑集合。 這種方法首先選擇一個基線路徑,應(yīng)該對應(yīng)某個“正常案例”程序的執(zhí)行。 接下來重復(fù)回溯基線路徑,依次“翻轉(zhuǎn)”每個判斷點,即當(dāng)節(jié)點的外度2時,必須取不同的邊。,McCabe的基路徑方法,定義:圖G的圈數(shù)由V(G)=e-n2p給定,其中: e是G中的邊數(shù)。 n是G中的節(jié)點數(shù)。 p是G中的組件數(shù)。 V(G)是圖中不同區(qū)域的個數(shù)。,McCabe的控制圖,五個線性獨立路徑,P1:A,B,C,G P2:A,B,C,B,C,G P3:A,B,E,F(xiàn),G P4:A,D,E,F(xiàn),G P5:

14、A,D,F(xiàn),G,McCabe的基路徑方法,McCabe的基路徑方法,弱點: 一、測試基路徑集合是充分的(它不是) 二、向量運算用于程序路徑的表達(dá)上,沒有意義。,內(nèi)容提要,靜態(tài)白盒法 侵入式法 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,數(shù)據(jù)流測試,早期的數(shù)據(jù)流分析常常集中于現(xiàn)在叫做定義/引用異常的缺陷: 變量被定義,但是從來沒有使用。 所使用的變量沒有被定義。 變量在使用之前被定義兩次。,定義/使用測試,定義 節(jié)點nG(P)是變量vV的定義節(jié)點,記做DEF(v,n),當(dāng)且僅當(dāng)變量v的值由對應(yīng)節(jié)點n的語句片段處定義。,定義/使用測試,定義 節(jié)點nG(P)是變量vV的使用節(jié)

15、點,記做USE(v,n),當(dāng)且僅當(dāng)變量v的值由對應(yīng)節(jié)點n的語句片段處使用。,定義/使用測試,定義 使用節(jié)點USE(v,n)是一個謂詞使用(記做P-use),當(dāng)且僅當(dāng)語句n是判斷語句;否則,USE(v.n)是計算使用(記做C-use)。,定義/使用測試,定義 關(guān)于變量v的定義-使用路徑(記做du-path)是PATHS(P) 中的路徑,使得對某個vV,存在定義和使用節(jié)點DEF(v,m)和USE(v,n),使得m和n是該路徑的最初和最終節(jié)點。,定義/使用測試,定義 關(guān)于變量v的定義清除路徑(記做dc-path),是具有最初和最終節(jié)點DEF(v,m)和USE(v,n)的PATHS(P)中的路徑,使得

16、該路徑中沒有其他節(jié)點是v的定義節(jié)點。,內(nèi)容提要,靜態(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中的變量值作出貢獻的所有語句片段編號的集合。,程序片法,五種形式的

17、使用 謂詞使用 用在謂詞(判斷)中。 計算使用 用在計算中。 輸出使用 用于輸出。 定位使用 用于定位(指針、下標(biāo))。 迭代使用 迭代(內(nèi)部計數(shù)器、循環(huán)指示)。,程序片法,標(biāo)識兩種定義節(jié)點: 輸入定義 通過輸入定義 賦值定義 通過賦值定義,程序片法,現(xiàn)在先假設(shè)片S(V,n)是一個變量的片,即集合V由單一變量v組成。 如果語句片段n是v的一個定義節(jié)點,則n包含在該片中。 如果語句片段n是v的一個使用節(jié)點,則n不包含在該片中。 其他變量的謂詞使用和計算使用,要包含其執(zhí)行會影響變量v取值的節(jié)點。,原程序,變量Z的值在語句12的切片,變量total的值在語句12的切片,格的定義,定義 如果偏序集合中,

18、任何兩個元素構(gòu)成的子集a,b都有最小上界和最大上界,則這個偏序集合是格(lattice)。,內(nèi)容提要,靜態(tài)白盒法 侵入式法 路徑覆蓋法 基本路徑法 定義/使用法 程序片法 白盒測試的其他方法,白盒測試的其他方法,域測試 域測試是一種基于程序結(jié)構(gòu)的測試方法。 程序變異測試 程序變異測試是一種基于程序錯誤的測試方法,它的目的是要說明程序中不含有某些特定的錯誤。 符號測試 符號測試是基于代數(shù)運算的一種結(jié)構(gòu)測試方法。它的基本思想是允許程序的輸入不僅僅是數(shù)值數(shù)據(jù),而且包括符號值。,白盒測試方法總結(jié),白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,通過了解軟件系統(tǒng)的內(nèi)部工作過程,設(shè)計測試用例來檢測程序內(nèi)部動作是否按照規(guī)格說明書規(guī)定的正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作。 比

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論