time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > C\C++\VC > C语言 > C++Test代码静态检查规则制作方法

C++Test代码静态检查规则制作方法

时间:2009-09-20 23:31 点击:4562次 字体:[ ]




    1  前言

    在一个团队进行软件开发的过程中,一般都会制定一个大家共同遵守的编码规范,程序员遵循良好的编码规范写程序有很多好处:

    1.有助于程序的维护,降低软件生命周期成本,符合项目管理的规律;

    2.使团队中相关人员的流动对项目的影响尽可能小,有利于项目的控制与管理

    3.提高程序的可读性,有利于相关设计人员交流,提高软件质量

    4.有利于形成可管理,可重用的团队后备资源

    5.有利于软件工程相关产品元素的SCM

    并且,通过建立代码编写规范,可以提高程序的可靠性、可读性、可修改性、可维护性、一致性,保证程序代码的质量,继续软件开发成果,充分利用资源。提高程序的可继续性,使开发人员之间的工作成果可以共享。这是遵守规范进行代码编写是程序员的基本素质。

    如果对编码规范进行人肉检查,无疑是非常费时费力,效果不好。使用自动化的工作来进行检查显然是一个更好的执行方法。为了这个目标,我们就研究了下使用C++ Test进行代码静态检查。

    C++Test是一个C/C++自动单元测试工具,自动测试C/C++类、函数或部件,自动生成测试用例、测试驱动程序或桩调用,无需手工编写。C++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试),并提供自动覆盖率测试。同时C++Test还是一个C/C++编程规范自动检查工具,它内置了800多条业界规则,同时可以图形化地定制自己的规则,C++ Test进行静态测试(自动编程规范检查)有以下优点:

    1.Pattern Matching(自动代码走查)

    2.内置800多条业界有名的C/C++规则(大量规则来自于多家世界著名电信公司的编程规范,以及世界权威的编程规范资料),可实现自动的图形化代码编程规范检查3.使用RuleWizard图形化建立自定义代码规则的功能。客户可以很方便建立并保存一整套自己的代码编程规范(团队经验),从而保证团队经验不会因为人员变动而流失。与此同时避免了编程人员为了保存团队的代码编程规范而浪费大量时间人工编写script Bug Detective(Flow Analysis)

    4.Hot Spot技术(“热点”技术)。C++Test通过自带的“热点”包,用回溯的方式自动模拟运行程序中的执行路径,从而精确高速地找到程序存在问题的位置;例如,我们不允许程序中存在“/0”的运算部分,由此凡是程序中“/var”的部分都有可能因为var是0而造成程序逻辑错误(其中“/var”的型态就称为程序中的“热点”),此时,C++Test会自动搜索程序中所有“/var”的运算型态,并回溯运行程序中的执行路径,找到所有致使var变成0的路径,从而精确地找到程序中的错误。

    2. 定制规则

    C++ Test内置了300多个静态测试项,一般的情况下其实也就够用了。但是如果有特殊的测试要求,动辄几十K的代码,用眼睛看,脑子想,太辛苦,也不“安全”。如果我们用C++Test图形化的RuleWizard,结合公司的编码规范来制定规则,一来方便,高效,二来可以节约人工检查所带来的不必要的成本。Rule的创建有2种方式,一种是手工写规则,让RuleWizard去帮你生成规则(最好别用autocreate,因为C++Test的智能化还很欠缺)。我这里主要重点放在自己写规则方面,下面介绍基本步骤:

    2.1 C++Test的基本设置

    首先使用C++Test静态规则集检查必须要进行一些简单的设置

C++Test代码静态检查规则制作方法_www.fengfly.com

    新建工程:选择VS6.0或者VS.NET工程文件,或者打开一个已有的工程(是原来已经建立的C++Test工程,后缀名为*.cpf)

C++Test代码静态检查规则制作方法_www.fengfly.com

    配置工程,引入需要包含的头文件文件夹 .

C++Test代码静态检查规则制作方法_www.fengfly.com

C++Test代码静态检查规则制作方法_www.fengfly.com

    测试选项的筛选,Enable Coding Standards(静态测试),Enable Unit Testing(单元测试),选择静态测试,去掉单元测试的选项。



本文地址 : http://www.fengfly.com/plus/view-77290-1.html
标签: C Test代码 静态检查
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:
本栏分类