McCabe IQ軟件質量管理解決方案是美國McCabe Software公司的產品,基于圈復雜度理論體系,為用戶提供軟件質量度量、軟件結構分析、動態結構化測試的全面支持。具有一致性、重復性、客觀解釋、質量評估、優化測試、分配資源、管理具有危險性的軟件等強大功能。能真正保證測試每個獨立的路徑,可以確定測試過的路徑和沒測試過的路徑。世界上很多重要組織和公司采用McCabe IQ的質量管理套件,對其開發的關鍵軟件進行質量分析和覆蓋率測試。工具的底層框架基于優秀的EDG源代碼分析器,提供準確的軟件復雜度和軟件結構分析,以工業標準或者自定義標準衡量軟件的質量。
McCabe IQ的功能可以分為質量度量、覆蓋率測試、數據流分析、變更分析、冗余代碼分析和企業級報告等。
靜態質量度量
McCabe IQ能夠分析三百多種軟件度量質量,包括:
? 代碼行、注釋行統計
? 嵌套深度
? 數據變量統計
? Halstead度量集
? McCabe度量集
? 面向對象(OO)度量集
McCabe IQ具有質量快照功能,可以把當前的軟件質量信息全部存儲到它的數據庫中,隨著軟件開發和測試的進行,繪制成質量趨勢圖。
允許派生度量,以便更加符合用戶實際的質量模型,有助于更好的進行質量評價。
McCabe IQ是一個完全圖形化的工具,可以提供如下圖形報告:
? 模塊調用關系圖:用紅黃綠顏色標識軟件的結構和復雜程度。
? 模塊控制流圖:有助于了解軟件模塊的內部流程,發現隱藏的危險路徑。
? 散點圖/KV圖/柱狀圖:綜合分析軟件整體的質量分布情況。
動態覆蓋率分析
McCabe IQ的動態測試不但適合于宿主機系統,也適合于各種嵌入式系統環境下運行。插裝方式有多種選擇,可以根據實際情況選擇最合適的方式。McCabe IQ2分析被測試軟件運行時生成的追蹤信息,得到覆蓋率信息。提供的覆蓋率類型有:
? 集成覆蓋率
? 路徑覆蓋率
? 分支覆蓋率
? 語句覆蓋率
? 面向對象類覆蓋率
? 布爾覆蓋率(MC/DC)
? 數據覆蓋率
? 調用對覆蓋率
覆蓋率的信息最直觀的查看方式就是在模塊調用圖上用不同的顏色標識出來,基于McCabe IQ度量的理論,可以提供給用戶強大的路徑分析路徑覆蓋率,適合于安全關鍵軟件的嚴格測試。
數據流分析
McCabe IQ的數據字典模塊(McCabe Data)匯總軟件的所有數據信息,用戶可以自定義數據集,把關心的數據找出來;提供全局數據復雜度和指定數據復雜度,同時可以結合動態測試,綜合分析得出數據的覆蓋率。
變更分析
McCabe IQ的變更分析模塊(McCabe Change)自動發現軟件被改動的模塊,自動分析這些被修改的模塊是否被測試過,同時發現改動模塊對整個系統的影響有多大。變更分析模塊和數據字典、切片分析等配合使用,結合動態測試的數據可以得出再工程的評估報告。
冗余代碼分析
McCabe IQ的冗余分析模塊(McCabe Compare)可以根據用戶選擇的相似性準則分析模塊的相似程度,幫助用戶合并相似模塊,精簡系統。
切片分析
McCabe IQ的切片分析模塊(McCabe Slice)可以非常直觀地顯示出在每條路徑中,哪些是測試過的,哪些沒有測試,同時還可以將測試過的加載進來。用戶使用切片的邏輯運算發現被測軟件的業務規律。
企業級報告
McCabe IQ的分析結果可以上傳到McCabe Server。這是一種C/S結構,團隊和企業可以用這種方式得到綜合的企業級報告,通過預定義和自定義的報告模板自動生成Word/PDF/HTML等格式的報告。
突出優勢
◆ McCabe IQ是McCabe度量理論最好的實踐工具,同時提供了大約300多種軟件質量度量,完全滿足各種需求下的質量模型和質量評價。
◆ 豐富的圖形界面,加快用戶對軟件結構的理解,幫助用戶了解整個系統的架構進行測試規劃。
◆ 強大的路徑分析,基于McCabe圈復雜度的獨立路徑分析,具有強大的再工程能力,配合變更分析、相似度分析、數據字典功能,幫助用戶在遺留工程基礎上進行二次開發。
◆ 把代碼復雜度和測試結合起來,提出基于結構化測試的理論,被NIST作為測試標準。
◆ 在標準復雜度的基礎上可以定制或派生復雜度,也可以自己設計測試路徑,作為基本測試路徑的補充
◆ 開源的測試庫,適合于各種嵌入式測試環境下。
◆ 強大的數據存儲和加載的能力,能定期保存分析結果和測試數據,可以生成軟件質量趨勢和測試進展曲線。
◆ 獨有的基于路徑的分析能力,能夠提供集成和單元測試路徑,幫助測試工程師開發測試用例,達到較高的路徑覆蓋率,而且能提供路徑覆蓋率的工具。
支持的語言
Ada、C、C++、COBOL、FORTRAN、Java、Model 204、Visual Basic、x86 匯編、VC++.net、VB.net、C#
支持的平臺
◆ Windows
◆ Solaris
◆ HPUX
◆ IRIX
◆ AIX