成 健
(302設(shè)計(jì)研究所,貴州貴陽,550009)
伴隨著軟件工程學(xué)科而發(fā)展出來的軟件測(cè)試,這是軟件工程極其重要的組成部分,也是屬于保證軟件質(zhì)量的重要前提。往往軟件開發(fā)總費(fèi)用的四成以上是軟件測(cè)試費(fèi)用,從這就能夠了解熬,在開發(fā)軟件過程當(dāng)中軟件測(cè)試能夠發(fā)揮特別重要作用,這并不只是局限于屬于軟件開發(fā)的一個(gè)階段,而且在整個(gè)軟件生命周期過程貫穿。從當(dāng)前的情況進(jìn)行分析,面向?qū)ο蠹夹g(shù)這種軟件開發(fā)技術(shù)還比較新,廣泛應(yīng)用的面向過程開發(fā)方法已經(jīng)逐步被代替,這門新興技術(shù)能夠?qū)④浖C(jī)解決。面向?qū)ο蠹夹g(shù)則會(huì)擁有更為規(guī)范編程風(fēng)格與系統(tǒng)結(jié)構(gòu),使用數(shù)據(jù)安全性優(yōu)化,程序代碼重要作用提升。面向?qū)ο鬁y(cè)試技術(shù)其主要是適當(dāng)改變面向過程技術(shù),本文通過對(duì)面向?qū)ο蠹夹g(shù)特點(diǎn)的有效結(jié)合,剖析面向?qū)ο筌浖y(cè)試方法與過程。
以往傳統(tǒng)面向過程分析這一過程就是分解功能,這也是將系統(tǒng)當(dāng)成是能夠分析功能集合,其切入點(diǎn)就是一個(gè)系統(tǒng)需要怎樣處理信息方法與過程,借助抽象過程滿足系統(tǒng)需要。面向?qū)ο蠓治鼍褪怯行ЫY(jié)合信息造型概念和面向?qū)ο蟪绦蛟O(shè)計(jì)語言概念而形成的分析方法,最終往往獲得描述問題精簡(jiǎn)圖表形式。針對(duì)這樣的情況面向過程與面向?qū)ο筮@兩者之間主要存在以下差異:
一是對(duì)象是屬于單獨(dú)組件,往往大于一個(gè)軟件功能模塊;二是對(duì)象到子系統(tǒng)集成往往是松散藕合,系統(tǒng)的頂層并不明顯,那么對(duì)象相互之間數(shù)據(jù)接口比軟件模塊之間的接口明顯少;三是當(dāng)復(fù)用對(duì)象,測(cè)試者就沒有辦法進(jìn)入到組件內(nèi)部對(duì)其代碼進(jìn)行分析,在面向?qū)ο筌浖_發(fā)過程中會(huì)存在大量插件或者是中間件,那么并不需要測(cè)試這些插件或者中間件。
一是單個(gè)對(duì)象類測(cè)試。進(jìn)行單個(gè)對(duì)象類測(cè)試這也就可以將其稱之為傳統(tǒng)單元測(cè)試,這也就是按照程序的過程、函數(shù)或者是為了將某一定功能完成的程序塊。通過進(jìn)行單元測(cè)試?yán)砟畹难赜?,這也可以說是從本質(zhì)上測(cè)試類成員函數(shù)。在面向?qū)ο髥卧獪y(cè)試過程當(dāng)中能夠使用部分傳統(tǒng)測(cè)試方法。僅僅是出現(xiàn)變化在單元概念,是屬于封裝類或者對(duì)象當(dāng)成最小可測(cè)試單位。往往借助于白盒法這樣的覆蓋測(cè)試方法,確保至少執(zhí)行一遍全部程序當(dāng)中的語句。建議程序員完成單個(gè)類測(cè)試。二是面向?qū)ο蠹蓽y(cè)試。面向?qū)ο蠹蓽y(cè)試還能夠?qū)⑵浞Q之為測(cè)試對(duì)象集群。面向?qū)ο蟮能浖鶕碛械目刂平Y(jié)構(gòu)并不存在相應(yīng)的層次,傳統(tǒng)的自底向上與自頂向下的集成策略往往并不存在相應(yīng)的意義。面向?qū)ο筌浖募蓽y(cè)試立足于對(duì)象的交互測(cè)試、立足于線程的測(cè)試、立足于使用的測(cè)試者三種集成策略。立足于線程的測(cè)試集成響應(yīng)系統(tǒng)的一個(gè)輸入或者事件所需要的一組類,所有線程被個(gè)體測(cè)試與集成,借助于回歸測(cè)試確保不會(huì)產(chǎn)生副作用。面向?qū)ο蟮募蓽y(cè)試可以檢測(cè)出相對(duì)獨(dú)立的單元測(cè)試無法檢測(cè)出的那些類相互作用時(shí)候才能夠產(chǎn)生的錯(cuò)誤。立足于單元測(cè)試僅僅只是注重系統(tǒng)的結(jié)構(gòu)與內(nèi)部的相互作用。面向?qū)ο蟮募蓽y(cè)試可以劃分成先進(jìn)行靜態(tài)測(cè)試,然后實(shí)施動(dòng)態(tài)測(cè)試這兩個(gè)步驟實(shí)施。靜態(tài)測(cè)試往往實(shí)施是立足于程序結(jié)構(gòu),檢測(cè)程序結(jié)構(gòu)是否與設(shè)計(jì)要求相符。動(dòng)態(tài)測(cè)試設(shè)計(jì)策略用例的過程當(dāng)中,往往參考的是功能調(diào)用結(jié)構(gòu)圖、實(shí)體關(guān)系圖或者類關(guān)系圖,以便對(duì)不需要被重復(fù)測(cè)試的部分予以確定,從而能夠?qū)y(cè)試用例進(jìn)行優(yōu)化,讓測(cè)試工作量減少,以便可以讓實(shí)施的測(cè)試可以獲得一定程度的覆蓋標(biāo)準(zhǔn)。三是面向?qū)ο笙到y(tǒng)測(cè)試。借助于單元測(cè)試與集成測(cè)試,只是可以確保實(shí)現(xiàn)軟件開發(fā)功能??墒巧形创_認(rèn)在實(shí)際運(yùn)行工程當(dāng)中,這是否可以將用戶需要滿足,是否大量存在實(shí)際使用過程當(dāng)中會(huì)被誘發(fā)產(chǎn)生錯(cuò)誤的隱患。那么應(yīng)該規(guī)范系統(tǒng)測(cè)試完成開發(fā)的軟件。
所謂的軟件測(cè)試評(píng)測(cè)就是說軟件測(cè)試質(zhì)量的好壞,基于某種層面上進(jìn)行分析,這也可以將其界定成軟件質(zhì)量好壞。在軟件測(cè)試的測(cè)評(píng)方法當(dāng)中,主要有代表性的是測(cè)試覆蓋法與錯(cuò)誤植入法。
測(cè)試覆蓋就是測(cè)評(píng)測(cè)試完全程度,這是立足于測(cè)試覆蓋條件下,表示測(cè)試覆蓋就是測(cè)試需求與測(cè)試用例覆蓋或者已經(jīng)執(zhí)行代碼的覆蓋。最為常用的覆蓋測(cè)評(píng)就是立足于需求與代碼的測(cè)試覆蓋。將其具體化,這也就是指根據(jù)代碼或者需求的設(shè)計(jì)/實(shí)施標(biāo)準(zhǔn)的完全程度任意測(cè)評(píng)。系統(tǒng)測(cè)試活動(dòng)必須立足于一個(gè)以上測(cè)試覆蓋測(cè)量基礎(chǔ)。當(dāng)完全分類需求,那么立足于需求覆蓋測(cè)量可能生成測(cè)試完全程度的可計(jì)量測(cè)評(píng)。當(dāng)其應(yīng)用是立足于代碼覆蓋,那么表示測(cè)試策略就是按照測(cè)試已經(jīng)執(zhí)行的源代碼多少。在比較高安全性要求的系統(tǒng)當(dāng)中這樣的測(cè)試覆蓋策略類型顯得特別關(guān)鍵。立足于代碼測(cè)試覆蓋測(cè)評(píng)測(cè)試過程當(dāng)中已經(jīng)執(zhí)行代碼數(shù)量與其相對(duì)應(yīng)的就是執(zhí)行剩余代碼數(shù)量。代碼覆蓋就是立足于數(shù)據(jù)流或者控制流的條件下。實(shí)施覆蓋控制流的目的就是對(duì)代碼中路徑、代碼行、軟件控制流、分支條件的別的元素實(shí)施測(cè)試。覆蓋數(shù)據(jù)流的目的就是借助于軟件操作測(cè)試數(shù)據(jù)是否存在有效狀態(tài)。
錯(cuò)誤植入法就是在測(cè)試軟件之前有意的將錯(cuò)誤插入到程序當(dāng)中的一些位置,完成這樣的操作之后測(cè)試軟件,分析能夠發(fā)現(xiàn)被植入的錯(cuò)誤數(shù)量,沒有發(fā)現(xiàn)被植入的錯(cuò)誤數(shù)量,那么能夠?qū)浖y(cè)試效果進(jìn)行推斷。一般的測(cè)試軟件方法在絕大多數(shù)情況下比較難判定經(jīng)過相應(yīng)的測(cè)試之后,軟件還存在著多少數(shù)量的錯(cuò)誤,那么覆蓋測(cè)評(píng)的精確度還顯得比較低,針對(duì)這樣的情況,在有些時(shí)候往往還必須借助于錯(cuò)誤植入模型來對(duì)測(cè)試效果進(jìn)行估算。可是在這里需要值得重點(diǎn)關(guān)注的就是要將植入錯(cuò)誤的位置記錄下來,從而能夠在實(shí)施測(cè)試完畢之后將這些錯(cuò)誤進(jìn)行消除,有效預(yù)防不必要的錯(cuò)誤出現(xiàn)。
總而言之,測(cè)試軟件這項(xiàng)工作復(fù)雜而且顯得特別重要,這不但要讓軟件測(cè)試人員對(duì)于異地的軟件測(cè)試方法掌握,還應(yīng)該要讓軟件測(cè)試人員按照軟件系統(tǒng)特性不同來對(duì)測(cè)試策略、測(cè)試方法進(jìn)行分析與選擇。針對(duì)這樣的情況,軟件測(cè)試必須立足于相應(yīng)的方法與經(jīng)驗(yàn),這就應(yīng)該讓軟件測(cè)試人員在實(shí)施測(cè)試過程中,善于按照系統(tǒng)特征進(jìn)行測(cè)試方法設(shè)計(jì)。這也就是說,最好的測(cè)試方法就是可以最大限度的將軟件中的錯(cuò)誤測(cè)試出來。
[1]趙榮利,崔志明,陳建明.面向?qū)ο筌浖y(cè)試技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展.2007(01)
[2]吳蕾.面向?qū)ο蟮能浖y(cè)試技術(shù)研究[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流).2007(02)
[3]朱吉.面向?qū)ο筌浖y(cè)試及測(cè)試用例設(shè)計(jì)[J].電腦知識(shí)與技術(shù).2006(20)