軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)課件 4.8符號(hào)測(cè)試_第1頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)課件 4.8符號(hào)測(cè)試_第2頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)課件 4.8符號(hào)測(cè)試_第3頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)課件 4.8符號(hào)測(cè)試_第4頁(yè)
軟件質(zhì)量保證與測(cè)試(慕課版)(第2版)課件 4.8符號(hào)測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件質(zhì)量保證與測(cè)試

符號(hào)測(cè)試第4章白盒測(cè)試SoftwareQualityAssuranceandTesting符號(hào)測(cè)試

符號(hào)測(cè)試的基本思想是允許程序的輸入不僅是具體的數(shù)值數(shù)據(jù),而且可以是符號(hào)值,這一方法也因此而得名。

符號(hào)執(zhí)行法是一種介于程序測(cè)試用例執(zhí)行與程序正確性證明之間的方法。它使用一個(gè)專用的程序,對(duì)輸入的源程序進(jìn)行解釋。在解釋執(zhí)行時(shí),允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號(hào)值,符號(hào)值可以是基本的符號(hào)變量,也可以是符號(hào)變量的表達(dá)式。符號(hào)測(cè)試專用解釋程序

被測(cè)程序符號(hào)輸入輸出符號(hào)表達(dá)式

符號(hào)測(cè)試的執(zhí)行結(jié)果,是包含輸入符號(hào)的表達(dá)式。符號(hào)測(cè)試

符號(hào)測(cè)試執(zhí)行得到的結(jié)果,可以有兩個(gè)用途:一是可以檢查程序的執(zhí)行結(jié)果是否符合程序的規(guī)格或者是預(yù)期的目的;二是通過程序的符號(hào)執(zhí)行結(jié)果,可以分析程序的執(zhí)行路徑,為進(jìn)一步自動(dòng)生成測(cè)試數(shù)據(jù)提供條件。符號(hào)測(cè)試

下面我們來(lái)看兩個(gè)簡(jiǎn)單的例子,以幫助我們理解符號(hào)測(cè)試。設(shè)有一段程序,功能是計(jì)算兩個(gè)數(shù)的和,如果要把兩個(gè)數(shù)相加所有可能的情況如1+1,1+2,2+1,......等等,都輸入進(jìn)去測(cè)試一次,這是不可能做到的,也是沒有必要的。于是我們會(huì)想,是不是可以輸入兩個(gè)符號(hào),A和B,只要執(zhí)行結(jié)果是A+B,那么程序就是正確的。這就是通過符號(hào)測(cè)試來(lái)檢查程序執(zhí)行結(jié)果是否符合程序的規(guī)格或者是預(yù)期的目的。當(dāng)然這一般只適用于簡(jiǎn)單的程序。符號(hào)測(cè)試

再來(lái)看另外一個(gè)例子,設(shè)有程序段P1:

if(x>=60)

y=“合格”;

else

y=“不合格”;對(duì)其進(jìn)行測(cè)試時(shí),如果要把x的所有取值如x=10,15,20,80.5,......等等,都輸入進(jìn)去測(cè)試一次,測(cè)試工作量還是很大的。此時(shí)可以采用符號(hào)測(cè)試,輸入符號(hào)C。符號(hào)測(cè)試

對(duì)程序段P1,輸入符號(hào)C后的執(zhí)行結(jié)果,一般是如下形式的符號(hào)表達(dá)式組: “if(C>=60)y=“合格”” “if(C

<60)y=“不合格””

通過符號(hào)測(cè)試執(zhí)行的這一結(jié)果,我們可以分析出程序有兩條執(zhí)行路徑,兩條執(zhí)行路徑分叉的依據(jù)是輸入數(shù)據(jù)是否>=60,這樣我們就可以針對(duì)這兩條路徑設(shè)計(jì)測(cè)試數(shù)據(jù),如70和50。而且,通過一定的技術(shù)手段,這樣的測(cè)試數(shù)據(jù)可以自動(dòng)生成。

符號(hào)測(cè)試中的解釋程序需要在被測(cè)試程序的判定點(diǎn)計(jì)算謂詞。例如,對(duì)程序段P1進(jìn)行符號(hào)測(cè)試時(shí)判斷輸入數(shù)據(jù)C是否>=60。很顯然,一個(gè)IF語(yǔ)句就會(huì)形成兩個(gè)執(zhí)行分支。符號(hào)測(cè)試一個(gè)判斷語(yǔ)句if……then…else的兩個(gè)分支在一般情況下需要進(jìn)行并行計(jì)算。語(yǔ)法路徑的分支形成一棵“執(zhí)行樹”,樹中每一個(gè)結(jié)點(diǎn)都是一個(gè)表示執(zhí)行到該結(jié)點(diǎn)時(shí)累加判定的謂詞,也就是包含輸入符號(hào)、判斷和運(yùn)算的表達(dá)式。符號(hào)測(cè)試

一旦解釋程序?qū)Ρ粶y(cè)源程序的每一條語(yǔ)法路徑都進(jìn)行了符號(hào)計(jì)算,就會(huì)對(duì)每一條路徑給出一組輸出,它是用輸入符號(hào),再加上遍歷這條路徑所必須滿足的條件的謂詞組,這兩者的符號(hào)形式表示的。實(shí)際上,這種輸出包含了程序功能的定義。在理想情形下,這種輸出可以自動(dòng)地與被測(cè)程序所要具備的功能,也就是它的程序規(guī)格,進(jìn)行比較。否則可用手工進(jìn)行比較。符號(hào)測(cè)試

由于語(yǔ)法路徑的數(shù)目可能很大,再加上其中有許多是不可達(dá)路徑,這時(shí)需要對(duì)執(zhí)行樹進(jìn)行修剪。但是修剪時(shí)必須特別小心,不要把“重要”路徑無(wú)意中修剪掉。另外,還有一個(gè)問題:如果對(duì)象源程序中包含有循環(huán),而循環(huán)的結(jié)束取決于輸入的值,那么執(zhí)行樹就會(huì)是無(wú)窮的,這時(shí),必須加以人工干預(yù),進(jìn)行某種形式的動(dòng)態(tài)修剪,以保證解釋執(zhí)行是可以終止的,而不會(huì)無(wú)限進(jìn)行下去。符號(hào)測(cè)試

符號(hào)執(zhí)行更有用的一個(gè)結(jié)果是用于產(chǎn)生測(cè)試數(shù)據(jù)。符號(hào)執(zhí)行的各種語(yǔ)法路徑輸出的累加謂詞組(只要它是可解的)定義了一組等價(jià)類,每一等價(jià)類又定義了能夠經(jīng)過該路徑的輸入應(yīng)當(dāng)滿足的條件,因此可依據(jù)這種信息來(lái)選擇測(cè)試數(shù)據(jù)。尋找好的測(cè)試數(shù)據(jù)就等于尋找語(yǔ)義(即可達(dá))路徑。

符號(hào)執(zhí)行方法還可以度量測(cè)試覆蓋程度。如果路徑謂詞的析

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論