面向?qū)ο筌浖䴗y試技術(shù)研究
(作者未知) 2011/6/23
(接上頁)一個(gè)函數(shù)可能被封裝在具有繼承關(guān)系的多個(gè)類中,子類中還可以對繼承的特征進(jìn)行覆蓋或重定義。
5、多態(tài)對測試的影響
多態(tài)性是指一個(gè)引用可以與多個(gè)對象綁定的能力。多態(tài)能減少代碼的復(fù)雜性和規(guī)模,同時(shí)還可以實(shí)現(xiàn)動(dòng)態(tài)綁定。但依賴于不規(guī)則的類層次的動(dòng)態(tài)綁定可能產(chǎn)生編程人員沒有想到的結(jié)果。某些綁定能正確的工作但并不能保證所有的綁定都能正確地運(yùn)行。以后綁定的對象可能很容易將消息發(fā)送給錯(cuò)誤的類,執(zhí)行錯(cuò)誤的功能,還可能導(dǎo)致一些與消息序列和狀態(tài)相關(guān)的錯(cuò)誤。
三、面向?qū)ο筌浖䴗y試的層次劃分及內(nèi)容
面向?qū)ο筌浖䴗y試的測試工作過程與傳統(tǒng)的測試一樣,分為以下幾個(gè)階段:制定測試計(jì)劃、產(chǎn)生測試用例、執(zhí)行測試和評價(jià)。目前,面向?qū)ο筌浖䴗y試劃分方法是:方法測試、類測試、類簇測試、系統(tǒng)測試。
1、方法測試
方法測試主要考察封裝在類中的一個(gè)方法對數(shù)據(jù)進(jìn)行的操作,它與傳統(tǒng)的單元模塊測試相對應(yīng),可以將傳統(tǒng)成熟的單元測試方法。但是,方法與數(shù)據(jù)一起被封裝在類中,并通過向所在對象發(fā)送消息來驅(qū)動(dòng),它的執(zhí)行與對象狀態(tài)有關(guān),也有可能會改變對象的狀態(tài)。因此,設(shè)計(jì)測試用例時(shí)要考慮設(shè)置對象的初態(tài),使它收到消息時(shí)執(zhí)行指定的路徑。
2、類測試
主要考察封裝在一個(gè)類中的方法與數(shù)據(jù)之間的相互作用。一個(gè)對象有它自己的狀態(tài)和依賴于狀態(tài)的行為,對象操作既與對象狀態(tài)有關(guān),又反過來可能改變對象的狀態(tài)。普遍認(rèn)為這一級別的測試是必須的。類測試時(shí)要把對象與狀態(tài)結(jié)合起來,進(jìn)行對象狀態(tài)行為的測試。類測試可分以下兩個(gè)部分:
(1)基于狀態(tài)的測試
考察類的實(shí)例在其生命期各個(gè)狀態(tài)下的情況。這類方法的優(yōu)勢是可以充分借鑒成熟的有限狀態(tài)自動(dòng)機(jī)理論,但執(zhí)行起來還很困難。一是狀態(tài)空間可能太大,二是很難對一些類建立起狀態(tài)模型,沒有一種好的規(guī)則來識別對象狀態(tài)及其狀態(tài)轉(zhuǎn)換,三是可能缺乏對被測對象的控制和觀察機(jī)制的支持。
(2)基于響應(yīng)狀態(tài)的測試
從類和對象的責(zé)任出發(fā),以外界向?qū)ο蟀l(fā)送特定的消息序列來測試對象。較有影響的是基于規(guī)約的測試方法,和基于程序的測試;谝(guī)約的測試往往可以根據(jù)規(guī)約自動(dòng)或半自動(dòng)地生成測試用例,但未必能提供足夠的代碼覆蓋率。基于程序的測試大都是在傳統(tǒng)的基于程序的測試技術(shù)的推廣,有一定的實(shí)用性但方法過于復(fù)雜且效率不高。
3、系統(tǒng)測試
系統(tǒng)測試是對所有類和主程序構(gòu)成的整個(gè)系統(tǒng)進(jìn)行整體測試,以驗(yàn)證軟件系統(tǒng)的正確性和性能指標(biāo)等滿足需求式樣說明書和任務(wù)書所指定的要求。它與傳統(tǒng)的系統(tǒng)測試一樣,包括功能測試、性能測試、余量測試等,可套用傳統(tǒng)的系統(tǒng)測試方法。
四、面向?qū)ο筌浖䴗y試的覆蓋準(zhǔn)則
測試覆蓋標(biāo)準(zhǔn)是對軟件測試充分性的度量,任何測試策略都應(yīng)該有相對應(yīng)的覆蓋標(biāo)準(zhǔn),在此基礎(chǔ)上選擇測試用例,通過覆蓋率來說明測試結(jié)果的可信性。傳統(tǒng)的軟件測試的覆蓋標(biāo)準(zhǔn)對基于代碼的測試而言,主要是代碼覆蓋,可細(xì)分為語句覆蓋、路徑覆蓋、分支覆蓋、判定分支覆蓋,其中判定分支是最強(qiáng)的覆蓋標(biāo)準(zhǔn)。對于面向?qū)ο筌浖臏y試而言代碼的覆蓋只對方法級測試適用,為了測試面向?qū)ο蟪绦蛟O(shè)計(jì)機(jī)制帶來的錯(cuò)誤風(fēng)險(xiǎn),必須引入新的覆蓋標(biāo)準(zhǔn)。對于繼承而言,要求達(dá)到繼承的上下文覆蓋;多態(tài)性要求覆蓋所有可能的消息綁定;基于代數(shù)規(guī)約的測試要求能達(dá)到公理的覆蓋;基于狀態(tài)的測試要求能覆蓋所有的狀態(tài)和轉(zhuǎn)換。
參考文獻(xiàn)
[1] 朱少民,軟件測試方法和技術(shù),北京:清華大學(xué)出版社2005
[2] 徐中偉,軟件測試質(zhì)量的度量,計(jì)算機(jī)工程與應(yīng)用,2002
[3] 張雪萍,類測試技術(shù)研究,計(jì)算機(jī)工程與應(yīng)用,2002
|