51Testing软件测试论坛

标题: C++test静态分析之Crules [打印本页]

作者: lilycheng    时间: 2009-9-1 09:55
标题: C++test静态分析之Crules
一、准备工作

1.了解C++test静态分析

C++test 通过静态地分析代码,来执行代码规范静态分析,以检查与指定代码规范规则的一致性。此分析旨在通过以下措施防止错误,并改进代码质量:

·  检测源码中明显或潜在的缺陷。

·  防止使用可能有损安全性的代码。

·  实施组织设计准则、规范(专用于应用程序的、专门用途的或专用于平台的)、以及从已知的特定错误中概括出来的错误预防准则。

·  通过改进类设计和代码组织,而改进代码可维护性。

·  通过应用常见的格式化、命名以及其它风格方面的约定,提高代码可读性。

2.导入待测工程

参照前面的方法,将ATM这个工程导入C++test,作为待测工程。

二、C++test静态分析之Crules

1.配置Crules

(1)在C++test下拉菜单下选择“Test Configurations(测试配置)”,如图2-1所示。
[attach]55935[/attach]
(2)在出现的窗口左侧,展开Static Analysis(静态分析)文件夹,右键单击Crules,选择Dupicate(副本),此后在User-defined文件夹下会出现Crules,如图2-2所示。
[attach]55936[/attach]
(3)选择User-defined文件夹下的Crules,在右边面板中选择Static,根据需要选择测试规则,或者直接使用默认选择的规则,单击Apply,然后单击Close,如图2-3所示。
[attach]55937[/attach]
  2.运行Crules
(1)右键单击工程名ATM,选择C++test->Test Using->User-Defined->Crules,如图2-4所示。
[attach]55938[/attach]
(2)运行Crules过程,如图2-5所示。
[attach]55939[/attach]
3.查看运行Crules的结果
(1)选择C++test面板查看测试结果,如图2-6所示。
[attach]55940[/attach]
(2)右键单击违规项,选择View Rule Documentation,可以查看规则相关文档,程序员可据此修改代码错误,如图2-7所示。
[attach]55941[/attach]
(3)右键单击违规项,选择Suppress Task,在出现的对话框中填入抑制该违规项的原因,即可抑制违规项,如图2-8所示。
[attach]55942[/attach]
(4)再次运行Crules时,在任务栏中不再出现被抑制的违规项,如图2-9所示。
[attach]55943[/attach]
(5)如果想要取消抑制,选择Windows->Show View->Other,如图2-10所示。
[attach]55944[/attach]
(6)在出现的对话框中选择Suppressions,单击OK,如图2-11所示。
[attach]55945[/attach]
(7)在Suppressions面板中找到被抑制违规项,右键单击,选择Delete,即可取消抑制,重新运行Crules,被抑制项会重新出现在任务栏中,如图2-12所示。
[attach]55946[/attach]
  4.自定义Crules规则
(1)在C++test下拉菜单下选择Launch RuleWizard,打开规则向导,如图2-13所示。
[attach]55947[/attach]
(2)在规则向导窗口中选择File->New->Rule,如图2-14所示。
[attach]55948[/attach]
(3)在新建规则窗口中的Dictionary中选择C,C++,在Statements中选择if,单击OK,如图2-15所示。
[attach]55949[/attach]
(4)在窗口的右边,右键单击被圈起来的if,选择Condition[…],如图2-16所示。
[attach]55950[/attach]
(5)在选择条件窗口中,打开Expressions文件夹下的Assignment文件夹,选择a=b,如图2-17所示。
[attach]55951[/attach]
(6)右键单击if,选择Create Output->Display,如图2-18所示。
[attach]55952[/attach]
(7)在用户自定义输出对话框里,输入avoid if(a=b) expression,单击OK,如图2-19所示。
[attach]55953[/attach]
(8)回到规则向导窗口,在右边空白处单击右键,在出现的下来菜单中选择Properties,如图2-20所示。
[attach]55954[/attach]
(9)在规则属性对话框中,填入相应规则信息,如图2-21所示。
[attach]55955[/attach]
(10)回到规则向导窗口,在右边空白处单击右键,在出现的下来菜单中选择Save或Save As,如图2-22所示。
[attach]55956[/attach]
(11)选择规则保存的路径,并为规则命名,如图2-23所示。
[attach]55957[/attach]
(12)在C++test下来菜单中选择Test Configurations,在测试配置窗口选择Crules,点击右边的Import按钮导入刚才自定义的if_assignment规则,如图2-24所示。
[attach]55958[/attach]
(13)在导入规则对话框中,点击Browse按钮,选择被导入规则路径,单击OK,如图2-25所示。
[attach]55959[/attach]
(14)自定义规则被导入后,在Rules Tree中会出现该规则,如图2-26所示。
[attach]55960[/attach]
文章来源:www.tryarm.com
最新版本C++test免费下载:www.edukit.com.cn

[ 本帖最后由 lilycheng 于 2009-9-1 09:56 编辑 ]
作者: lilycheng    时间: 2009-9-1 10:28
标题: 非常感谢51Testing
这几天忙着充实我们的tryarm论坛,也没有来这里发帖,刚刚去了领测,发现我原来的帖子都被删了,账号也被封了,确实,我的帖子带有做广告的成分,但是不也给大家提供了许多学习资料吗?我的帖子里面都是非常多图片的,从图片的处理到上传,还是有点工作量的,就这么全给删了,我也挺心疼的,所以非常感谢非常感谢51Testing,没有删帖,也没有封号,也希望我的帖子给大家更多的帮助吧。
作者: zishuijing    时间: 2012-5-14 15:45
挺好的,正找c++test的使用资料呢
作者: zishuijing    时间: 2012-5-14 15:45
挺好的,正找c++test的使用资料呢
作者: zishuijing    时间: 2012-5-14 15:58
挺好的,正找c++test的使用资料呢
作者: sandy-guo    时间: 2015-1-4 14:17
我也在整理这方面的资料,请问你们都学习多久了?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2