測試培訓(xùn)7軟件結(jié)構(gòu)測試.ppt_第1頁
測試培訓(xùn)7軟件結(jié)構(gòu)測試.ppt_第2頁
測試培訓(xùn)7軟件結(jié)構(gòu)測試.ppt_第3頁
測試培訓(xùn)7軟件結(jié)構(gòu)測試.ppt_第4頁
測試培訓(xùn)7軟件結(jié)構(gòu)測試.ppt_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件結(jié)構(gòu)測試,概覽,在本章中,我們將學(xué)習(xí): 結(jié)構(gòu)測試概述 程序結(jié)構(gòu)分析 邏輯覆蓋 結(jié)構(gòu)性測試案例,目標(biāo),完成此課程之后,學(xué)員將具備以下能力: 了解結(jié)構(gòu)測試的含義 進(jìn)行程序結(jié)構(gòu)分析 使用邏輯覆蓋的方法進(jìn)行白盒測試 使用Devpartner進(jìn)行白盒測試,課程目錄,結(jié)構(gòu)測試概述 程序結(jié)構(gòu)分析 邏輯覆蓋 結(jié)構(gòu)測試案例分析 結(jié)構(gòu)測試工具使用,結(jié)構(gòu)測試定義,把測試對象看做一個透明的盒子 白盒測試是根據(jù)被測程序的內(nèi)部結(jié)構(gòu)設(shè)計(jì)測試用例并完成測試的一種測試方法 白盒測試或邏輯驅(qū)動測試 基于一個應(yīng)用代碼的內(nèi)部邏輯知識,測試覆蓋全部代碼、分支、路徑和條件,結(jié)構(gòu)測試特點(diǎn),可以構(gòu)成測試數(shù)據(jù)使特定程序部分得到測試 有一定

2、的充分度量手段 可獲得較多工具支持 通常只用于單元測試,結(jié)構(gòu)測試的方法,程序結(jié)構(gòu)分析 代碼走查 代碼審查 控制流分析 數(shù)據(jù)流分析 信息流分析,邏輯覆蓋 語句覆蓋 分支覆蓋 條件覆蓋 分支-條件覆蓋 路徑覆蓋,結(jié)構(gòu)測試的局限,不可能查出程序是否違反了設(shè)計(jì)規(guī)范 不可能查出程序中因遺漏路徑而出錯 可能發(fā)現(xiàn)不了一些與數(shù)據(jù)有關(guān)的錯誤 不易生成測試數(shù)據(jù),代碼覆蓋率,采用白盒法進(jìn)行測試時(shí),考慮的是測試用例對程序內(nèi)部邏輯的覆蓋程度 最徹底的白盒法是覆蓋程序中的每一條路徑,但這往往無法實(shí)現(xiàn) 采用其它一些標(biāo)準(zhǔn)來量度覆蓋的程度,并希望覆蓋程度盡可能高些,課程目錄,結(jié)構(gòu)測試概述 程序結(jié)構(gòu)分析 邏輯覆蓋 結(jié)構(gòu)測試案例分

3、析 結(jié)構(gòu)測試工具使用,程序結(jié)構(gòu)分析,代碼走查 代碼審查 控制流分析 數(shù)據(jù)流分析 信息流分析,代碼走查,含義 代碼走查是由一組程序和錯誤檢查技術(shù)組成,并以代碼審查組方式進(jìn)行 人員 組長(有威信的資深程序員擔(dān)任):負(fù)責(zé)分配資料、安排計(jì)劃、主持會議、記錄并保存被發(fā)現(xiàn)的錯誤 資深程序員 測試人員 程序開發(fā)員(可做會議主持),代碼走查,原因 功能測試很難實(shí)現(xiàn) 有太多的條件 有太多的測試用例,代碼審查,內(nèi)容 檢查代碼和設(shè)計(jì)的一致性 檢查代碼對標(biāo)準(zhǔn)的遵循、可讀性 檢查代碼的邏輯表達(dá)的正確性 檢查代碼結(jié)構(gòu)的合理性,代碼審查,步驟 準(zhǔn)備 程序閱讀 審查會 跟蹤及報(bào)告,控制流分析,非結(jié)構(gòu)化程序會給測試、排錯、和程

4、序的維護(hù)帶來許多困難 要求寫出的程序結(jié)構(gòu)良好 檢查程序的控制結(jié)構(gòu)成為十分有意義的工作,程序流程圖,1,3,2,5,控制流圖,1,2,4,3,5,a,b,c,d,e,f,控制流圖,節(jié)點(diǎn) 標(biāo)有編號的圓圈 程序流程圖中矩形框所表示的處理 菱形表示的兩個甚至多個出口判斷 多條流線相交的匯合點(diǎn),控制流圖,控制流線或弧 箭頭 與程序流程圖中的流線一致,表明了控制的順序 控制流線通常標(biāo)有名字,控制流圖矩陣,1,2,3,4,5,1,2,3,4,5,控制流圖矩陣,便于機(jī)器表示和處理控制流圖 連接弧的節(jié)點(diǎn)的號碼決定了矩陣中元素的位置 注意控制流的方向 兩個節(jié)點(diǎn)沒有弧線,所對應(yīng)的位置也就沒有元素,程序結(jié)構(gòu)的基本要求

5、,寫出的程序不應(yīng)包含: 轉(zhuǎn)向并不存在的標(biāo)號 沒有用的語句標(biāo)號 從程序入口進(jìn)入后無法達(dá)到的語句 不能達(dá)到停機(jī)語句的語句,數(shù)據(jù)流分析,查找引用未定義變量等程序錯誤 查找對以前未曾使用的變量再次賦值等數(shù)據(jù)流異常的情況 常見的錯誤表現(xiàn)形式 錯拼名字 名字混淆 語句丟失,數(shù)據(jù)流,如果程序中某一語句執(zhí)行時(shí)能改變某程序變量V的值,則稱V被該語句定義 如果一語句的執(zhí)行引用了內(nèi)存中變量V的值,則稱V被該語句引用 例如: X=Y+Z; if YZ then return;,控制流圖與數(shù)據(jù)流表,1,2,3,4,10,6,7,5,8,9,11,信息流分析,通過對輸入數(shù)據(jù)、輸出數(shù)據(jù)、語句之間的關(guān)系的分析來檢查程序錯誤

6、整除算法例子 輸入:in_m是被除數(shù),in_n是除數(shù) 輸出:out_q是商,out_r是余數(shù),整除算法例子,out_q = 0; out_r = in_m; While(out_r = in_n) out_q +; out_r = out_r in_n; ,信息流關(guān)系圖,in_m,in_n,1,2,3,4,5,out_q,out_r,1,2,3,4,5,out_q,out_r,in_m,In_n,(1),(2),(3),信息流分析,能夠列出對輸入變量的所有可能的引用 在程序的任何指定點(diǎn)檢查其執(zhí)行可能影響某一輸出變量值的語句 輸入輸出關(guān)系提供一種檢查,看每個輸出值是否由相關(guān)的輸入值,而不是其他值

7、導(dǎo)出,課程目錄,白盒測試概述 程序結(jié)構(gòu)分析 邏輯覆蓋 結(jié)構(gòu)測試案例分析 結(jié)構(gòu)測試工具使用,覆蓋準(zhǔn)則,測試到什么地步可以結(jié)束測試? 覆蓋準(zhǔn)則,被測小程序,if (A 1 ,被測程序段流程圖,A 1 i3) statement; ,for(i=0;i3 ,語句覆蓋率的問題,能達(dá)到很高的語句覆蓋率 語句覆蓋率看似很高,卻有嚴(yán)重缺陷 if(x!=1) statements; ; else statement; ,99句,1句,測試用例 x = 2 語句覆蓋率99% 50%的分支沒有達(dá)到,分支覆蓋,設(shè)計(jì)若干測試用例,運(yùn)行被測程序,使得程序中每個判斷的真假分支至少經(jīng)歷一次 又稱判定覆蓋 while語句、s

8、witch語句、異常處理、跳轉(zhuǎn)語句等等同樣可以使用分支覆蓋來測試 分支覆蓋率 已取過“真”和“假”兩個值的判定占程序中所有條件判定個數(shù)的百分比,分支覆蓋測試用例,路徑ace A=2 B=0 X=3 路徑abd A=1 B=0 X=1,路徑acd A=3 B=0 X=3 路徑abe A=2 B=1 X=2,或,分支覆蓋的利弊,分支覆蓋要比語句覆蓋查錯能力強(qiáng)一些:執(zhí)行了分支覆蓋,實(shí)際也就執(zhí)行了語句覆蓋 分支覆蓋與語句覆蓋存在同樣的缺點(diǎn) 不能查出條件語句錯誤 不能查出邏輯運(yùn)算錯誤 不能查出循環(huán)次數(shù)錯誤 不能查出循環(huán)條件錯誤,條件覆蓋,設(shè)計(jì)若干測試用例,執(zhí)行被測程序以后,要使每個判斷中的每個條件的可能

9、取值至少滿足一次,條件覆蓋分析,第1個判斷應(yīng)考慮 A 1,記為T1 A 1,記為T4 X = 1,記為F4,條件覆蓋測試用例,似乎執(zhí)行了條件覆蓋必然實(shí)現(xiàn)了分支覆蓋?,條件覆蓋測試用例,執(zhí)行條件覆蓋并不能實(shí)現(xiàn)分支覆蓋,條件覆蓋的利弊,能夠檢查所有的條件錯誤 不能實(shí)現(xiàn)對每個分支的檢查 用例數(shù)量的增加 a for(j = i+1; j = n; j+) if(Aj Ak) k = j; ,程序流程圖,k = i; j = i+1,j = n?,Aj Ak?,k = j,j+,a,c,b,d,e,f,最少測試用例數(shù),3,測試用例(最少),疑問,測試用例是否足夠?循環(huán)測試是否足夠? 在結(jié)構(gòu)復(fù)雜,測試用例數(shù)非常多的情況下,這些測試用例已經(jīng)可以滿足測試,但并不具有充分性 如何達(dá)到充分性? 測試2次循環(huán),測試用例(充分),課程目錄,結(jié)構(gòu)測試概述 程序結(jié)構(gòu)分析 邏輯覆蓋 結(jié)構(gòu)測試案例分析 結(jié)構(gòu)測試工具使用,目前的白盒測試工具,DevP

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論