當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]   隨著軟件產(chǎn)業(yè)的急速發(fā)展,應(yīng)用軟件系統(tǒng)規(guī)模不斷增大,企業(yè)對軟件質(zhì)量的的重視程度越來越高,軟件企業(yè)對軟件測試的投入也逐漸增加。目前的商業(yè)環(huán)境下,商業(yè)應(yīng)用軟件的測試著重考慮如下問題:  ?。?

  隨著軟件產(chǎn)業(yè)的急速發(fā)展,應(yīng)用軟件系統(tǒng)規(guī)模不斷增大,企業(yè)對軟件質(zhì)量的的重視程度越來越高,軟件企業(yè)對軟件測試的投入也逐漸增加。目前的商業(yè)環(huán)境下,商業(yè)應(yīng)用軟件的測試著重考慮如下問題:

 ?。?)效益。怎樣確保每個測試都有時間和經(jīng)濟(jì)方面的效益。(2)徹底。測試到達(dá)怎樣的程度可以合理地認(rèn)為程序已經(jīng)沒有錯誤了。(3)資源分配。測試資源的分配是否合理,是否聚焦在軟件的高危模塊上,核心功能部分是否得到足夠的測試。

  軟件測試中,覆蓋率分析的方法越來越多地為測試人員使用。覆蓋率是軟件測試的一項(xiàng)重要指標(biāo),通過達(dá)到良好的測試覆蓋率,可以保證軟件測試的質(zhì)量。

  1 McCabe IQ測試工具

  McCabe IQ是美國McCabe Software公司的軟件質(zhì)量管理解決方案,McCebe IQ是一款基于McCabe圈復(fù)雜度進(jìn)行質(zhì)量度量和測試的工具,為用戶提供軟件質(zhì)量度量、軟件結(jié)構(gòu)分析及動態(tài)結(jié)構(gòu)化測試的全面支持。McCabe IQ提供客觀的方法評估測試覆蓋率,具有一致性、重復(fù)性、客觀解釋、質(zhì)量評估、優(yōu)化測試及分配資源等強(qiáng)大功能,能真正保證測試每個獨(dú)立路徑,可以確定測試過的路徑和沒測試過的路徑。

  圈復(fù)雜度是用來衡量一個模塊判定結(jié)構(gòu)的復(fù)雜程度,數(shù)量上表現(xiàn)為獨(dú)立現(xiàn)行路徑條數(shù),即合理的預(yù)防錯誤所需測試的最少路徑條數(shù)[1]。圈復(fù)雜度高說明代碼質(zhì)量可能很差,難于測試和維護(hù)。根據(jù)經(jīng)驗(yàn),程序的可能錯誤和圈復(fù)雜度高有著很大關(guān)系。圈復(fù)雜度顯示了在測試一個單元時,為保證軟件質(zhì)量而需要測試的基本路徑的最小數(shù)目[2]。McCabe IQ建議將圈復(fù)雜度不超過10,因?yàn)楦叩膹?fù)雜度使測試變得復(fù)雜并且可能會發(fā)生更多的錯誤。

  2 使用McCabe IQ做覆蓋率分析

  McCabe IQ的度量基于軟件結(jié)構(gòu)數(shù)學(xué)化的嚴(yán)格分析,這種分析以McCebe圖復(fù)雜度為基礎(chǔ),明確地確定了高風(fēng)險區(qū)域。McCebe IQ就是一款基于McCabe圈復(fù)雜度進(jìn)行質(zhì)量度量和測試的工具。McCabe IQ覆蓋率分析使用了源代碼插裝技術(shù),能生成分支和路徑覆蓋報(bào)告。對于給定的程序,所有的可測試路徑的數(shù)目通常非常巨大,找到一個有意義的可測試路徑子集非常重要。被MeCabe IQ標(biāo)識出的路徑雖不能代表程序中所有可能路徑,但最小的測試路徑子集至少遍歷每個一次判定,將使McCabe IQ的“圈復(fù)雜度”路徑分析技術(shù)成為可能。

  McCabe IQ可以很方便地做到如下分析:

 ?。?)復(fù)雜度分析:McCabe IQ提供了復(fù)雜度信息的即時訪問,測量不同的源代碼特性,標(biāo)識出相關(guān)的復(fù)雜度信息和程序不同模塊的結(jié)構(gòu)化程度,特別復(fù)雜或非結(jié)構(gòu)化代碼部分可以在覆蓋率報(bào)告中突出出來,使得測試工程師更容易識別出有缺陷的代碼。

 ?。?)軟件變更分析:當(dāng)一個程序被修改,測試需要聚焦在修改的代碼上,以及那些被修改代碼影響的代碼,McCabe IQ的軟件變更分析不但可以標(biāo)識出變更過的代碼,而且還可以標(biāo)識出被修改所影響的模塊。

  2.1 McCabe IQ提升功能測試

  在功能測試中,McCabe IQ從程序的需求中得到要測試的功能,然后執(zhí)行測試用例以驗(yàn)證程序是否按照預(yù)期運(yùn)行。功能測試的目的是為了識別缺失的功能、不能正確運(yùn)行的功能,以及功能缺陷[3]。

  2.1.1 功能測試在執(zhí)行過程中要解決如下問題:

 ?。?)隱含功能的丟失。由于需求定義隱含缺陷,從需求文檔得到的功能測試會丟失隱含功能。這樣,功能測試很難確保測試的完全性,而且功能測試在功能合并階段也會導(dǎo)致有問題的行為。

 ?。?)停止測試的時機(jī)。在功能測試中,可測試功能組合的數(shù)量相當(dāng)巨大,最糟糕的情況是功能組合的數(shù)量將是2的功能需求次冪的形式,顯然測試所有的功能組合是不可能的。

  2.1.2 通過McCabe IQ的覆蓋分析可以提升功能測試

 ?。?)McCabe IQ覆蓋分析可以指出未測試的分支,并突出為測試的分支,隱含功能和明確的功能需求將同樣被突出出來。

 ?。?)McCabe IQ覆蓋分析可以識別出高風(fēng)險模塊塊,然后使用更為苛刻的路徑覆蓋進(jìn)行分析。

  使用路徑覆蓋分析可以遍歷所有的關(guān)鍵功能組合,包括隱含的功能和明確的功能。使用圖復(fù)雜度路徑作為危險模塊的測試程度的索引,可以追蹤記錄可累加的分支和路徑執(zhí)行的次數(shù),通過基于累加的分支和圈復(fù)雜度覆蓋率決定可以接受的測試程度,從而解決以上兩個問題。

  2.2 McCabe IQ提升單元測試

  單元測試是針對軟件的最小模塊進(jìn)行正確性檢驗(yàn)的測試工作,是代碼正確性驗(yàn)證的重要措施。這些最小模塊是隔離出來的代碼段,稱為單元。單元測試的最大挑戰(zhàn)在于識別出需要運(yùn)行的最小的測試的集合,理想情況下,每一個可能路徑都要被測試,但是這通常是不可能的。挑戰(zhàn)在于分離出路徑的子集來提供所有可測試路徑的覆蓋分析,并且使得路徑子集最小,并且沒有單元級的冗余[4]。

  McCabe IQ路徑圖精確的被設(shè)計(jì)為單元級的覆蓋管理,McCabe IQ識別出的最小路徑集合可以測試到所有的代碼單元,提供所有可測試路徑的覆蓋分析,至少確認(rèn)最危險模塊已經(jīng)被覆蓋。

  2.3 McCabe IQ提升回歸測試

  回歸測試是指測試程序開發(fā)過程中的修訂版本,這種測試驗(yàn)證新增的功能必須按照預(yù)期運(yùn)行,所做的修改達(dá)到了預(yù)定的目的,錯誤得到改正,未變更的功能沒有被修改或變更所影響[5]。

  2.3.1 回歸測試需要解決問題

  (1)程序修改后要找出程序中被變更影響的模塊。這樣,需要做回歸測試的只是受變更影響的模塊,提高了效率。

 ?。?)驗(yàn)證修改過的功能已經(jīng)被測試。程序的變更通常會引入新的隱含功能,沒有黑盒測試的技術(shù),驗(yàn)證所有變更已經(jīng)被測試是不可能的。

  (3)驗(yàn)證新的功能已經(jīng)被測試。當(dāng)做完全功能測試的時候,測試新的功能,要驗(yàn)證完整性測試,隱含功能的測試及功能組合的測試[6]。

  2.3.2 通過McCabe IQ的覆蓋分析可以提升回歸測試

  McCabe IQ覆蓋分析能精確指出程序中已經(jīng)變更的分支和模塊。覆蓋分析可以限制在這個區(qū)域,聚焦那些需要測試的地方。McCabe IQ隔離出那些被變更影響的程序區(qū)域,允許聚焦在需要做回歸測試的部分,而忽略那些和變更的程序無關(guān)聯(lián)的模塊。對于修改過的功能和新功能,McCabe IQ與新的功能測試一樣去對待。

  軟件的功能測試根據(jù)需求來驗(yàn)證軟件功能的實(shí)現(xiàn)情況,單元測試主要認(rèn)證代碼的正確性,回歸測試保證新做的修改不影響原有的功能需求,McCabe IQ的覆蓋率分析在這些方面都能提供很好的幫助。靈活運(yùn)用McCabe IQ測試工具可以提高測試效率和測試質(zhì)量,挖掘出軟件的潛在錯誤,保證軟件產(chǎn)品的質(zhì)量。

  參考文獻(xiàn)

 ?。?] 朱鴻,金凌紫。軟件質(zhì)量與保證[M]。北京:科學(xué)出版社,1997.

 ?。?] 樊慶林,吳建國。提高軟件測試效率的方法研究[J]。計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(10)。

 ?。?] 葉言苓,崔彥軍。軟件測試管理的研究與應(yīng)用[J]。計(jì)算機(jī)應(yīng)用與軟件,2003,20(9)。

 ?。?] 李秋英,李海峰,徐剛?;诟采w率信息的軟件可靠性增長測試實(shí)踐[J]。計(jì)算機(jī)應(yīng)用研究,2010,27(7)。

  [5] 高海昌,賀曉紅,馮博琴,等。軟件結(jié)構(gòu)測試自動化關(guān)技術(shù)研究[J]。微電子學(xué)與計(jì)算機(jī),2005,22(02)。

  [6] 鄭艷。一種支持軟件測試的測試工具研究[J]。無錫職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008(4).

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉