9.2程序中隱藏錯誤數(shù)量估計_第1頁
9.2程序中隱藏錯誤數(shù)量估計_第2頁
9.2程序中隱藏錯誤數(shù)量估計_第3頁
9.2程序中隱藏錯誤數(shù)量估計_第4頁
9.2程序中隱藏錯誤數(shù)量估計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件質(zhì)量保證與測試第9章軟件質(zhì)量與軟件質(zhì)量管理SoftwareQualityAssuranceandTesting9.2程序中隱藏錯誤數(shù)量估計程序中隱藏錯誤數(shù)量估計

由于我們無法對軟件進行窮舉測試,所以即使是經(jīng)過測試的軟件,其中可能也會有隱藏的錯誤。那么一個經(jīng)過測試的軟件中究竟還隱藏有多少錯誤呢?這個問題無法準確回答,但是利用測試的統(tǒng)計數(shù)據(jù),我們可以對軟件中隱藏的錯誤數(shù)量進行估計,當(dāng)然這種估計是需要建立在合理的數(shù)學(xué)模型基礎(chǔ)上的。數(shù)學(xué)模型測試統(tǒng)計數(shù)據(jù)估算結(jié)果撒播模型法有一個實際問題,如何估計一個池塘中魚的總數(shù)?全部撈上來數(shù)一下嗎?這樣做成本太高,而且也沒有這個必要!

我們先來看一種簡單的對程序中隱藏錯誤數(shù)量進行估計的方法,這種方法基于撒播模型。撒播模型(SeedingModels)

一種簡單的方法是:撒一網(wǎng),捕撈上來Nt尾魚,做上標記,放回到池塘中,等待其與未做標記的魚充分混合,幾天以后,再從池塘中任意撈出一些魚的樣本,得到帶標記的魚nt尾,無標記者n尾。撒播模型法Nt①②③

nt{n有等比關(guān)系式N

根據(jù)等比關(guān)系:

變形得

Nt*n+Nt*nt=nt*Nt+nt*N

化簡后可得到池塘中魚總數(shù)N:

得出的N不含做上標記的魚的數(shù)量。當(dāng)魚的總數(shù)遠大于做標記的魚的數(shù)量時,做標記的

魚的數(shù)量對于估算值可忽略不計。

撒播模型法

如果設(shè)

N表示含有做上標記的魚的總數(shù)量

等比關(guān)系式變?yōu)?/p>

變形得

N*nt=Nt*n+Nt*nt

兩邊同時除以nt后可得

與前面的結(jié)果只是形式不一樣,實質(zhì)上是一樣的。撒播模型法模仿上述方法,假設(shè)在開始測試以前,軟件中的錯誤數(shù)為N,首先,往程序中人為插入NS個錯誤,經(jīng)過一段時間的測試工作以后,發(fā)現(xiàn)的錯誤可以分為兩類,一類屬于人為插入的錯誤ns,另一類是軟件中原來就有的錯誤n,則軟件中錯誤數(shù)的估算值為:撒播模型法軟件×N×Ns軟件×N×Ns測試{×n×ns

基于撒播模型,對程序中隱藏的錯誤數(shù)量進行估計,這一方法在應(yīng)用時存在兩個實際困難:人為植入錯誤較為困難不同的錯誤被發(fā)現(xiàn)的難易程度不一樣,被插入的錯誤并不一定能代表各種可能的錯誤,估算結(jié)果不一定準確。撒播模型法

例如,在開始測試前,我們往程序中人為插入10個錯誤,這些錯誤都是已知類型的常見錯誤,經(jīng)過一段時間的測試工作以后,這10個錯誤都被發(fā)現(xiàn)了,這樣一來,根據(jù)算式,則軟件中隱藏的錯誤數(shù)估算值為0,這顯然有一定的局限性。撒播模型法{ns=10Ns=10總數(shù)=已發(fā)現(xiàn)數(shù)隱藏數(shù)為0第二種方法叫

Hyman分別測試法。什么是分別測試法呢,為了幫助大家理解,我們先來做一個類比。

張三和李四兩人都到某個城市游玩,他們每人各自隨機選取了3個景點參觀游覽,如果他們各自選取的

3個景點重合度高說明什么問題?重合度低又說明什么問題呢?Hyman分別測試法景點

經(jīng)過分析我們不難得知,如果他們各自隨機選取的3個景點重合度高,則說明他們可以選擇的余地小,也就是總的景點數(shù)量少。

極端情況下,如果這個城市只有3個景點,那么他們的選擇一定是完全重合的!

重合度低,則說明總的景點數(shù)多,他們可以選擇的余地大。Hyman分別測試法與此類似,Hyman分別測試法由兩個測試員同時互相獨立地測試同一程序的兩個副本,用t表示測試時間,記t=0時,程序中原有錯誤總數(shù)是B0;記t=t1時,Hyman分別測試法B1:第一個人發(fā)現(xiàn)的錯誤B2

:第二個人發(fā)現(xiàn)的錯誤bc:兩人都發(fā)現(xiàn)的錯誤b1:第二個人發(fā)現(xiàn)的不在B1中的錯誤顯然:B2=bc+b1B1B2bcb1

B0Hyman分別測試法B1B2bcb1

站在第一個人的角度,以B0為樣本空間,他的錯誤發(fā)現(xiàn)率為B1/B0,以B2為樣本空間,他的錯誤發(fā)現(xiàn)率為bc/B2,同一個人的錯誤發(fā)現(xiàn)率相等,所以有:

B0變形后可得:

站在第二個人角度的計算過程類似,結(jié)果是一樣的。第三種方法叫回歸分析。有變量X和Y,假設(shè)我們事先并不知道它們之間的定量關(guān)系,但有幾組已知數(shù)據(jù),X=1時Y=2,X=3時Y=6,X=5時Y=10,根據(jù)這些數(shù)據(jù),我們很容易推出Y=2X。這就是一種最為簡單的線性回歸分析?;貧w分析(regressionanalysis)指的是確定兩個或兩個以上變量間定量關(guān)系的一種統(tǒng)計分析方法。

回歸分析

回歸分析包括兩大步驟。

先要得到回歸函數(shù),并畫出回歸曲線。

即根據(jù)已知數(shù)據(jù),確定變量之間的函數(shù)關(guān)系,并畫出回歸曲線圖。

回歸分析{X=x1,x2,x3,......Y=y1,y2,y3,......

例如,已知軟件項目A在不同的測試時間點上的幾組累計錯誤數(shù),如下表和右圖中的數(shù)據(jù)點所示。

測試時間累計的錯誤數(shù)項目A

回歸分析測試時間累計錯誤數(shù)t1y1t2y2t3y3t4y4

根據(jù)這些離散的點,可以借助數(shù)學(xué)工具,進行擬合,得出測試時間和累計的錯誤數(shù)之間的函數(shù)關(guān)系,并進而畫出曲線圖。測試時間累計的錯誤數(shù)項目A

回歸分析

得出回歸函數(shù),畫出回歸曲線之后,回歸分析的第二個步驟就是預(yù)測任何時刻的錯誤數(shù)。此時只需要把測試時間參數(shù)代入回歸函數(shù)即可算出總的錯誤數(shù),然后總的錯誤數(shù)減去已經(jīng)發(fā)現(xiàn)的錯誤數(shù),就可估算得出軟件中隱藏的錯誤數(shù)。

回歸分析

設(shè)有兩個軟件項目A和B,根據(jù)它們各自幾組在不同的測試時間點上的累計錯誤數(shù)數(shù)據(jù),擬合得

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論