? 針對于代碼測試
基本概念
? 它是一種驗證技術(shù),軟件工程師可以使用它來檢查他們的代碼是否按照預(yù)期工作。
? 它考慮了系統(tǒng)或組件的內(nèi)部機(jī)制。
它也被稱為結(jié)構(gòu)測試、透明盒測試和玻璃盒測試。( , clear box
, and glass box )
?
? 它表明您完全可以看到軟件產(chǎn)品的內(nèi)部工作,特別是代碼的邏輯和結(jié)構(gòu)。
白盒測試:靜態(tài)測試和動態(tài)測試。
○ 靜態(tài)白盒測試方法:代碼檢查、靜態(tài)結(jié)構(gòu)分析、靜態(tài)質(zhì)量度量方法等。
○ 動態(tài)白盒測試是基于覆蓋的,盡可能覆蓋測試程序的結(jié)構(gòu)特征和邏輯路徑。
○ 動態(tài)白盒測試方法:邏輯覆蓋、循環(huán)覆蓋、基路徑覆蓋等。
?
? 主要用于單元測試。
白盒測試需要遵循的原則:
○ 模塊中的所有獨立路徑必須至少實現(xiàn)一次。
○ 所有邏輯值都需要測試兩種情況:true和false。
○ 內(nèi)部數(shù)據(jù)結(jié)構(gòu)的檢查程序,并保證其結(jié)構(gòu)的有效性。
○ 在操作范圍內(nèi)運(yùn)行所有循環(huán)
?
為什么不能進(jìn)行窮舉測試:
路徑窮舉測試方法不能檢測出程序本身是否違反了設(shè)計規(guī)范,它是否是一個錯誤的
程序。
○
○ 由于路徑遺漏,路徑窮舉測試程序無法檢測錯誤。
○ 路徑窮舉測試不能發(fā)現(xiàn)與數(shù)據(jù)相關(guān)的一些錯誤。
?
四代白盒測試:(了解)
○ 第一代白盒測試:
測試開發(fā)初始階段。
調(diào)試、斷言和打印語句。
○ 第二代白盒測試:
用正式語言操作。(測試腳本)
測試腳本被組合成測試用例軟件測試方法和技術(shù) 配套考試題,測試用例被組合成測試集,使用測試工程來管理測試
集。
使用代碼覆蓋率評估測試結(jié)果。
RTRT、代碼測試、可視化測試、c++測試等。
○ 第三代白盒測試:
解決了這個問題的重復(fù)測試,測試模式的變化從一次性轉(zhuǎn)換繼續(xù)測試模式。
○ 第四代白盒測試:
2邏輯覆蓋
? 是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計方法。
? 白盒測試作為邏輯測試方法軟件測試方法和技術(shù) 配套考試題,是以程序內(nèi)部邏輯驅(qū)動的單元測試方法。
邏輯覆蓋是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋。
語句覆蓋
設(shè)計測試用例時要求 所有可執(zhí)行的語句至少執(zhí)行一次
判斷中可能找不到邏輯操作錯誤
決定/判定覆蓋
運(yùn)行測試程序,使每個判斷的真分支和假分支可以通過至少一次。
判定分支覆蓋更一般的含義是:使每個判定獲得一種可能的結(jié)果至少一次。
條件覆蓋
使每個條件的真值和假值都走過。
判定覆蓋的更細(xì)致的情況
設(shè)計多個測試用例,運(yùn)行測試程序,使程序中每個條件的可能值(真假)至少可以實現(xiàn)一次。