软件测试工具比较:QAC/QAC++ 与C++ Test的对比分析

来源:互联网 发布:网络拓扑 编辑:程序博客网 时间:2024/05/12 12:56
QAC/QAC++ 与C++ Test的对比分析
1.        公司背景
        Programming Research公司总部在英国,1986年成立,是编程标准领域的权威,专注于软件代码的质量,是ISO、 MISRA 等协会的主要成员,参与制定了多项国际编程标准,提供QAC/QAC++/QA J等编程规则检查工具,同时也为客户提供编程标准审查、咨询等服务。
        Parasoft公司总部在美国,1987年成立,主要研究错误如何引入到软件以及如何预防,创始人出版过一些软件错误防御以及最佳实践的书籍,在中国有办事处,代理商有几家。
2.        产品构成
        Programming Research公司的产品包括:
        QA C ——C语言静态分析编程标准检查工具
        QA C++ —— C++ 语言静态分析编程标准检查工具
        QA J —— Java语言静态分析编程标准检查工具
        另有MISRA C 2004/MISRA C++ 2008/JSF AV++等标准一致性检查插件
        Parasoft的主要产品:
        Jtest ——JAVA语言代码分析审查、测试工具
        C++test ——C/C++语言代码分析,动态测试套件
        Insure++ ——运行时错误分析工具
        WebKing——是SOAtest的一部分
        SOAtest——WEB类型应用测试工具
        BPEL Maestro——帮助简化WEB服务的架构
        Concerto——项目流程管理软件
        .TEST——.NET开发工程师的工具包,包括静态分析和动态测试
3.        主要功能与应用方向
QA C/QA C++:
代码审查和静态分析,利用先进的EDG分析器技术,对C/C++代码进行静态分析,基于软件内置的超过2000多条规则(C部分1300多条,C++部分1300条),报告被测软件违反规则的情况,包括代码的安全性隐患,危险用法,未定义行为等。同时提供上百种软件静态度量,包括基于函数,基于文件和类的。可以提供软件的结构分析。
主要用于:
        帮助企业实施编程标准,作为自动检查工具使用;
        开发工程师的桌面检查工具,帮助提高代码的一致性和质量;
        代码评审辅助工具,生成的报告可以作为代码评审的有用信息

C++ Test:
静态分析
基于800多条编程准则(C/C++混合在一起)进行自动化的编程规范检查。
不提供软件质量度量和软件结构分析(待定)
缺点: C和C++是两种编程语言,C的编程标准和C++的编程标准是两种不同的标准,C++ Test用一套编程标准对C和C++同时进行检查,无法做到专业、准确。

动态测试
典型的单元测试功能,自动生成测试脚本自动打桩,C++ Test是一个工具套件,同时包含静态分析和动态测试,QA C系列工具专注于静态分析和编程标准检查,可以集成其他的动态测试工具,例如Cantata++实现动态测试的能力。

C++ Test功能比较全面,主要用在开发人员的调试、代码走查和单元测试阶段
QAC/QAC++ 可以作为企业、组织、团队的编程标准约束工具,在机构内贯彻实施编程标准的利器。
4.        技术指标分析
工具
特性        QAC /QAC++        C++ Test
支持的标准        ISO、MISRA C、MISRA C++、JSF  AV++、GJB5369、Effective C++…        MISRA C/C++ Effective C++...
规则数量        C:1300、 C++:1300        C/C++共800
报告形式        GUI浏览器、HTML、TXT、EXCEL、WORD、PDF、XML,报告格式可以定制各种中文模版        提供20种报告模版
中文汉化        提供中文的警告消息报告,提供中文的报告        不详
支持MISRA        作为MISRA协会的主要成员,目前QAC7.1 支持95%,QAC++2.5支持88% MISRA C++标准的规则, 是支持MISRA规则最全面的工具        其支持MISRA规则是由RuleWizard自定义模块构成,只支持部分MISRA C/C++规则
集成性        提供MS VS6.0 .NET、Tornado、Eclipse等集成插件,也自定义集成,目前还可以集成Keil, Source Insight, VisualDSP等IDE环境。
可以继承makfile 等Build环境,可以继承配置管理工具        Eclipse
Visual Studio .NET
Wind River Workbench
ARM Real View Development Studio
NetBurner
Baseline功能        能够提供Baselining功能,把历史遗留的软件最为一个基线,只报告新加入的代码和修改的代码所存在的软件问题,可以和版本管理工具集成        无此功能
规则定制        QAC/QAC++提供规则定制的接口,也就是Post Analyses接口,用户可以利用这个接口描述编程风格,命名约定,编程限制,度量限制、代码中存在问题的规则定制
        提供Rule Wizard模块,基于GUI的规则定制,可视化开发,学习也需要一定的时间,开发定制规则难度亦不小

软件度量        提供C语言60多种静态度量指标
提供C++语言20多种静态度量指标
以图形化的形式报告可以导出到Excel,进行质量度量
        无(待查)
结构分析        提供函数调用关系,数据引用关系、包含关系、函数控制流图等分析        无(待查)
编译器支持        支持所有的C/C++编译器        针对特定的主机编译器和嵌入式编译器
分析器性能        采用先进的EDG解决方案,分析器性能优越,分析速度快。
当前主流硬件配置下万行代码不超过10秒        私有分析器技术,分析速度慢,一般比QAC/QAC++慢2倍以上,如果打开自定义规则,分析速度更慢

5.        参考案例
摩托罗拉(中国)选择QAC作为编程规范检查工具
2006年摩托罗拉(中国)某部门选用QAC作为代码规范检查工具,之前此部分曾经购买CodeWizard(现已经合并到C++Test中),使用中发现分析结果存在较多的误报,同时也有一些不安全的代码被遗漏等情况出现,经过试用,最后认为QAC分析速度快,分析结果准确,全面,QAC的MISRA模块生成的《MSIRA一致性报告》作为该客户的代码审查唯一的依据。


航天科工集团飞航技术研究院推广QAC/QAC++编程标准检查工具
2007年初, 航天科工集团飞航技术研究院(以下简称三院)准备在全院各个研发单位实施编程标准,具体的标准制定和工具选型由304所牵头开展,2007年9月,304所对多家供应商及其工具进行调研并实际试用评估,认为QAC/QAC++:
        能够满足三院对C/C++编程规则进行自动检查的要求
        可以针对三院提出的附加规则进行开发和定制
        成熟的许可证管理机制可以在三院内网部署
        具有许可证资源冲突和超时管理的机制
        分析速度非常快
        可以生成多种格式的报告,报告模板可以定制
综合比较QAC/QAC++功能强大,且性价比最高,最终选择了旋极公司代理的英国PR公司的QAC和QAC++,作为在全院范围内强制执行编程标准检查的指定工具,旋极公司在软件工程化和软件测试领域处于国内领先地位,有着10多年的经验,是很多国防和军工研发单位软件工程化和测试方案的供应商和服务商,旋极公司不仅仅为客户提供软件测试的工具,更凭借雄厚的技术实力和长期积累的经验为用户提供工具实施和项目开发的咨询服务,304所工程师和旋极公司工程师一起对GJB5369-2005《航天型号C语言安全子集》以及《Effective C++》等标准进行分析,最后对航天三院的C/C++标准进行的调整和优化,并由旋极公司提供专门的检查模块。
2008年4月,由航天304所和旋极公司共同对涉及三院的七个软件研发单位进行了编程标准和工具使用的培训。工具许可证安装在三院信息中心机房服务器上,三院各单位通过内网获取浮动许可证本地使用,项目启动近一年来,QAC/QAC++在各软件研发单位发挥了巨大的作用,已经成为型号软件开发中的必不可缺的常用工具,保证了型号软件的标准符合性和软件的质量。
原创粉丝点击