軟件測試第4章課件_第1頁
軟件測試第4章課件_第2頁
軟件測試第4章課件_第3頁
軟件測試第4章課件_第4頁
軟件測試第4章課件_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章 白盒測試技術(shù)4.1 白盒測試的優(yōu)點(diǎn)和缺點(diǎn)白盒測試一般以單元或模塊為基礎(chǔ),對程序代碼進(jìn)行分析或者利用部分工具協(xié)助發(fā)現(xiàn)變量未初始化、指針錯誤等問題。4.1.1 白盒測試的優(yōu)點(diǎn)白盒測試具有以下主要優(yōu)點(diǎn):(1)白盒測試有助于測試人員深入思考軟件的框架結(jié)構(gòu)、實(shí)現(xiàn)方式,找到最佳實(shí)現(xiàn)方法優(yōu)化程序。(2)白盒測試能夠了解程序的分支結(jié)構(gòu),找到和減少代碼中的隱藏錯誤。(3)白盒測試可以執(zhí)行等價路徑,類似于等價類劃分法。(4)通過白盒測試能夠讓測試員了解程序的質(zhì)量,從實(shí)現(xiàn)細(xì)節(jié)的角度分析程序的可行性,更快、更徹底地發(fā)現(xiàn)錯誤。白盒測試的最大優(yōu)點(diǎn)在于不僅能節(jié)省時間,而且能夠優(yōu)化程序結(jié)構(gòu)。4.1.2 白盒測試的缺點(diǎn)

2、當(dāng)然,白盒測試也有讓人無法忽視的缺點(diǎn):(1)對于小型程序,白盒測試技術(shù)能夠通過修改源代碼進(jìn)行程序調(diào)試,但這對測試人員的編程經(jīng)驗(yàn)和技術(shù)要求是很大的挑戰(zhàn)。因此,白盒測試技術(shù)會增加測試成本。(2)白盒測試不驗(yàn)證規(guī)格的正確性。(3)白盒測試不能檢查代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤。(4)白盒測試需要特殊工具,如源代碼分析器、調(diào)試器、故障注入工具等。此外,還需要測試人員具備各方面豐富的知識和經(jīng)驗(yàn),如編程語言、建模、測試工具等。此類要求大大增加了測試的成本。(5)白盒測試讓開發(fā)人員和測試人員之間的界線更加模糊,這不利于企業(yè)的分工和文化發(fā)展。測試質(zhì)量依賴于測試數(shù)據(jù),但生成測試數(shù)據(jù)、分析測試結(jié)果的工作量大,使

3、得開展測試工作費(fèi)時、費(fèi)力、費(fèi)財(cái)。在動態(tài)測試中涉及多方面工作,需要人員多、設(shè)備多、數(shù)據(jù)多,并且要求有較好的管理和工作規(guī)程,這些都對測試成本和企業(yè)分工造成了很大壓力。4.2 白盒測試的依據(jù)和流程白盒測試是基于軟件的源代碼,在已知產(chǎn)品的內(nèi)部工作過程的情況下,對程序內(nèi)部結(jié)構(gòu)展開測試,關(guān)注程序?qū)崿F(xiàn)細(xì)節(jié)。白盒測試的針對性很強(qiáng),測試效率很高,可以幫助用戶了解測試的覆蓋程度。本節(jié)將重點(diǎn)介紹白盒測試技術(shù)的依據(jù)和流程。4.2.1 白盒測試的依據(jù)白盒測試的主要依據(jù)如下:軟件產(chǎn)品的需求報(bào)告。軟件產(chǎn)品的需求規(guī)格說明書。軟件產(chǎn)品的設(shè)計(jì)文檔。軟件產(chǎn)品的界面。軟件產(chǎn)品的編碼規(guī)范。軟件產(chǎn)品的開發(fā)命名規(guī)范。軟件產(chǎn)品設(shè)計(jì)文檔的相關(guān)

4、規(guī)范。4.2.2 白盒測試的流程1)界面對象測試流程2)業(yè)務(wù)對象測試流程4.3 白盒測試的方法4.3.1 邏輯覆蓋法邏輯覆蓋測試是傳統(tǒng)的白盒測試技術(shù),是通過對程序內(nèi)部的邏輯結(jié)構(gòu)的遍歷來實(shí)現(xiàn)以程序覆蓋為基礎(chǔ)的設(shè)計(jì)測試用例的技術(shù)。邏輯覆蓋的關(guān)注點(diǎn)在于條件判定表達(dá)式本身的復(fù)雜度,它通過對程序邏輯結(jié)構(gòu)的遍歷表實(shí)現(xiàn)程序的覆蓋,該法所遵循的基本測試原則是:對程序代碼中所有的邏輯值均需要測試真值和假值的情況。1案例代碼的基本描述2語句覆蓋(Statement Coverage,SC)3判定覆蓋(Decision Coverage,DC)4條件覆蓋(Condition Coverage,CC)5判定/條件覆蓋

5、(Decision/Condition Coverage,D/CC)6修正的判定/條件覆蓋(Modified Decision/Condition Coverage,MD/CC)7條件組合覆蓋(Condition Combination Coverage,CCC)4.3.2 基路徑測試法基路徑覆蓋,即選取足夠多的測試數(shù)據(jù),從程序的入口開始,使每條可能路徑都至少執(zhí)行一次。優(yōu)點(diǎn):基路徑覆蓋的覆蓋率高,是經(jīng)常使用的測試覆蓋方法。缺點(diǎn):基路徑覆蓋不一定能保證條件組合覆蓋。4.3.3 對循環(huán)的測試對循環(huán)的測試主要是關(guān)注循環(huán)造成的程序結(jié)構(gòu)復(fù)雜度的提高,它遵循的基本測試原則是:在循環(huán)的邊界和運(yùn)行界限執(zhí)行循環(huán)

6、體。因此,循環(huán)總是與邊界值測試密切相關(guān)4.3.4 數(shù)據(jù)流測試數(shù)據(jù)流測試的主要工作是以被測變量為中心,關(guān)注關(guān)于該變量的每條定義使用路徑,若該路徑不存在定義/引用異常缺陷的風(fēng)險(xiǎn),則該路徑不需要測試,否則該路徑需要重點(diǎn)測試。從這個角度來看,數(shù)據(jù)流測試更多關(guān)注的是存在缺陷的風(fēng)險(xiǎn),而非查找缺陷。數(shù)據(jù)流測試的一般步驟如下:(1)確定被測變量的所有定義節(jié)點(diǎn)和使用節(jié)點(diǎn)。(2)確定每一對定義/使用節(jié)點(diǎn)對。(3)判斷每條定義/使用節(jié)點(diǎn)對之間的路徑是否為高風(fēng)險(xiǎn)路徑。4.3.5 靜態(tài)白盒測試技術(shù)動靜態(tài)白盒測試技術(shù)是指不運(yùn)行被測軟件,只是通過研究軟件的源代碼和程序結(jié)構(gòu)來檢查程序代碼、界面和文檔中存在的錯誤。4.3.6

7、動態(tài)白盒測試技術(shù)動態(tài)白盒測試技術(shù)也稱為結(jié)構(gòu)化測試技術(shù),是指通過分析其源代碼和程序結(jié)構(gòu),并運(yùn)行被測軟件,輸入相應(yīng)的測試數(shù)據(jù),檢查輸入結(jié)果是否符合預(yù)測結(jié)果。動態(tài)白盒測試不僅僅是查看代碼,還包括直接參數(shù)和控制軟件。4.4 白盒測試工具目前,用于白盒測試的工具有很多。這里我們介紹C+ Test、Logiscope和BoundsChecker三種測試工具。4.4.1 C+ Test介紹C+ Test是法國Parasoft公司開發(fā)的一款專門測試C/C+程序的白盒測試工具,自動測試任何C/C+類、函數(shù)或部件,而不需要編寫一個測試用例、測試驅(qū)動程序或樁調(diào)用,C+ Test能夠自動測試代碼構(gòu)造、測試代碼功能性和

8、維護(hù)代碼的完整性。C+ Test是一個易于使用的產(chǎn)品,能夠適應(yīng)任何開發(fā)生命周期,通過C+ Test集成到開發(fā)過程中,能夠有效地防止軟件錯誤,提高代碼的穩(wěn)定性。4.4.2 Logiscope介紹Logiscope是法國Telelogic公司推出的專用于軟件質(zhì)量保證和軟件測試的產(chǎn)品,其主要功能是對軟件做質(zhì)量分析和測試以保證軟件的質(zhì)量,并可做認(rèn)證、反向工程和維護(hù),特別是針對要求可靠性高和安全性高的軟件項(xiàng)目和工程。Logiscope是面向源代碼進(jìn)行工作的,貫穿于軟件開發(fā)、代碼評審、單元測試、集成測試、系統(tǒng)測試以及軟件維護(hù)階段。它應(yīng)用于軟件的整個生命周期,貫穿于軟件需求分析階段、設(shè)計(jì)階段、代碼開發(fā)階段、

9、軟件測試階段、軟件維護(hù)階段。在設(shè)計(jì)和開發(fā)階段,使用Logiscope可以對軟件的體系結(jié)構(gòu)和編碼進(jìn)行確認(rèn)??梢栽谠缙陔A段盡可能地檢測那些關(guān)鍵部分,尋找潛在的錯誤。在測試階段用Logiscope,可使測試更加有效,并且可針對軟件結(jié)構(gòu),度量測試覆蓋的完整性,評估測試效率,確保滿足要求的測試等級。特別是,Logiscope還可以自動生成相應(yīng)的測試分析報(bào)告;在軟件的維護(hù)階段,用Logiscope驗(yàn)證已有的軟件是否是質(zhì)量已得到保證的軟件,對于狀態(tài)不確定的軟件,Logiscope可以迅速提交軟件質(zhì)量的評估報(bào)告,大幅度地減少理解性工作,避免不受控制修改引發(fā)的錯誤。4.4.3 BoundsChecker介紹Bo

10、undsChecker是為C/C+程序設(shè)計(jì)的Run-Time錯誤檢測工具,只能在Windows平臺上運(yùn)行,它主要定位程序在運(yùn)行時期發(fā)生的各種錯誤。BoundsChecker能檢測的錯誤包括:指針操作和內(nèi)存、資源泄露錯誤。比如,內(nèi)存泄露(memory leak)、資源泄露(resource leak)、對指針變量的錯誤操作等。內(nèi)存操作方面的錯誤。比如,內(nèi)存讀/寫溢出(memory read/write overflow)、使用未初始化的內(nèi)存等。API函數(shù)的兼容性。處理API函數(shù)在不同平臺上運(yùn)行的兼容性問題。使用BoundsChecker對程序的運(yùn)行時錯誤進(jìn)行檢測,有兩種使用模式可供選擇:一種模式叫做ActiveCheck,

溫馨提示

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

評論

0/150

提交評論