能源行业案例:用 PARASOFT C++TEST 提高软件质量和测试效率
核电行业对系统可靠性的高标准要求,决定了广利核公司开发的所有软件系统都必须要经过极其严格的代码测试和单元测试,包括嵌入式设备和纯软件的应用,都必须要满足相关的开发标准和质量要求,比如 IEC60880,CMMI 等等标准。而这些测试工作如果全靠人工来完成,无论是从工作效率还是质量的角度来说,都存在很大的不确定性。在这种背景下,广利核公司需要寻找一种自动化的测试工具和方法来辅助项目的顺利完成。
2009 年初,广利核公司多方评估了市场上的多种商业的和开源的测试软件,主要包括 DRA TestBed,IBM RTRT,Parasoft C++test CPPunit 等,在综合考虑了 Parasoft C++test 在静态测试侦错能力和单元测试效率上的显著优势之后,广利核于 2009 年 8 月最终了选择美国 Parasoft 公司的 C++test 作为质量部的测试工具。
在经过前期的培训和工作流程的熟悉之 后,现已将 C++test 的静态编码规则分析,数据流分析,单元测试等功能成功地部署在广利核实际的项目工作中,并在将近大半年的使用中看到明显的效果。
使用 C++test BugDetective 数据流分析在广利核 10 万行代码级的 VC 项目中测试出 15 个重大程序缺陷,和几十个代码隐患,包括空指针引用、数组越界、未初始化引用、内存泄漏等。
针对 BugDetective 的测试结果,引入了相关的编码规范集合‘Parasoft Recommended Rules’,用 C++test 自动化地实施到开发人员的编码过程中,实现对常发生问题的自动化预防,并节约了大约 80?的人工代码审查编码规范的工作。
运用 C++test 单元测试功可以自动生成单元测试用例,节省了人工编写测试代码的工作量,提高测试效率,并能准确地统计 6 种测试覆盖率。使用 C++test 进行测试,还发现了相比于手工测试两倍的程序缺陷,同时提高了大约 30?的测试效率。
总的来说,通过使用 Parasoft C++test,广利核公司在测试质量和效率上有了显著提高。并让更多的人力资源解放出来从事更有价值的人工工作,对团队资源配置和工作流程优化也很有帮助。鉴于此,我们准备将其应用到更多的项目中去。(作者:刘军利)
行业:核电数字化仪控系统设计、制造和工程服务
软件需求:广利核质量部门为了满足核电行业对软件开发和质量的要求,需要找到一种合适的解决方案,对自主开发的嵌入式和非嵌入式软件进行高效的全面的测试,包括对 C/C++程序进行代码审查和单元测试的工作。
Parasoft 解决方案:Parasoft C++test 自动化测试工具,包括静态编码规范分析,BugDetective 数据流分析和单元测试等功能,让广利核准确高效地检查编码规范,自动分析程序运行时错误,自动化地辅助单元测试工作,从而有效地提高软件质量和测试效率。
使用C++test 的主要好处
- 提高测试效率,减少重复劳动
- 提高软件整体质量
- 优化团队人力资源分配
关于北京广利核系统工程有限公司
北京广利核系统工程有限公司(ChinaTechenergyCo.,Ltd,CTEC,下简称“广利核”)是中广核工程有限公司与北京和利时系统工程有限公司共同出资成立的从事核电数字化仪控系统设计、制造和工程服务的专业化公司。公司总部位于中国北京,以推进核电仪控系统国产化、自主化进程为使命,立足专业化、自主化、国际化的发展战 略,面向核电站提供端到端、全生命周期的数字化仪控系统解决方案,业务涵盖工程设计、产品制造、系统集成、定制开发、技术支持和服务外包等多个领域,公司业绩几乎涉及国内所有在役和在建核电站。