白盒測試的實用技術(shù)_第1頁
白盒測試的實用技術(shù)_第2頁
白盒測試的實用技術(shù)_第3頁
白盒測試的實用技術(shù)_第4頁
白盒測試的實用技術(shù)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

白盒測試的實用技術(shù)第1頁,共32頁,2023年,2月20日,星期一白盒測試技術(shù)是軟件測試的主要方法之一,白盒測試的基本概念、檢查方法、測試方法、測試工具等內(nèi)容是必須掌握的,本章重點討論以下內(nèi)容:●白盒測試的概述●白盒測試的靜態(tài)檢查方法●白盒測試的常用方法軟件測試技術(shù)研究組·中國信息大學(xué)第2頁,共32頁,2023年,2月20日,星期一2.1白盒測試的概述白盒測試的對象主要是源程序。是指用代碼內(nèi)部的分支、路徑、條件,使程序設(shè)計的控制結(jié)構(gòu)導(dǎo)出測試用例,是軟件測試的主要方法之一。2.1.1白盒測試的基本知識白盒測試方法分為兩類:(1)靜態(tài)測試(2)動態(tài)測試:軟件測試技術(shù)研究組·中國信息大學(xué)第3頁,共32頁,2023年,2月20日,星期一2.1.2白盒測試測試原則白盒測試的原則有4點:1)保證一個模塊中所有路徑至少被測試一次;

2)所有邏輯值都要測試真和假兩種情況;

3)檢查程序的內(nèi)部數(shù)據(jù)結(jié)構(gòu)是否有效;

4)檢查上、下邊界及可操作范圍內(nèi)運行所有循環(huán)。軟件測試技術(shù)研究組·中國信息大學(xué)第4頁,共32頁,2023年,2月20日,星期一2.1.3白盒測試的類別、依據(jù)和流程白盒測試策略是首先進行靜態(tài)結(jié)構(gòu)分析,采用先靜態(tài)后動態(tài)的組合方式。然后進行覆蓋測試。利用靜態(tài)測試的分析結(jié)果和通過動態(tài)測試的結(jié)果進行進一步確認(rèn)已達(dá)到測試效果。白盒測試一般要考慮類別、依據(jù)和流程。軟件測試技術(shù)研究組·中國信息大學(xué)第5頁,共32頁,2023年,2月20日,星期一1.白盒測試的類別白盒測試的類別具體分為8大類。(1)軟件公用問題的測試;(2)語言測試;(3)SQL語句測試;(4)數(shù)據(jù)類型測試;(5)界面測試;(6)數(shù)值對象測試;(7)業(yè)務(wù)對象測試;(8)數(shù)據(jù)管理對象測試。軟件測試技術(shù)研究組·中國信息大學(xué)第6頁,共32頁,2023年,2月20日,星期一2.白盒測試依據(jù)軟件需求報告;軟件需求規(guī)格說明;程序設(shè)計文檔;軟件界面設(shè)計;編碼規(guī)范;開發(fā)命名標(biāo)準(zhǔn)。軟件測試技術(shù)研究組·中國信息大學(xué)第7頁,共32頁,2023年,2月20日,星期一3.白盒測試的流程白盒測試的流程分為界面對象和業(yè)務(wù)對象兩種方式。界面對象測試界面對象測試的流程如圖2-1所示。軟件測試技術(shù)研究組·中國信息大學(xué)

圖2-1界面對象的流程圖

第8頁,共32頁,2023年,2月20日,星期一(2)業(yè)務(wù)對象流程測試業(yè)務(wù)對象測試的流程如圖2-2所示。軟件測試技術(shù)研究組·中國信息大學(xué)

圖2-2業(yè)務(wù)對象測試的流程圖第9頁,共32頁,2023年,2月20日,星期一2.2白盒測試方法在白盒測試中,可以使用各種測試方法進行測試。但是,測試要考慮五點問題。(1)測試中,盡量先用自動化工具來進行靜態(tài)結(jié)構(gòu)分析;(2)測試中建議先從靜態(tài)測試開始,如:靜態(tài)結(jié)構(gòu)分析、代碼走查和靜態(tài)質(zhì)量度量,然后進行動態(tài)測試,如:覆蓋率測試;(3)利用靜態(tài)分析的結(jié)果作為依據(jù),再使用代碼檢查和動態(tài)測試的方式對靜態(tài)分析結(jié)果進行進一步確認(rèn),提高測試效率及準(zhǔn)確性;(4)覆蓋率測試是白盒測試中的重要手段,在測試報告中可以作為量化指標(biāo)的依據(jù),對于軟件的重點模塊,應(yīng)使用多種覆蓋率標(biāo)準(zhǔn)衡量代碼的覆蓋率;(5)在不同的測試階段,測試的側(cè)重點是不同的。 軟件測試技術(shù)研究組·中國信息大學(xué)第10頁,共32頁,2023年,2月20日,星期一2.2.1代碼檢查代碼檢查是靜態(tài)測試的主要方法,代碼檢查包括代碼走查、桌面檢查、流程圖審查等。對于代碼檢查從如下幾點進行敘述。1)概述代碼檢查主要檢查代碼和流圖設(shè)計的一致性、代碼結(jié)構(gòu)的合理性、代碼編寫的標(biāo)準(zhǔn)性、可讀性、代碼的邏輯表達(dá)的正確性等方面。包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結(jié)構(gòu)檢查等內(nèi)容。軟件測試技術(shù)研究組·中國信息大學(xué)第11頁,共32頁,2023年,2月20日,星期一2)代碼走查目的代碼走查是為達(dá)到以下目的:★通過檢查代碼程序是不是按照某種標(biāo)準(zhǔn)或規(guī)范編寫的代碼;★通過檢查代碼來發(fā)現(xiàn)程序缺陷;★通過檢查代碼容易發(fā)現(xiàn)程序產(chǎn)生的錯誤;★通過檢查代碼來發(fā)現(xiàn)代碼是不是流程圖要求的;★通過檢查代碼來發(fā)現(xiàn)有沒有遺漏的項目;★要代碼易于移植,代碼經(jīng)常需要在不同的硬件中運行,或者使用不同的編譯器編譯;★要代碼易于閱讀、理解和維護。軟件測試技術(shù)研究組·中國信息大學(xué)第12頁,共32頁,2023年,2月20日,星期一2.2.2代碼檢查方式代碼走查的方式有:1.桌面檢查2.走查3.代碼審查代碼審查可分為以下兩步:第一步:小組負(fù)責(zé)人把程序文本、規(guī)范、相關(guān)要求、流程圖及設(shè)計說明書發(fā)給每個成員。第二步:每個成員依據(jù)所發(fā)材料作為審查依據(jù),但是由程序員講解程序的結(jié)構(gòu)每、邏輯和源程序。在此過程中,小組成員可以提出自己的疑問;程序員在講解自己的程序時,也能發(fā)現(xiàn)自己原來沒有注意到的問題。軟件測試技術(shù)研究組·中國信息大學(xué)第13頁,共32頁,2023年,2月20日,星期一2.2.3代碼檢查項目代碼檢查項目主要有以下幾點:目錄文件組織檢查函數(shù)數(shù)據(jù)類型及變量檢查條件判斷語句檢查循環(huán)體制檢查代碼注釋桌面檢查其它檢查軟件測試技術(shù)研究組·中國信息大學(xué)第14頁,共32頁,2023年,2月20日,星期一2.2.4靜態(tài)結(jié)構(gòu)分析

靜態(tài)結(jié)構(gòu)分析主要是以圖形的方式表現(xiàn)程序的內(nèi)部結(jié)構(gòu),例如函數(shù)調(diào)用關(guān)系圖、函數(shù)內(nèi)部控制流圖。 通過應(yīng)用程序各函數(shù)之間的調(diào)用關(guān)系展示了系統(tǒng)的結(jié)構(gòu)。列出所有函數(shù),用連線表示調(diào)用關(guān)系和作用。靜態(tài)結(jié)構(gòu)主要分析:1.可以檢查函數(shù)的調(diào)用關(guān)系是否正確;2.是否存在孤立的函數(shù)而沒有被調(diào)用;3.明確函數(shù)被調(diào)用的頻繁度,對調(diào)用頻繁的函數(shù)可以重點檢查。軟件測試技術(shù)研究組·中國信息大學(xué)第15頁,共32頁,2023年,2月20日,星期一2.2.5SQL語句測試主要檢查以下兩點:語句檢查類型轉(zhuǎn)換2.2.6代碼檢查的分析與評價代碼檢查的分析與評價主要注意以下兩大點:1.能力陳述經(jīng)代碼檢查證實了的本軟件的能力。2.缺陷和限制軟件測試技術(shù)研究組·中國信息大學(xué)第16頁,共32頁,2023年,2月20日,星期一2.3白盒測試的常用技術(shù)白盒測試常用技術(shù)主要有7種。現(xiàn)分別敘述如下:2.3.1邏輯覆蓋法邏輯覆蓋法主要討論四點:★測試覆蓋率;★邏輯覆蓋;★面向?qū)ο蟮母采w;★測試覆蓋準(zhǔn)則?,F(xiàn)分別進行討論。軟件測試技術(shù)研究組·中國信息大學(xué)第17頁,共32頁,2023年,2月20日,星期一1.測試覆蓋率測試覆蓋率是用于確定測試所執(zhí)行到的覆蓋項的百分比。其中的覆蓋項是指作為測試基礎(chǔ)的一個入口或?qū)傩?,比如語句、分支、條件等。測試覆蓋率可以表示出測試的充分性,在測試分析報告中可以作為量化指標(biāo)的依據(jù),測試覆蓋率越高效果越好。但覆蓋率不是目標(biāo),只是一種手段。其中測試覆蓋率包括功能覆蓋和結(jié)構(gòu)覆蓋軟件測試技術(shù)研究組·中國信息大學(xué)第18頁,共32頁,2023年,2月20日,星期一2.邏輯覆蓋根據(jù)覆蓋目標(biāo)的不同和覆蓋源程序語句的詳盡程度,邏輯覆蓋又可分為語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋、修改條件判定覆蓋、組合覆蓋和路徑覆蓋。3.面向?qū)ο蟮母采w面向?qū)ο蟮母采w主要討論繼承上下文覆蓋和基于狀態(tài)的上下文覆蓋。軟件測試技術(shù)研究組·中國信息大學(xué)第19頁,共32頁,2023年,2月20日,星期一4.測試覆蓋準(zhǔn)則測試覆蓋準(zhǔn)則主要討論ESTCA(ErrorSensitiveTestCasesAnalysis)錯誤敏感測試用例分析和LCSAJ(LinearCodeSequenceandJump)線性代碼序列與跳轉(zhuǎn)。(1)ESTCA覆蓋準(zhǔn)則(2)現(xiàn)行代碼序列與跳轉(zhuǎn)LCSAJ現(xiàn)行代碼序列與條狀LCSAJ是指一組順序執(zhí)行的代碼,以控制流跳轉(zhuǎn)為結(jié)束點??僧a(chǎn)生4層覆蓋軟件測試技術(shù)研究組·中國信息大學(xué)第20頁,共32頁,2023年,2月20日,星期一2.3.2插樁技術(shù)軟件動態(tài)測試中,插樁測試是一個被廣泛應(yīng)用的測試方法。插樁測試就是向源程序中插入語句然后執(zhí)行程序,通過打印語句,獲得動態(tài)信息(我們最為關(guān)心的信息)。在這里,我們舉一個最簡單的例子,以計算整數(shù)X和整數(shù)Y的最大公約數(shù)為例,試圖說明插樁技術(shù)的要點。插樁后求最大公約數(shù)程序流程圖如圖2-3所示。軟件測試技術(shù)研究組·中國信息大學(xué)第21頁,共32頁,2023年,2月20日,星期一

軟件測試技術(shù)研究組·中國信息大學(xué)

圖2-3求最大公約數(shù)程序插樁流程圖

第22頁,共32頁,2023年,2月20日,星期一2.3.3基本路徑測試法基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次?;韭窂綔y試法的重點內(nèi)容如下:★程序的控制流圖:描述程序控制流的一種圖示方法。★程序環(huán)形復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。軟件測試技術(shù)研究組·中國信息大學(xué)第23頁,共32頁,2023年,2月20日,星期一1.程序控制流圖程序控制流圖(可簡稱流圖)是對程序流程圖進行簡化后得到的,它突出表示程序控制流的結(jié)構(gòu)。程序控制流圖是描述程序控制流的一種方式。控制流圖圖形符號:圖形符號:圓圈代表一個結(jié)點,表示一個或多個無分支的語句或源程序語句;程序控制流邊和點圈定的部分叫做區(qū)域。當(dāng)對區(qū)域計數(shù)時,圖形外的一個部分也應(yīng)記為一個區(qū)域;判斷語句中的條件為復(fù)合條件時,即條件表達(dá)式由一個或多個邏輯運算符連接的邏輯表達(dá)式(aandb),則需要改變復(fù)合條件的判斷為一系列只有單個條件的嵌套的判斷。軟件測試技術(shù)研究組·中國信息大學(xué)第24頁,共32頁,2023年,2月20日,星期一基本路徑測試方法是在控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)形復(fù)雜度,導(dǎo)出執(zhí)行路徑的基本集,再從該基本集設(shè)計測試用例?;韭窂綔y試方法包括以下4個步驟:①畫出程序的控制流圖。②計算程序的環(huán)形復(fù)雜度,導(dǎo)出程序基本路徑集中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。③導(dǎo)出基本路徑集,確定程序的獨立路徑。④根據(jù)③中的獨立路徑,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出。程序控制流圖如圖2-4所示。軟件測試技術(shù)研究組·中國信息大學(xué)第25頁,共32頁,2023年,2月20日,星期一軟件測試技術(shù)研究組·中國信息大學(xué)軟件測試技術(shù)研究組·中國信息大學(xué)圖2-4程序控制流程圖第26頁,共32頁,2023年,2月20日,星期一2.3.4域測試法域測試是一種基于程序結(jié)構(gòu)的測試方法,基于對程序輸入空間(域)的分析,選擇測試點進行測試。主要為:1)域錯誤:程序的控制流存在錯誤,對于某一特定的輸入可能執(zhí)行的是一條錯誤路徑,這種錯誤稱為路徑錯誤,也叫做域錯誤;2)計算型錯誤:對于特定輸入執(zhí)行的路徑正確,但賦值語句的錯誤導(dǎo)致輸出結(jié)果錯誤,稱為計算型錯誤;3)丟失路徑錯誤:由于程序中的某處少了一個判定謂詞而引起的丟失路徑錯誤

軟件測試技術(shù)研究組·中國信息大學(xué)第27頁,共32頁,2023年,2月20日,星期一2.3.5符號測試符號測試基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號值,符號值可以是基本的符號變量值,也可以是符號變量值的表達(dá)式。1)符號測試執(zhí)行的是代數(shù)運算,可以作為普通測試的一個擴充;2)符號測試可以看作是程序測試和程序驗證的一個折衷辦法;3)符號測試程序中僅有有限的幾條執(zhí)行路徑;軟件測試技術(shù)研究組·中國信息大學(xué)第28頁,共32頁,2023年,2月20日,星期一2.3.6Z路徑覆蓋法分析程序中的路徑是指檢驗程序從入口開始,執(zhí)行過程中經(jīng)歷的各個語句,直到出口。

溫馨提示

  • 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

提交評論