王 鑫,趙 偉,吳亞鋒
(1.解放軍32381 部隊,北京 100000;2.江蘇自動化研究所,江蘇 連云港 222061)
軍品軟件可靠性直接決定武器裝備產品的質量,必經多輪測試后方可交付列裝。代碼規則檢查在軟件產品研制與測試過程中均至關重要。針對C/C++語言的自動化代碼檢測工具在大規模代碼的多輪迭代及回歸中凸顯其高效性,但單一工具檢測結果存在誤檢或漏檢,且需人工復核以確保準確性,本文提出一種多測試工具代碼規則檢查報告自動融合的方法,極大縮短了軟件迭代測試周期,提升了復查結果準確率,降低迭代測試的時間、經濟成本。
LDRATestbedForC/C++、Klocwork、可集成在Visual C++工具中的C++test 以及HelixQAC 工具是4款面向C/C++語言的靜態分析工具。除了檢查代碼的標準符合性,更以圖和報告形式實現代碼可視化測試,提高了代碼測試的可視性和清晰度,其中C++test 更支持代碼復審及在線回歸。4 款測試工具均支持代碼規則定制以及檢測結果文本形式瀏覽?;诠ぞ咂饎臃绞?、結果輸出形式、支持編碼語言以及規則可查看角度對工具進行分析,如表1 所示。

表1 工具特性表
上述工具均無法檢測出全部違規代碼,測試結果之間互有補充又諸多重合,各工具分析代碼所依據的規則也并非完全一致。
比對測試結果與原始代碼可以發現工具自動生成的測試報告具有以下特征:
1)針對存在問題的同一行源碼,不同工具測試結果描述語言不同,具有獨特語言風格;
2)不同測試工具檢測的同一問題代碼,其問題定位信息在不同結果中顯示不同。……