軟件質(zhì)量與結(jié)構(gòu)化測(cè)試McCabe
McCabe IQ軟件質(zhì)量管理解決方案是美國(guó)McCabe Software公司的產(chǎn)品,基于圈復(fù)雜度理論體系,為用戶提供軟件質(zhì)量度量、軟件結(jié)構(gòu)分析、動(dòng)態(tài)結(jié)構(gòu)化測(cè)試的全面支持。具有一致性、重復(fù)性、客觀解釋、質(zhì)量評(píng)估、優(yōu)化測(cè)試、分配資源、管理具有危險(xiǎn)性的軟件等強(qiáng)大功能。能真正保證測(cè)試每個(gè)獨(dú)立的路徑,可以確定測(cè)試過(guò)的路徑和沒(méi)測(cè)試過(guò)的路徑。世界上很多重要組織和公司采用McCabe IQ的質(zhì)量管理套件,對(duì)其開(kāi)發(fā)的關(guān)鍵軟件進(jìn)行質(zhì)量分析和覆蓋率測(cè)試。工具的底層框架基于優(yōu)秀的EDG源代碼分析器,提供準(zhǔn)確的軟件復(fù)雜度和軟件結(jié)構(gòu)分析,以工業(yè)標(biāo)準(zhǔn)或者自定義標(biāo)準(zhǔn)衡量軟件的質(zhì)量。
McCabe IQ的功能可以分為質(zhì)量度量、覆蓋率測(cè)試、數(shù)據(jù)流分析、變更分析、冗余代碼分析和企業(yè)級(jí)報(bào)告等。
靜態(tài)質(zhì)量度量
McCabe IQ能夠分析三百多種軟件度量質(zhì)量,包括:
? 代碼行、注釋行統(tǒng)計(jì)
? 嵌套深度
? 數(shù)據(jù)變量統(tǒng)計(jì)
? Halstead度量集
? McCabe度量集
? 面向?qū)ο?/span>(OO)度量集
McCabe IQ具有質(zhì)量快照功能,可以把當(dāng)前的軟件質(zhì)量信息全部存儲(chǔ)到它的數(shù)據(jù)庫(kù)中,隨著軟件開(kāi)發(fā)和測(cè)試的進(jìn)行,繪制成質(zhì)量趨勢(shì)圖。
允許派生度量,以便更加符合用戶實(shí)際的質(zhì)量模型,有助于更好的進(jìn)行質(zhì)量評(píng)價(jià)。
McCabe IQ是一個(gè)完全圖形化的工具,可以提供如下圖形報(bào)告:
? 模塊調(diào)用關(guān)系圖:用紅黃綠顏色標(biāo)識(shí)軟件的結(jié)構(gòu)和復(fù)雜程度。
? 模塊控制流圖:有助于了解軟件模塊的內(nèi)部流程,發(fā)現(xiàn)隱藏的危險(xiǎn)路徑。
? 散點(diǎn)圖/KV圖/柱狀圖:綜合分析軟件整體的質(zhì)量分布情況。


動(dòng)態(tài)覆蓋率分析
McCabe IQ的動(dòng)態(tài)測(cè)試不但適合于宿主機(jī)系統(tǒng),也適合于各種嵌入式系統(tǒng)環(huán)境下運(yùn)行。插裝方式有多種選擇,可以根據(jù)實(shí)際情況選擇最合適的方式。McCabe IQ2分析被測(cè)試軟件運(yùn)行時(shí)生成的追蹤信息,得到覆蓋率信息。提供的覆蓋率類(lèi)型有:
? 集成覆蓋率
? 路徑覆蓋率
? 分支覆蓋率
? 語(yǔ)句覆蓋率
? 面向?qū)ο箢?lèi)覆蓋率
? 布爾覆蓋率(MC/DC)
? 數(shù)據(jù)覆蓋率
? 調(diào)用對(duì)覆蓋率
覆蓋率的信息最直觀的查看方式就是在模塊調(diào)用圖上用不同的顏色標(biāo)識(shí)出來(lái),基于McCabe IQ度量的理論,可以提供給用戶強(qiáng)大的路徑分析路徑覆蓋率,適合于安全關(guān)鍵軟件的嚴(yán)格測(cè)試。

數(shù)據(jù)流分析
McCabe IQ的數(shù)據(jù)字典模塊(McCabe Data)匯總軟件的所有數(shù)據(jù)信息,用戶可以自定義數(shù)據(jù)集,把關(guān)心的數(shù)據(jù)找出來(lái);提供全局?jǐn)?shù)據(jù)復(fù)雜度和指定數(shù)據(jù)復(fù)雜度,同時(shí)可以結(jié)合動(dòng)態(tài)測(cè)試,綜合分析得出數(shù)據(jù)的覆蓋率。
變更分析
McCabe IQ的變更分析模塊(McCabe Change)自動(dòng)發(fā)現(xiàn)軟件被改動(dòng)的模塊,自動(dòng)分析這些被修改的模塊是否被測(cè)試過(guò),同時(shí)發(fā)現(xiàn)改動(dòng)模塊對(duì)整個(gè)系統(tǒng)的影響有多大。變更分析模塊和數(shù)據(jù)字典、切片分析等配合使用,結(jié)合動(dòng)態(tài)測(cè)試的數(shù)據(jù)可以得出再工程的評(píng)估報(bào)告。
冗余代碼分析
McCabe IQ的冗余分析模塊(McCabe Compare)可以根據(jù)用戶選擇的相似性準(zhǔn)則分析模塊的相似程度,幫助用戶合并相似模塊,精簡(jiǎn)系統(tǒng)。
切片分析
McCabe IQ的切片分析模塊(McCabe Slice)可以非常直觀地顯示出在每條路徑中,哪些是測(cè)試過(guò)的,哪些沒(méi)有測(cè)試,同時(shí)還可以將測(cè)試過(guò)的加載進(jìn)來(lái)。用戶使用切片的邏輯運(yùn)算發(fā)現(xiàn)被測(cè)軟件的業(yè)務(wù)規(guī)律。
企業(yè)級(jí)報(bào)告
McCabe IQ的分析結(jié)果可以上傳到McCabe Server。這是一種C/S結(jié)構(gòu),團(tuán)隊(duì)和企業(yè)可以用這種方式得到綜合的企業(yè)級(jí)報(bào)告,通過(guò)預(yù)定義和自定義的報(bào)告模板自動(dòng)生成Word/PDF/HTML等格式的報(bào)告。
突出優(yōu)勢(shì)
◆ McCabe IQ是McCabe度量理論最好的實(shí)踐工具,同時(shí)提供了大約300多種軟件質(zhì)量度量,完全滿足各種需求下的質(zhì)量模型和質(zhì)量評(píng)價(jià)。
◆ 豐富的圖形界面,加快用戶對(duì)軟件結(jié)構(gòu)的理解,幫助用戶了解整個(gè)系統(tǒng)的架構(gòu)進(jìn)行測(cè)試規(guī)劃。
◆ 強(qiáng)大的路徑分析,基于McCabe圈復(fù)雜度的獨(dú)立路徑分析,具有強(qiáng)大的再工程能力,配合變更分析、相似度分析、數(shù)據(jù)字典功能,幫助用戶在遺留工程基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)。
◆ 把代碼復(fù)雜度和測(cè)試結(jié)合起來(lái),提出基于結(jié)構(gòu)化測(cè)試的理論,被NIST作為測(cè)試標(biāo)準(zhǔn)。
◆ 在標(biāo)準(zhǔn)復(fù)雜度的基礎(chǔ)上可以定制或派生復(fù)雜度,也可以自己設(shè)計(jì)測(cè)試路徑,作為基本測(cè)試路徑的補(bǔ)充
◆ 開(kāi)源的測(cè)試庫(kù),適合于各種嵌入式測(cè)試環(huán)境下。
◆ 強(qiáng)大的數(shù)據(jù)存儲(chǔ)和加載的能力,能定期保存分析結(jié)果和測(cè)試數(shù)據(jù),可以生成軟件質(zhì)量趨勢(shì)和測(cè)試進(jìn)展曲線。
◆ 獨(dú)有的基于路徑的分析能力,能夠提供集成和單元測(cè)試路徑,幫助測(cè)試工程師開(kāi)發(fā)測(cè)試用例,達(dá)到較高的路徑覆蓋率,而且能提供路徑覆蓋率的工具。
支持的語(yǔ)言
Ada、C、C++、COBOL、FORTRAN、Java、Model 204、Visual Basic、x86 匯編、VC++.net、VB.net、C#
支持的平臺(tái)
◆ Windows
◆ Solaris
◆ HPUX
◆ IRIX
◆ AIX