第5章軟件檢驗(yàn)_第1頁
第5章軟件檢驗(yàn)_第2頁
第5章軟件檢驗(yàn)_第3頁
第5章軟件檢驗(yàn)_第4頁
第5章軟件檢驗(yàn)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)5.1 動(dòng)態(tài)檢驗(yàn)動(dòng)態(tài)檢驗(yàn)5.2 靜態(tài)檢驗(yàn)靜態(tài)檢驗(yàn)5.3 正確性證明正確性證明5.4 測(cè)試步驟測(cè)試步驟 第5章 軟件檢驗(yàn)返回主目錄返回主目錄第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)第5章 軟 件 檢 驗(yàn)5.1 動(dòng)動(dòng) 態(tài)態(tài) 檢檢 驗(yàn)驗(yàn) 動(dòng)態(tài)檢驗(yàn)就是指?jìng)鹘y(tǒng)的測(cè)試,這種方法是使程序有控制地運(yùn)行,并從不同角度觀察程序運(yùn)行的行為,以發(fā)現(xiàn)其中的錯(cuò)誤。測(cè)試的關(guān)鍵是如何設(shè)計(jì)測(cè)試用例。測(cè)試方法不同,所使用的測(cè)試用例也不同。常用的測(cè)試方法有黑盒法和白盒法。黑盒法是指測(cè)試人員將程序看成一個(gè)“黑盒”,也就是說,他不關(guān)心程序內(nèi)部是怎樣做的,而只想檢查程序是否符合它的“功能說明”。所以黑盒法測(cè)試時(shí),

2、測(cè)試用例都是完全根據(jù)程序的功能說明來設(shè)計(jì)的。如果想用黑盒法發(fā)現(xiàn)程序中的所有錯(cuò)誤,則必須用輸入數(shù)據(jù)的所有可能值來檢查程序是否都能產(chǎn)生正確的結(jié)果。 第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)圖5.1 程序的輸入變量與輸出變量模塊xzxy第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 白盒法是指測(cè)試人員必須了解程序的內(nèi)部結(jié)構(gòu),此時(shí),測(cè)試用例是根據(jù)程序的內(nèi)部邏輯結(jié)構(gòu)來設(shè)計(jì)的。如果想用白盒法發(fā)現(xiàn)程序中的所有錯(cuò)誤,則至少必須使程序中每種可能的執(zhí)行路徑都執(zhí)行一次。 例如,圖5.1是一個(gè)很簡(jiǎn)單的程序,它有兩個(gè)輸入變量x、y,一個(gè)輸出變量z。假定程序是在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行,且x、y都是整數(shù),則輸入數(shù)據(jù)的可能值有23223226

3、4種。 如果這個(gè)程序執(zhí)行一次需0.5 ms,則執(zhí)行264次運(yùn)算將需2.9億年! 圖5.2是一個(gè)小程序控制流程圖。這個(gè)程序由一個(gè)循環(huán)語句組成,循環(huán)次數(shù)達(dá)20 次,循環(huán)體內(nèi)是一組嵌套的if語句,其可能的路徑有多條,所以從a到b的路徑多達(dá)520條。 第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)ab圖5.2 程序控制流程圖 第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 如果用這么多情況測(cè)試它,并假設(shè)執(zhí)行一條路徑需0.5 ms,則完成測(cè)試需1512年! 這兩種測(cè)試方法在設(shè)計(jì)測(cè)試用例上是不可取的,也是不可行的。為此,設(shè)計(jì)人員提出了以下幾種設(shè)計(jì)測(cè)試用例的方法:隨機(jī)抽取測(cè)試用例、抽取典型測(cè)試用例、抽取邊界測(cè)試用例、抽取混合測(cè)試用例。

4、這些設(shè)計(jì)測(cè)試用例的方法各有特點(diǎn),至于使用哪種,可根據(jù)測(cè)試對(duì)象的不同分別選用一種,或聯(lián)合使用。第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)5.2 靜靜 態(tài)態(tài) 檢檢 驗(yàn)驗(yàn) 靜態(tài)檢驗(yàn)是指用人工閱讀文檔和程序,從中發(fā)現(xiàn)錯(cuò)誤,或用一些輔助工具來完成這種工作,這種技術(shù)也稱為評(píng)審。實(shí)踐證明它是一種很有效的技術(shù)。 評(píng)審的種類很多,包括需求復(fù)查、概要設(shè)計(jì)(總體設(shè)計(jì))復(fù)查、詳細(xì)設(shè)計(jì)復(fù)查、程序復(fù)查和走查等,其正規(guī)化的程度、方式和參加的人員有所不同。本節(jié)就此概括討論評(píng)審過程和評(píng)審條款等問題。 1評(píng)審過程評(píng)審過程 為了盡早發(fā)現(xiàn)并糾正錯(cuò)誤,應(yīng)將評(píng)審工作與開發(fā)過程結(jié)合起來,使評(píng)審成為前一階段之后必須進(jìn)行的步驟,這樣的模式可用圖5.3來

5、說明。 第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)圖5.3 評(píng)審模式系統(tǒng)需求需求復(fù)查需求說明書分析設(shè)計(jì)設(shè)計(jì)復(fù)查設(shè)計(jì)文檔編程程序程序復(fù)查測(cè)試第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 由于評(píng)審的目的是發(fā)現(xiàn)錯(cuò)誤,為了獲得較好的效果,評(píng)審應(yīng)由開發(fā)人員之外的人來主持,開發(fā)人員與評(píng)審人員相互獨(dú)立是保證評(píng)審質(zhì)量的重要措施之一。評(píng)審人員應(yīng)在軟件開發(fā)技術(shù)和檢驗(yàn)技術(shù)方面受過良好的訓(xùn)練,有豐富的軟件開發(fā)經(jīng)驗(yàn)。 程序走查(code walkthrough)是另一種有效的評(píng)審活動(dòng)。走查的關(guān)鍵在于:以人工運(yùn)行作為媒介,通過這種方式啟發(fā)與會(huì)者向程序員提出種種問題,從而發(fā)現(xiàn)程序中的錯(cuò)誤。 2.評(píng)審條款評(píng)審條款 評(píng)審的目的是盡量快、盡量多地發(fā)現(xiàn)

6、錯(cuò)誤,所以一般的做法是將軟件中常見的各類錯(cuò)誤列成清單作為評(píng)審條款。評(píng)審過程中按評(píng)審條款有針對(duì)性地進(jìn)行檢查,就可達(dá)到多、快、好、省的目的。 評(píng)審條款隨系統(tǒng)的不同可有所不同,可根據(jù)軟件系統(tǒng)的性質(zhì)和復(fù)查專家的經(jīng)驗(yàn)來設(shè)定。第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 5.3 正正確確性性證證明明 動(dòng)態(tài)檢驗(yàn)和靜態(tài)檢驗(yàn)的基本問題在于不可能說明軟件中不存在錯(cuò)誤,人們所能做到的最好的結(jié)果是發(fā)現(xiàn)錯(cuò)誤,因此自然希望能找到某種方法能確切地證明程序是沒有錯(cuò)誤的,這就出現(xiàn)了程序正確性證明的研究領(lǐng)域。 程序證明最常用的方法是歸納斷言法,它對(duì)程序提出一組命題,如能用數(shù)學(xué)方法證明這些命題成立,就可以保證程序中不存在錯(cuò)誤,即它對(duì)所有的輸入

7、都會(huì)產(chǎn)生預(yù)期的正確輸出。但是程序證明存在兩個(gè)問題:其一是如何設(shè)置命題和證明命題,其二是在證明中如何定義“錯(cuò)誤”。 總之,程序正確性證明是一個(gè)鼓舞人心的想法,但距離實(shí)用還有一段路要科學(xué)技術(shù)人員去走。第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)5.4 測(cè)測(cè) 試試 步步 驟驟 軟件開發(fā)過程經(jīng)歷了分析、設(shè)計(jì)、編程等階段,每個(gè)階段都可能產(chǎn)生各種各樣的錯(cuò)誤。據(jù)統(tǒng)計(jì),開發(fā)早期犯下的錯(cuò)誤(如誤解了用戶的要求、模塊界面之間有沖突等)比編程階段犯的錯(cuò)誤要多。為了發(fā)現(xiàn)各階段產(chǎn)生的錯(cuò)誤,測(cè)試過程應(yīng)該與分析、設(shè)計(jì)、編程的過程具有類似的結(jié)構(gòu),以便針對(duì)每一階段可能產(chǎn)生的錯(cuò)誤,采用某些特殊的測(cè)試技術(shù),所以測(cè)試過程通??梢苑秩竭M(jìn)行: (

8、1) 模塊測(cè)試(module testing); (2) 聯(lián)合測(cè)試(integration testing); (3) 系統(tǒng)測(cè)試(system testing)。第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 模塊測(cè)試是對(duì)一個(gè)模塊進(jìn)行測(cè)試,其目的是根據(jù)該模塊的功能說明檢驗(yàn)?zāi)K是否存在錯(cuò)誤。模塊測(cè)試主要可發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤,如某個(gè)變量未賦值、數(shù)組的上下界不正確等。 程序員在完成某個(gè)模塊的編程之后,一般總是要先對(duì)該模塊進(jìn)行私下的測(cè)試,此時(shí),可以先用白盒法選擇一些例子檢驗(yàn)程序的內(nèi)部邏輯,再用黑盒法補(bǔ)充一些例子。程序員本人經(jīng)私下測(cè)試后認(rèn)為程序基本可行,才會(huì)將程序交付出來。程序交付出來之后,由其他人員以黑

9、盒法為主再次對(duì)該模塊進(jìn)行測(cè)試。 聯(lián)合測(cè)試又稱集成測(cè)試或聯(lián)調(diào),其目的是根據(jù)模塊結(jié)構(gòu)圖將各個(gè)模塊連接起來進(jìn)行,以便發(fā)現(xiàn)問題。聯(lián)合測(cè)試可以發(fā)現(xiàn)概要設(shè)計(jì)時(shí)犯的錯(cuò)誤,如模塊界面上的問題等。與后面的系統(tǒng)測(cè)試一樣,聯(lián)合測(cè)試的主要目標(biāo)已不是發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤,所以通常只采用黑盒法。第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn)圖5.4 軟件開發(fā)過程分析綜合測(cè)試設(shè)計(jì)聯(lián)合測(cè)試編程模塊測(cè)試第第5 5章章 軟件檢驗(yàn)軟件檢驗(yàn) 系統(tǒng)測(cè)試將硬件、軟件和操作人員等視為一個(gè)整體,檢驗(yàn)它是否有不符合需求說明書的地方,這一步可以發(fā)現(xiàn)設(shè)計(jì)和分析階段的錯(cuò)誤,如誤解了用戶的要求,與用戶要求有沖突等。系統(tǒng)測(cè)試后就可由用戶來驗(yàn)收。 測(cè)試中如發(fā)現(xiàn)錯(cuò)誤,需要回到編程、設(shè)計(jì)、分析等階段作相應(yīng)的修改,也就是說,需要進(jìn)行“再編程”、“再設(shè)計(jì)”和“再分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論