C++Test操作手册.doc

上传人:资****亨 文档编号:122408511 上传时间:2020-03-05 格式:DOC 页数:16 大小:1.28MB
返回 下载 相关 举报
C++Test操作手册.doc_第1页
第1页 / 共16页
C++Test操作手册.doc_第2页
第2页 / 共16页
C++Test操作手册.doc_第3页
第3页 / 共16页
C++Test操作手册.doc_第4页
第4页 / 共16页
C++Test操作手册.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C++Test操作手册.doc》由会员分享,可在线阅读,更多相关《C++Test操作手册.doc(16页珍藏版)》请在金锄头文库上搜索。

1、.A-SPICEC+test操作手册撰写部门:手写算法组发行范围:全公司精选word范本!变更记录版本号修改点说明变更人变更日期审批人审批日期V1.0正式发布赵哲2017-6-11张文涛2017-10-31V1.1修改,1. 加入附录-MISRA-C2012规则2. 修改格式张文涛2017-10-30王杰2017-10-31修改点说明的内容有如下几种:创建、修改(+修改说明)、删除(+删除说明).目 录1C+TEST介绍12C+TEST安装13静态分析13.1规则设定13.2静态测试实施23.3查看结果34单元测试74.1生成测试套件74.2生成单元测试用例74.3桩函数84.4测试实施84.

2、5根据结果完善测试脚本94.6查看结果94.7生成测试报告105附录 MISRA-C2012规则10C+test介绍Parasoft C+test 是一个集成解决方案,用于使一系列被广泛证明可改进软件开发团队生产力和软件质量的最佳实践得以自动化处理。通过 C+test,可进行编码策略增强、静态分析、综合代码复审、单元测试和组件测试、以及运行时错误检测,以此向团队提供一种确保 C 和 C+ 代码达到其预期功能的实用方法。 C+test安装第一步:打开安装源程序,同普通的windows应用程序一样,选择安装路径,完成安装。第二步:在安装目录搜索libs_sp.jar并删除;在安装目录找lic_cl

3、ient.jar并替换第三步:运行程序,打开许可证页面,许可证: 网络版本:定制版 定制:全选确定,至此完成安装过程静态分析在静态分析栏中的Results标签是对静态分析结果的一个罗列。每个红色精灵帽都代表 一种违规行为,而它旁边的数字则代表测试代码中出现这种违规的次数。紧接着的字母表明违规行为的严重级别。再后面就是对这条规范的大致描述以及规则编号。测试配置中的“静态”标签则是对这些规则的管理,当用户需要使用某条规则的时候,只需要在相应规则左侧的方框内打上勾就表明选择了该条规则。而当用户不需要某条规则检查的时候,只需要去掉相应规则的勾就可以了。1.1 规则设定l 开发人员在做静态测试时启用的规

4、则为MISRA C 2012 MISRA2012,规则详情参见附录MISRA-C2012中内容。MISRA-C2012检查项分为两大类,一类称为指导(Directives),另一类称为规则(Rules)。汉王项目要求选择全部规范进行静态分析检查。1.2 静态测试实施开发人员选择好被测源文件后依次选择 测试执行-内建-Static Analysis-MISRA-C2012,即可开始运行测试程序。如需自定义启用禁用规则,可在测试配置中复制内建测试配置,然后再用户自定义中修改即可(内建项均为默认配置,不可修改,如需修改必须建自定义项),最后依次选择 测试执行-用户自定义-“MISRA-C2012自定

5、义名称”。1.3 查看结果测试完成后,点击“proceed”来生成测试报告文档,结果保存在htlm中,可点击“configure.”设置生成路径,并可在首选项中按自己需求设置报表内容和保存格式等。开发人员根据静态分析报告显示的问题修改代码,修改后再次利用静态分析工具进行分析,得出分析结果。对于静态分析检查出来的问题,如果不予修改,给予放行,要经过项目经理批准,最终对放行的问题给出放行说明,开发人员负责编写项目静态分析结果说明MISRA-C 2012检查结果说明,即对放行的问题进行说明。不能放行的规范条目如下 序号指导:MISRA C 2012 Directives MISRA2012-DIR1

6、嵌入汇编程序时嵌入的过程应该是纯汇编程序 MISRA2012-DIR-4_3-3序号规则:MISRA C 2012 Rules MISRA2012-RULE2字面量零 (0) 不得用作空指针常量 (null-pointer-constant) MISRA2012-RULE-11_9_a-33用 NULL 来代替字面零 (0) 作为空指针常量 MISRA2012-RULE-11_9_b-34不应该使用逗号运算符 MISRA2012-RULE-12_3-45初始化器列表不应该包含持久的副作用 MISRA2012-RULE-13_1_a-36逻辑 & 或者 | 运算符的右边操作数不应该包含副作用 M

7、ISRA2012-RULE-13_5-37sizeof 操作符的参数不应该是含副作用的表达式 MISRA2012-RULE-13_6_a-28不应该在sizeof操作符的操作数中访问由一个不稳定的数值指定的对象 MISRA2012-RULE-13_6_b-29函数调用不得是 sizeof 运算符的操作数 MISRA2012-RULE-13_6_c-210不应该使用 goto 语句 MISRA2012-RULE-15_1-411goto 语句应该跳转到随后在同一个函数中声明的标签 MISRA2012-RULE-15_2-312任何由 goto 语句引用的标签应该声明在同一个模块中,或者在一个包围

8、 goto 语句的模块中 MISRA2012-RULE-15_3-313对于任何循环语句,不要有超过一个 break 或 goto 语句用于循环终止 MISRA2012-RULE-15_4-414switch, while, do.while 或 for 语句的主体应该是复合语句 MISRA2012-RULE-15_6_a-315在 if 和 else 之后应该紧跟着复合语句 MISRA2012-RULE-15_6_b-316所有的 if.else-if 结构中应该由 else 分支结束 MISRA2012-RULE-15_7-317只能当最接近的封闭复合语句是 switch 语句主体部分时才

9、能使用 switch 标签 MISRA2012-RULE-16_2-318无条件的 break 语句应该作为每一个非空 case 子句的结尾 MISRA2012-RULE-16_3_a-319无条件限制的break语句应作为所有非空default条件的终结。 MISRA2012-RULE-16_3_b-320需要为 switch 语句提供 default 分支 MISRA2012-RULE-16_4_a-321default 标签在结束 break 之前应该有一个语句或者一个注释 MISRA2012-RULE-16_4_b-322如果存在一个 default 标签,应该作为 switch 语句

10、的第一个或最后一个 switch 标签 MISRA2012-RULE-16_5-323每一个switch语句应该含有至少两个switch子句 MISRA2012-RULE-16_6-324switch 的表达式中不能出现有效的布尔类型值 MISRA2012-RULE-16_7_a-325switch表达式不应该表示一个有效的布尔值 MISRA2012-RULE-16_7_b-326函数原型应该总是对函数调用可见 MISRA2012-RULE-17_3-227非 void 返回类型的函数的所有退出路径应该有一个明确的包含表达式的返回语句 MISRA2012-RULE-17_4-228函数参数对应

11、的数组类型参数应该包含合适数量的元素 MISRA2012-RULE-17_5-429应该使用具有非 void 返回类型的函数返回值 MISRA2012-RULE-17_7_a-330不得使用一个非 void 返回类型函数返回的值 MISRA2012-RULE-17_7_b-331不应该修改函数参数 MISRA2012-RULE-17_8-432对象的申明需要包含不超过2成指针嵌套 MISRA2012-RULE-18_5-433不得声明灵活的数组成员 MISRA2012-RULE-18_7-334不得使用可变长数组类型 MISRA2012-RULE-18_8-335禁止使用预处理操作符 # 和

12、# MISRA2012-RULE-20_10-436一个紧跟在#操作符的宏参数不应该在其后紧跟或在其前加上#操作符 MISRA2012-RULE-20_11-337一个被用作 # 或者 # 操作符的操作数的宏参数,并且它本身受制于进一步的宏替换,那么它应该只能被用作这些操作符的操作数 MISRA2012-RULE-20_12-338预处理指令即使被预处理器排除也必须有语法意义 MISRA2012-RULE-20_13-339在同一个文件中 #else, #elif 和 #endif 必须对应有 #if 或 #ifdef 预处理指令 MISRA2012-RULE-20_14-340字符 , ,

13、/* 或 / 不得出现在头文件的名称中 MISRA2012-RULE-20_2_a-341字符 不得出现在头文件的名称中 MISRA2012-RULE-20_2_b-342#include 指令后面应当添加 或是 filename MISRA2012-RULE-20_3-343C90中规定宏不应该与关键字定义为相同名称 MISRA2012-RULE-20_4_a-344C99中规定宏不应该与关键字定义为相同名称 MISRA2012-RULE-20_4_b-345禁止使用 #undef MISRA2012-RULE-20_5-446类似函数的宏的参数不应该包含类似预处理命令的标识 MISRA20

14、12-RULE-20_6-347不得使用标准头文件 MISRA2012-RULE-21_11-348不得使用 中的异常处理功能 MISRA2012-RULE-21_12-449禁止使用动态内存分配 MISRA2012-RULE-21_3-350禁止使用 setjmp 宏和 longjmp 函数 MISRA2012-RULE-21_4_a-351不要使用标准头文件 MISRA2012-RULE-21_4_b-352禁止使用标准库文件 中的处理函数 MISRA2012-RULE-21_5_a-353禁止使用信号处理文件 中的处理函数 MISRA2012-RULE-21_5_b-354不得使用标准的库的 input/output 函数 MISRA2012-RULE-21_6-355禁止使用 stdlib.h 中库函数 at

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号