|
一、准备工作
1.了解C++test静态分析
C++test 通过静态地分析代码,来执行代码规范静态分析,以检查与指定代码规范规则的一致性。此分析旨在通过以下措施防止错误,并改进代码质量:
· 检测源码中明显或潜在的缺陷。
· 防止使用可能有损安全性的代码。
· 实施组织设计准则、规范(专用于应用程序的、专门用途的或专用于平台的)、以及从已知的特定错误中概括出来的错误预防准则。
· 通过改进类设计和代码组织,而改进代码可维护性。
· 通过应用常见的格式化、命名以及其它风格方面的约定,提高代码可读性。
2.导入待测工程
参照前面的方法,将ATM这个工程导入C++test,作为待测工程。
二、C++test静态分析之Crules
1.配置Crules
(1)在C++test下拉菜单下选择“Test Configurations(测试配置)”,如图2-1所示。
(2)在出现的窗口左侧,展开Static Analysis(静态分析)文件夹,右键单击Crules,选择Dupicate(副本),此后在User-defined文件夹下会出现Crules,如图2-2所示。
(3)选择User-defined文件夹下的Crules,在右边面板中选择Static,根据需要选择测试规则,或者直接使用默认选择的规则,单击Apply,然后单击Close,如图2-3所示。
2.运行Crules
(1)右键单击工程名ATM,选择C++test->Test Using->User-Defined->Crules,如图2-4所示。
(2)运行Crules过程,如图2-5所示。
3.查看运行Crules的结果
(1)选择C++test面板查看测试结果,如图2-6所示。
(2)右键单击违规项,选择View Rule Documentation,可以查看规则相关文档,程序员可据此修改代码错误,如图2-7所示。
(3)右键单击违规项,选择Suppress Task,在出现的对话框中填入抑制该违规项的原因,即可抑制违规项,如图2-8所示。
(4)再次运行Crules时,在任务栏中不再出现被抑制的违规项,如图2-9所示。
(5)如果想要取消抑制,选择Windows->Show View->Other,如图2-10所示。
(6)在出现的对话框中选择Suppressions,单击OK,如图2-11所示。
(7)在Suppressions面板中找到被抑制违规项,右键单击,选择Delete,即可取消抑制,重新运行Crules,被抑制项会重新出现在任务栏中,如图2-12所示。
4.自定义Crules规则
(1)在C++test下拉菜单下选择Launch RuleWizard,打开规则向导,如图2-13所示。
(2)在规则向导窗口中选择File->New->Rule,如图2-14所示。
(3)在新建规则窗口中的Dictionary中选择C,C++,在Statements中选择if,单击OK,如图2-15所示。
(4)在窗口的右边,右键单击被圈起来的if,选择Condition[…],如图2-16所示。
(5)在选择条件窗口中,打开Expressions文件夹下的Assignment文件夹,选择a=b,如图2-17所示。
(6)右键单击if,选择Create Output->Display,如图2-18所示。
(7)在用户自定义输出对话框里,输入avoid if(a=b) expression,单击OK,如图2-19所示。
(8)回到规则向导窗口,在右边空白处单击右键,在出现的下来菜单中选择Properties,如图2-20所示。
(9)在规则属性对话框中,填入相应规则信息,如图2-21所示。
(10)回到规则向导窗口,在右边空白处单击右键,在出现的下来菜单中选择Save或Save As,如图2-22所示。
(11)选择规则保存的路径,并为规则命名,如图2-23所示。
(12)在C++test下来菜单中选择Test Configurations,在测试配置窗口选择Crules,点击右边的Import按钮导入刚才自定义的if_assignment规则,如图2-24所示。
(13)在导入规则对话框中,点击Browse按钮,选择被导入规则路径,单击OK,如图2-25所示。
(14)自定义规则被导入后,在Rules Tree中会出现该规则,如图2-26所示。
文章来源:www.tryarm.com
最新版本C++test免费下载:www.edukit.com.cn
[ 本帖最后由 lilycheng 于 2009-9-1 09:56 编辑 ] |
|