版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第二章白盒測試文章來源:安博測試空間技術(shù)中心 主要內(nèi)容 測試的分類與比較 白盒測試的重點以及相應對策 白盒測試的方法 白盒測試的覆蓋準則 白盒測試的工具 代碼的持續(xù)集成和測試文章來源:安博測試空間技術(shù)中心 1. 測試的分類與比較1.1 測試方式白盒測試:將程序的執(zhí)行表現(xiàn)與編碼意圖作比較 關(guān)心軟件內(nèi)部設(shè)計和程序?qū)崿F(xiàn),主要測試依據(jù)是設(shè)計文檔靜態(tài)質(zhì)量分析覆蓋測試分析RUNTIME問題檢測代碼執(zhí)行性能黑盒測試: 不關(guān)心軟件內(nèi)部,只關(guān)心輸入輸出,主要測試依據(jù)是需求文檔測試用例被測程序源程序分析覆蓋情況分析執(zhí)行路徑需求需求說明說明產(chǎn)生產(chǎn)生被測程序被測程序測試結(jié)果測試結(jié)果輸出輸出比較比較測試用例測試用例文章
2、來源:安博測試空間技術(shù)中心 單元測試階段的白盒測試 代碼靜態(tài)質(zhì)量分析 編程規(guī)則檢查 覆蓋測試分析文章來源:安博測試空間技術(shù)中心 代碼靜態(tài)質(zhì)量分析 依據(jù)ISO/IEC 9126標準、國標、國軍標,采取度量統(tǒng)計的方法能夠分析程序的某些質(zhì)量因素 通過對軟件進行度量,結(jié)合適當?shù)馁|(zhì)量模型,可以給出具有參考價值的判斷結(jié)果,尤其在軟件可維護性方面 進行代碼靜態(tài)質(zhì)量分析所依據(jù)的度量理論 McCabe度量法:是由Thomas McCabe提出的一種基于程序控制流的復雜性度量方法。 HalStead度量法文章來源:安博測試空間技術(shù)中心 McCabe度量法 基于圖論,進行程序復雜度度量V(G)=E-n+2p E為圖
3、G中的邊數(shù),n為節(jié)點數(shù),P為連通分量個數(shù) V(G)值過大,程序不易理解與維護文章來源:安博測試空間技術(shù)中心 用McCabe度量法檢查代碼的可維護性文章來源:安博測試空間技術(shù)中心 Halstead度量法 Halstead度量法以程序中出現(xiàn)的操作符和操作數(shù)為計算對象, 給出源程序后,根據(jù)程序中的這些參數(shù),按公式可求得程序工作量的估值,其中用到以下程序參數(shù): nl 程序中運算符出現(xiàn)的種類; n2 程序中運算對象出現(xiàn)的種類; N1 程序中運算符的總數(shù); N2 程序中運算對象的總數(shù)。 根據(jù)這幾個參數(shù),我們可以估計程序的長度、程序量、語言抽象級別和程序工作量。這些公式為: 程序的長度: N=N1 N2 程
4、序量程序量:V (N1 N2)log2(n1 n2 ) 語言抽象級別: L (2 * n2)(nl * N2) 程序工作量:E=VL文章來源:安博測試空間技術(shù)中心 靜態(tài)分析過程配置編譯環(huán)境信息源文件質(zhì)量模型掃描分析度量元度量元度量元質(zhì)量準則質(zhì)量準則質(zhì)量因素靜態(tài)度量結(jié)果文件靜態(tài)分析構(gòu)造文章來源:安博測試空間技術(shù)中心 靜態(tài)質(zhì)量分析(示例)文章來源:安博測試空間技術(shù)中心 編程規(guī)則檢查進行編程規(guī)則的檢查,達到增加程序的可理解性、降低維護成本的目的 編碼規(guī)則 針對程序指令、運算符、代碼結(jié)構(gòu)、聲明等方面制定規(guī)則并檢查,如: 為了保證程序模塊的結(jié)構(gòu)化,規(guī)定不得使用GOTO語句 命名規(guī)則 對程序中局部變量、全
5、局變量、類等的命名制定規(guī)則并檢查,以利于程序的理解、維護文章來源:安博測試空間技術(shù)中心 覆蓋測試分析衡量軟件被測試執(zhí)行的程度 在盡可能多地執(zhí)行程序的路徑,進行邏輯覆蓋的同時,考察程序執(zhí)行表現(xiàn)是否異常,尤其是某些復雜的和正常情況下不易執(zhí)行的路徑。 覆蓋測試級別 通常從低到高分別是:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋等 對“安全關(guān)鍵”軟件,依據(jù)RTCA/DO-178B標準進行MCDC覆蓋測試:文章來源:安博測試空間技術(shù)中心 “安全關(guān)鍵”軟件的MCDC覆蓋測試 針對“安全-關(guān)鍵”軟件的RTCA/DO-178B標準此標準中最嚴格的為A系統(tǒng)級,與“異常行為能夠造成或者有助于系統(tǒng)功
6、能故障從而導致出現(xiàn)悲慘飛行器事故發(fā)生的條件”的軟件相對應。RTCA/DO-178B標準推薦了MCDC覆蓋測試方法,并且規(guī)定A系統(tǒng)級軟件必須進行MCDC覆蓋測試 進行MCDC覆蓋測試,要求達到以下兩點標準:被測程序中,部件的入口與出口必須至少被調(diào)用一次,程序中判斷的每一個分支必須至少被執(zhí)行一次 對于程序中通過邏輯運算(AND,OR,等)組成判斷的基本布爾條件,每個條件必須取遍所有可能的值且每一個條件對判斷的結(jié)果具有獨立的作用,也就是說,判斷結(jié)果隨某個單獨的條件的變更而變更文章來源:安博測試空間技術(shù)中心 覆蓋測試分析過程配置編譯環(huán)境信息源文件插裝插裝后源文件連接交叉編譯目標模塊RTOS支持包通信方
7、式任務屬性設(shè)置交叉編譯RTOS支持模塊可執(zhí)行模塊下載運行覆蓋信息文章來源:安博測試空間技術(shù)中心 集成測試階段的白盒測試 代碼審查靜態(tài)質(zhì)量分析(側(cè)重于調(diào)用關(guān)系、繼承關(guān)系)在集成測試過程中考察函數(shù)間的調(diào)用關(guān)系、類之間的繼承關(guān)系是否合理 函數(shù)之間的調(diào)用關(guān)系是否合理采用以下指標進行計算:調(diào)用的路徑數(shù)、相對調(diào)用關(guān)系中的層次數(shù)、層次復雜性、結(jié)構(gòu)復雜性、系統(tǒng)可測性(由相對調(diào)用關(guān)系中的深度、廣度綜合決定)編程規(guī)則檢查 覆蓋測試分析(側(cè)重于模塊間調(diào)用關(guān)系上的覆蓋): 考察模塊間的調(diào)用關(guān)系是否成立,同時是對模塊間接口數(shù)據(jù)流的測試 RUNTIME問題檢測文章來源:安博測試空間技術(shù)中心 軟件運行時(RUNTIME)問
8、題 軟件運行時(RUNTIME)問題表現(xiàn) 軟件運行時(RUNTIME)問題危害 普遍存在 操作系統(tǒng)環(huán)境 軟件開發(fā)環(huán)境長期運行過程中暴露;出現(xiàn)條件可能不固定。程序異常中斷、退出;嚴重破壞系統(tǒng)環(huán)境;影響可靠性。RTOS(嵌入式軟件實時操作系統(tǒng)) 、Windows、UNIX、Linux;C/C+的指針、堆棧等內(nèi)存相關(guān)問題;Java的線程相關(guān)問題;文章來源:安博測試空間技術(shù)中心 通過測試盡量消除軟件運行時問題 依據(jù) 編碼質(zhì)量問題; 軟件故障外在表現(xiàn):隨機發(fā)生,無規(guī)律 引入故障內(nèi)在原因:客觀存在,不變黑盒測試充分性技術(shù)白盒測試充分性技術(shù)軟件運行時錯誤檢測技術(shù)?文章來源:安博測試空間技術(shù)中心 2.白盒測試
9、的重點以及相應對策模塊模塊出錯處理出錯處理模塊接口模塊接口局部數(shù)據(jù)結(jié)構(gòu)局部數(shù)據(jù)結(jié)構(gòu)邊界條件邊界條件執(zhí)行路徑執(zhí)行路徑調(diào)用參數(shù)調(diào)用參數(shù)全局量定義一致性全局量定義一致性 數(shù)據(jù)定義、數(shù)據(jù)定義、使用使用循環(huán)邊界循環(huán)邊界輸入邊界輸入邊界重要路徑重要路徑關(guān)鍵路徑關(guān)鍵路徑 非合理輸入非合理輸入系統(tǒng)異常系統(tǒng)異常文章來源:安博測試空間技術(shù)中心 2.白盒測試的重點以及相應對策 2.1模塊接口測試 檢查進出模塊的數(shù)據(jù)是否正確 Checklist: 模塊的實際輸入與定義的輸入是否一致 個數(shù)、類型、順序 模塊中對于非內(nèi)部/局部變量是否合理使用 使用其他模塊時,是否檢查可用性和處理結(jié)果 使用外部資源時,是否檢查可用性并及時
10、釋放資源 內(nèi)存、文件、硬盤、端口等 其他文章來源:安博測試空間技術(shù)中心 2.白盒測試的重點以及相應對策 2.2模塊局部數(shù)據(jù)結(jié)構(gòu)測試 檢查局部數(shù)據(jù)結(jié)構(gòu)能否保持完整性 Checklist: 變量從來沒有被使用 可能別的地方使用了錯誤的變量名 變量沒有初始化 錯誤的類型轉(zhuǎn)換 數(shù)組越界 非法指針 變量或函數(shù)名稱拼寫錯誤 使用了外部變量或函數(shù) 其他文章來源:安博測試空間技術(shù)中心 2.白盒測試的重點以及相應對策 2.3、模塊邊界條件測試 檢查臨界數(shù)據(jù)是否正確處理 Checklist: 普通合法數(shù)據(jù)是否正確處理 普通非法數(shù)據(jù)是否正確處理 邊界內(nèi)最接近邊界的(合法)數(shù)據(jù)是否正確處理 邊界外最接近邊界的(非法)
11、數(shù)據(jù)是否正確處理 其他文章來源:安博測試空間技術(shù)中心 2.白盒測試的重點以及相應對策 2.4、模塊獨立執(zhí)行通路(路徑)測試 檢查由于計算錯誤、判定錯誤、控制流錯誤導致的程序錯誤 Checklist: 死代碼 錯誤的計算優(yōu)先級 精度錯誤 比較運算錯誤 賦值錯誤 表達式的不正確符號 、=;=、=、!= 循環(huán)變量的使用錯誤 錯誤賦值 其他文章來源:安博測試空間技術(shù)中心 2.白盒測試的重點以及相應對策 2.5、模塊內(nèi)部錯誤處理測試 檢查內(nèi)部錯誤處理設(shè)施是否有效 Checklist: 是否檢查錯誤出現(xiàn) 資源使用前后 其他模塊使用前后 出現(xiàn)錯誤,是否進行錯誤處理 拋出錯誤 通知用戶 進行記錄 錯誤處理是否
12、有效 在系統(tǒng)干預前處理 報告和記錄的錯誤真實詳細 其他文章來源:安博測試空間技術(shù)中心 3.白盒測試的方法 3.1邏輯覆蓋方法 3.2路徑測試 3.3數(shù)據(jù)流測試文章來源:安博測試空間技術(shù)中心 3.1邏輯覆蓋方法1、語句覆蓋: 設(shè)計若干測試用例,使程序中的每個可執(zhí)行語句至少執(zhí)行一次。2、判定覆蓋:設(shè)計若干測試用例,使程序中的每個判斷真假的分支至少遍歷一次。3、條件覆蓋:設(shè)計若干測試用例,使程序中的每個條件的可能取值至少滿足一次。4、判定/條件覆蓋 選擇足夠的測試用例,使得同時滿足判定覆蓋和條件覆蓋5、條件組合覆蓋 選擇足夠的測試用例,使得程序中每一個分支判斷中的每一個條件的每一種可能組合結(jié)果都至少
13、被執(zhí)行一次。6、路徑覆蓋 選擇足夠的測試用例,使得程序中所有的可能路徑都至少被執(zhí)行一次。語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋文章來源:安博測試空間技術(shù)中心 3.2路徑測試路徑分析: 路徑表達式和路徑數(shù) 基本路徑測試 有關(guān)循環(huán)的測試考慮 測試用例生成文章來源:安博測試空間技術(shù)中心 有關(guān)循環(huán)測試 目標:檢查循環(huán)結(jié)構(gòu)的有效性 循環(huán)分類: 簡單循環(huán) 嵌套循環(huán)文章來源:安博測試空間技術(shù)中心 循環(huán)測試策略 簡單循環(huán):(循環(huán)最大次數(shù)n) 跳過整個循環(huán) 只循環(huán)一次 循環(huán)兩次 循環(huán)m次,m=常量時,使A在常量邊界各一次,避免常量寫錯,檢查差1的錯誤. 變量在不同測試用例中使用不同的值,避免
14、變量名寫錯,避免應該使用變量的地方卻使用了常量 優(yōu)缺點 圍繞發(fā)生問題的區(qū)域進行測試,提高了錯誤的發(fā)現(xiàn)率 尋找錯誤的廣度不夠文章來源:安博測試空間技術(shù)中心 4.2、LCSAJ 背景 Linear Code Sequence And Jump線性代碼序列與跳轉(zhuǎn) Woodward LCSAJ:一組順序執(zhí)行的代碼,以控制流跳轉(zhuǎn)為結(jié)束點.程序的起點是程序的第一行或者控制流可以跳達的點;第一個LCSAJ的起點是程序的第一行,最后一個LCSAJ的終點是程序的結(jié)束.一條程序路徑可能由一個、兩個或多個LCSAJ構(gòu)成。 LCSAJ路徑:首尾相連,從程序頭到尾的一連串LCSAJ 層次結(jié)構(gòu) 1層:語句覆蓋 2層:分支
15、覆蓋 LCSAJ覆蓋:每個LCSAJ在測試中至少經(jīng)歷一次 兩兩LCSAJ覆蓋:每個首尾相連LCSAJ在測試中至少經(jīng)歷一次 n+2層(n為自然數(shù)):每n個首尾相連的LCSAJ組合都要覆蓋文章來源:安博測試空間技術(shù)中心 5.白盒測試工具5.1常見的白盒測試工具簡介白盒測試工具一般是針對代碼進行測試,測試中發(fā)現(xiàn)的缺陷可以定位到代碼級,根據(jù)測試工具原理的不同,又可以分為靜態(tài)測試工具和動態(tài)測試工具。i. 靜態(tài)測試工具靜態(tài)測試工具直接對代碼進行分析,不需要運行代碼,也不需要對代碼編譯鏈接,生成可執(zhí)行文件。靜態(tài)測試工具一般是對代碼進行語法掃描,找出不符合編碼規(guī)范的地方,根據(jù)某種質(zhì)量模型評價代碼的質(zhì)量,生成系
16、統(tǒng)的調(diào)用關(guān)系圖等。靜態(tài)測試工具的代表有Telelogic公司的Logiscope軟件、PR公司的PRQA軟件。ii. 動態(tài)測試工具動態(tài)測試工具與靜態(tài)測試工具不同,動態(tài)測試工具的一般采用“插樁”的方式,向代碼生成的可執(zhí)行文件中插入一些監(jiān)測代碼,用來統(tǒng)計程序運行時的數(shù)據(jù)。其與靜態(tài)測試工具最大的不同就是動態(tài)測試工具要求被測系統(tǒng)實際運行。動態(tài)測試工具的代表有Compuware公司的DevPartner軟件、Rational公司的Purify系列。文章來源:安博測試空間技術(shù)中心 Parasoft JtestParasoft C+testParasoft SOA testParasoft .testPar
17、asoft CodewizardParasoft Insure+Parasoft DataRecon Compuware Numega devpartner studioCompuware DevPartnerJavaEditionCompuware BoundsCheckerCompuware SmartCheckCompuware DBPartner Empirix Bean-test AutomatedQA AQtimeAutomatedQA QESatJava文章來源:安博測試空間技術(shù)中心 Unitware Visual UnitGimpel Software PC-lintMacab
18、e MacabeBorland Optimizeit SuiteQuest Software JProbe SuiteQuest Software Application assurance suiteQuest Software Sql optimizerej-technologies JProfilercyrano workbenchTeleLogic LogiscopeTeleLogic rulecheckSegue SilkPerformer Component Test Edition IBM rational PurifyplusIBM rational Rational Test
19、 Realtime文章來源:安博測試空間技術(shù)中心 開源 junit開源 cactus開源 Hansel開源 TestNG開源 StrutsTestCase開源 JFCUnit開源 Httpunit開源 Dunit開源 cppunit開源 Nunit開源 Xunit開源 JTR文章來源:安博測試空間技術(shù)中心 Linux平臺工具 MallocDebugLinux平臺工具 ValgrindLinux平臺工具 KcachegrindLinux平臺工具 dmallocLinux平臺工具 ElectricFenceLinux平臺工具 LeakTracerLinux平臺工具 memprofLinux平臺工具
20、 ccmallocLinux平臺工具 mprofLinux平臺工具 yamdLinux平臺工具 njamdLinux平臺工具 mpatrol 文章來源:安博測試空間技術(shù)中心 5.1 Compuware DevPartner Studio 快速發(fā)布高可靠應用軟件 減少產(chǎn)品推向市場所需時間 確保產(chǎn)品具有高可靠性與優(yōu)化的性能 “自動化” 增加軟件產(chǎn)量與提高產(chǎn)品性能與質(zhì)量的有效手段文章來源:安博測試空間技術(shù)中心 “自動化” 代碼檢查(Reviewing source code) 錯誤檢測(Automation error detection) 調(diào)諧性能(Tune Performance) 識別未測代碼
21、(Locating untested code) 分布式應用問題檢測文章來源:安博測試空間技術(shù)中心 代碼檢查 Visual Basic, Visual Basic .NET ,C# 源源代碼代碼 基于工業(yè)標準與實踐經(jīng)驗檢測潛在錯誤基于工業(yè)標準與實踐經(jīng)驗檢測潛在錯誤 建立編碼規(guī)則,保持開發(fā)組織內(nèi)部一致性建立編碼規(guī)則,保持開發(fā)組織內(nèi)部一致性文章來源:安博測試空間技術(shù)中心 Code Review文章來源:安博測試空間技術(shù)中心 錯誤檢測 C/C+指針、內(nèi)存錯誤指針、內(nèi)存錯誤 泄露錯誤泄露錯誤 API與與OLE錯誤錯誤 驗證驗證ActiveX控件使用正確性控件使用正確性文章來源:安博測試空間技術(shù)中心 Bounds Checker文章來源:安博測試空間技術(shù)中心 性能調(diào)諧 多進程性能數(shù)據(jù)采樣與監(jiān)視多進程性能數(shù)據(jù)采樣與監(jiān)視 代碼行、函數(shù)運行信息收集代碼行、函數(shù)運行信息收集 代碼運行性能檢查代碼運行性能檢查文章來源:安博測試空間技術(shù)中心 True Time文章來源:安博測試空間技術(shù)中心 識別未測代碼 衡量測試工作充分性衡量測試工作充分性 代碼行、函數(shù)級別顯示代碼執(zhí)行覆蓋情況代碼行、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度特定附屬工程承包協(xié)議范本
- 2024年勞務分包協(xié)議規(guī)定詳解
- 保健品2024年買賣協(xié)議式
- 2023-2024學年浙江省湖州、衢州、麗水高考預測密卷(1)(數(shù)學試題)試卷
- 2024年專業(yè)記賬代理協(xié)議規(guī)范
- 2024年度公司用車租賃協(xié)議條款綱要
- 2024年隔音室建造協(xié)議格式
- 2024年保健品供應協(xié)議模板
- 2024室內(nèi)設(shè)計服務協(xié)議樣本
- 2024年輕鋼結(jié)構(gòu)建設(shè)協(xié)議模板
- 南仁東和中國天眼課件
- 彩票市場銷售計劃書
- 設(shè)備維保的現(xiàn)場維修與故障處理
- 2024《中央企業(yè)安全生產(chǎn)治本攻堅三年行動方案(2024-2026年)》
- 紀錄片《園林》解說詞
- 紀委監(jiān)督工作培訓課件
- 蟲害分析分析報告
- 《民間文學導論》課件
- 《輸血查對制度》課件
- 湘少版五年級下冊英語全期教案
- 高速公路收費站常見特情處理辦法課件
評論
0/150
提交評論