《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 使用McCabe IQ提高測(cè)試質(zhì)量的研究
使用McCabe IQ提高測(cè)試質(zhì)量的研究
來源:微型機(jī)與應(yīng)用2012年第3期
黃華林
廣東女子職業(yè)技術(shù)學(xué)院,,廣東 廣州 511450
摘要: 隨著軟件產(chǎn)業(yè)的急速發(fā)展,,應(yīng)用軟件系統(tǒng)規(guī)模不斷增大,,企業(yè)對(duì)軟件質(zhì)量的的重視程度越來越高,軟件企業(yè)對(duì)軟件測(cè)試的投入也逐漸增加,。探討了McCabe IQ測(cè)試工具對(duì)軟件測(cè)試質(zhì)量和效益的提升,。
關(guān)鍵詞: 覆蓋率 McCabe IQ
Abstract:
Key words :

摘  要: 隨著軟件產(chǎn)業(yè)的急速發(fā)展,應(yīng)用軟件系統(tǒng)規(guī)模不斷增大,,企業(yè)對(duì)軟件質(zhì)量的的重視程度越來越高,,軟件企業(yè)對(duì)軟件測(cè)試的投入也逐漸增加。探討了McCabe IQ測(cè)試工具對(duì)軟件測(cè)試質(zhì)量和效益的提升,。
關(guān)鍵詞: 覆蓋率,;McCabe IQ

 隨著軟件產(chǎn)業(yè)的急速發(fā)展,應(yīng)用軟件系統(tǒng)規(guī)模不斷增大,,企業(yè)對(duì)軟件質(zhì)量的的重視程度越來越高,,軟件企業(yè)對(duì)軟件測(cè)試的投入也逐漸增加。目前的商業(yè)環(huán)境下,,商業(yè)應(yīng)用軟件的測(cè)試著重考慮如下問題:
?。?)效益。怎樣確保每個(gè)測(cè)試都有時(shí)間和經(jīng)濟(jì)方面的效益,。(2)徹底,。測(cè)試到達(dá)怎樣的程度可以合理地認(rèn)為程序已經(jīng)沒有錯(cuò)誤了。(3)資源分配,。測(cè)試資源的分配是否合理,,是否聚焦在軟件的高危模塊上,核心功能部分是否得到足夠的測(cè)試,。
軟件測(cè)試中,,覆蓋率分析的方法越來越多地為測(cè)試人員使用。覆蓋率是軟件測(cè)試的一項(xiàng)重要指標(biāo),,通過達(dá)到良好的測(cè)試覆蓋率,,可以保證軟件測(cè)試的質(zhì)量。
1 McCabe IQ測(cè)試工具
 McCabe IQ是美國McCabe Software公司的軟件質(zhì)量管理解決方案,,McCebe IQ是一款基于McCabe圈復(fù)雜度進(jìn)行質(zhì)量度量和測(cè)試的工具,,為用戶提供軟件質(zhì)量度量,、軟件結(jié)構(gòu)分析及動(dòng)態(tài)結(jié)構(gòu)化測(cè)試的全面支持,。McCabe IQ提供客觀的方法評(píng)估測(cè)試覆蓋率,,具有一致性、重復(fù)性,、客觀解釋,、質(zhì)量評(píng)估、優(yōu)化測(cè)試及分配資源等強(qiáng)大功能,,能真正保證測(cè)試每個(gè)獨(dú)立路徑,,可以確定測(cè)試過的路徑和沒測(cè)試過的路徑。
 圈復(fù)雜度是用來衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,,數(shù)量上表現(xiàn)為獨(dú)立現(xiàn)行路徑條數(shù),,即合理的預(yù)防錯(cuò)誤所需測(cè)試的最少路徑條數(shù)[1]。圈復(fù)雜度高說明代碼質(zhì)量可能很差,,難于測(cè)試和維護(hù),。根據(jù)經(jīng)驗(yàn),程序的可能錯(cuò)誤和圈復(fù)雜度高有著很大關(guān)系,。圈復(fù)雜度顯示了在測(cè)試一個(gè)單元時(shí),,為保證軟件質(zhì)量而需要測(cè)試的基本路徑的最小數(shù)目[2]。McCabe IQ建議將圈復(fù)雜度不超過10,,因?yàn)楦叩膹?fù)雜度使測(cè)試變得復(fù)雜并且可能會(huì)發(fā)生更多的錯(cuò)誤,。
2 使用McCabe IQ做覆蓋率分析
 McCabe IQ的度量基于軟件結(jié)構(gòu)數(shù)學(xué)化的嚴(yán)格分析,這種分析以McCebe圖復(fù)雜度為基礎(chǔ),,明確地確定了高風(fēng)險(xiǎn)區(qū)域,。McCebe IQ就是一款基于McCabe圈復(fù)雜度進(jìn)行質(zhì)量度量和測(cè)試的工具。McCabe IQ覆蓋率分析使用了源代碼插裝技術(shù),,能生成分支和路徑覆蓋報(bào)告,。對(duì)于給定的程序,所有的可測(cè)試路徑的數(shù)目通常非常巨大,,找到一個(gè)有意義的可測(cè)試路徑子集非常重要,。被MeCabe IQ標(biāo)識(shí)出的路徑雖不能代表程序中所有可能路徑,但最小的測(cè)試路徑子集至少遍歷每個(gè)一次判定,,將使McCabe IQ的“圈復(fù)雜度”路徑分析技術(shù)成為可能,。
 McCabe IQ可以很方便地做到如下分析:
 (1)復(fù)雜度分析:McCabe IQ提供了復(fù)雜度信息的即時(shí)訪問,,測(cè)量不同的源代碼特性,,標(biāo)識(shí)出相關(guān)的復(fù)雜度信息和程序不同模塊的結(jié)構(gòu)化程度,特別復(fù)雜或非結(jié)構(gòu)化代碼部分可以在覆蓋率報(bào)告中突出出來,,使得測(cè)試工程師更容易識(shí)別出有缺陷的代碼,。
?。?)軟件變更分析:當(dāng)一個(gè)程序被修改,測(cè)試需要聚焦在修改的代碼上,,以及那些被修改代碼影響的代碼,,McCabe IQ的軟件變更分析不但可以標(biāo)識(shí)出變更過的代碼,而且還可以標(biāo)識(shí)出被修改所影響的模塊,。
2.1 McCabe IQ提升功能測(cè)試
 在功能測(cè)試中,,McCabe IQ從程序的需求中得到要測(cè)試的功能,然后執(zhí)行測(cè)試用例以驗(yàn)證程序是否按照預(yù)期運(yùn)行,。功能測(cè)試的目的是為了識(shí)別缺失的功能,、不能正確運(yùn)行的功能,以及功能缺陷[3],。
2.1.1 功能測(cè)試在執(zhí)行過程中要解決如下問題:
?。?)隱含功能的丟失。由于需求定義隱含缺陷,,從需求文檔得到的功能測(cè)試會(huì)丟失隱含功能,。這樣,功能測(cè)試很難確保測(cè)試的完全性,,而且功能測(cè)試在功能合并階段也會(huì)導(dǎo)致有問題的行為,。
 (2)停止測(cè)試的時(shí)機(jī),。在功能測(cè)試中,,可測(cè)試功能組合的數(shù)量相當(dāng)巨大,最糟糕的情況是功能組合的數(shù)量將是2的功能需求次冪的形式,,顯然測(cè)試所有的功能組合是不可能的,。
2.1.2 通過McCabe IQ的覆蓋分析可以提升功能測(cè)試
 (1)McCabe IQ覆蓋分析可以指出未測(cè)試的分支,,并突出為測(cè)試的分支,,隱含功能和明確的功能需求將同樣被突出出來。
?。?)McCabe IQ覆蓋分析可以識(shí)別出高風(fēng)險(xiǎn)模塊塊,,然后使用更為苛刻的路徑覆蓋進(jìn)行分析。
 使用路徑覆蓋分析可以遍歷所有的關(guān)鍵功能組合,,包括隱含的功能和明確的功能,。使用圖復(fù)雜度路徑作為危險(xiǎn)模塊的測(cè)試程度的索引,可以追蹤記錄可累加的分支和路徑執(zhí)行的次數(shù),,通過基于累加的分支和圈復(fù)雜度覆蓋率決定可以接受的測(cè)試程度,,從而解決以上兩個(gè)問題。
2.2 McCabe IQ提升單元測(cè)試
 單元測(cè)試是針對(duì)軟件的最小模塊進(jìn)行正確性檢驗(yàn)的測(cè)試工作,是代碼正確性驗(yàn)證的重要措施,。這些最小模塊是隔離出來的代碼段,,稱為單元。單元測(cè)試的最大挑戰(zhàn)在于識(shí)別出需要運(yùn)行的最小的測(cè)試的集合,,理想情況下,,每一個(gè)可能路徑都要被測(cè)試,但是這通常是不可能的,。挑戰(zhàn)在于分離出路徑的子集來提供所有可測(cè)試路徑的覆蓋分析,,并且使得路徑子集最小,,并且沒有單元級(jí)的冗余[4],。
McCabe IQ路徑圖精確的被設(shè)計(jì)為單元級(jí)的覆蓋管理,McCabe IQ識(shí)別出的最小路徑集合可以測(cè)試到所有的代碼單元,,提供所有可測(cè)試路徑的覆蓋分析,,至少確認(rèn)最危險(xiǎn)模塊已經(jīng)被覆蓋。
2.3 McCabe IQ提升回歸測(cè)試
 回歸測(cè)試是指測(cè)試程序開發(fā)過程中的修訂版本,,這種測(cè)試驗(yàn)證新增的功能必須按照預(yù)期運(yùn)行,,所做的修改達(dá)到了預(yù)定的目的,錯(cuò)誤得到改正,,未變更的功能沒有被修改或變更所影響[5],。
2.3.1 回歸測(cè)試需要解決問題
 (1)程序修改后要找出程序中被變更影響的模塊,。這樣,,需要做回歸測(cè)試的只是受變更影響的模塊,提高了效率,。
?。?)驗(yàn)證修改過的功能已經(jīng)被測(cè)試。程序的變更通常會(huì)引入新的隱含功能,,沒有黑盒測(cè)試的技術(shù),,驗(yàn)證所有變更已經(jīng)被測(cè)試是不可能的。
?。?)驗(yàn)證新的功能已經(jīng)被測(cè)試,。當(dāng)做完全功能測(cè)試的時(shí)候,測(cè)試新的功能,,要驗(yàn)證完整性測(cè)試,,隱含功能的測(cè)試及功能組合的測(cè)試[6]。
2.3.2 通過McCabe IQ的覆蓋分析可以提升回歸測(cè)試
 McCabe IQ覆蓋分析能精確指出程序中已經(jīng)變更的分支和模塊,。覆蓋分析可以限制在這個(gè)區(qū)域,,聚焦那些需要測(cè)試的地方。McCabe IQ隔離出那些被變更影響的程序區(qū)域,允許聚焦在需要做回歸測(cè)試的部分,,而忽略那些和變更的程序無關(guān)聯(lián)的模塊,。對(duì)于修改過的功能和新功能,McCabe IQ與新的功能測(cè)試一樣去對(duì)待,。
軟件的功能測(cè)試根據(jù)需求來驗(yàn)證軟件功能的實(shí)現(xiàn)情況,,單元測(cè)試主要認(rèn)證代碼的正確性,回歸測(cè)試保證新做的修改不影響原有的功能需求,,McCabe IQ的覆蓋率分析在這些方面都能提供很好的幫助,。靈活運(yùn)用McCabe IQ測(cè)試工具可以提高測(cè)試效率和測(cè)試質(zhì)量,挖掘出軟件的潛在錯(cuò)誤,,保證軟件產(chǎn)品的質(zhì)量,。
參考文獻(xiàn)
[1] 朱鴻,金凌紫.軟件質(zhì)量與保證[M].北京:科學(xué)出版社,,1997.
[2] 樊慶林,,吳建國.提高軟件測(cè)試效率的方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,,16(10).
[3] 葉言苓,,崔彥軍.軟件測(cè)試管理的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2003,,20(9).
[4] 李秋英,,李海峰,徐剛.基于覆蓋率信息的軟件可靠性增長(zhǎng)測(cè)試實(shí)踐[J].計(jì)算機(jī)應(yīng)用研究,,2010,,27(7).
[5] 高海昌,賀曉紅,,馮博琴,,等.軟件結(jié)構(gòu)測(cè)試自動(dòng)化關(guān)技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2005,,22(02).
[6] 鄭艷.一種支持軟件測(cè)試的測(cè)試工具研究[J].無錫職業(yè)技術(shù)學(xué)院學(xué)報(bào),,2008(4).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。