CppCheck的使用

一、 实验要求

明白CppCheck的配置及原理,并使用CppCheck进行代码缺陷的检查,进行总结。

二、 CppCheck的原理介绍

1、Cppcheck先是分析拆解代码,将每个有效字符作为一个token(token是抽象代码中所有字符的
类,包含字符的字符串,类型等),提供tokenlist,规则实现者通过匹配需要的字符找到感兴趣的代
码,然后通过计算查找bug注意点:其中Cppcheck会做预处理和简化代码的操作,比如include头文件,
展开宏,在每一个token直接用一个空格分隔等。

2. 开发中使用主要的类有:
(1)Tokenizer类: 代码token化, 计划代码
(2)SymbolDatabase类:符号数据库,生成和存储各种符号:scope,function, variable等
(3)Scope类: 各种代码block。最常用的有functionScopes, classAndStructScopes等
(4)Token类: 里面有str(), next(), previous(), tokAt(), link(),Match()等常用函数
(5)Variable类:getTypeString()  
(6)Function类:可以找到实现的scope
(7)Value类: token可以通过getValue()得到可能的值

3. 作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。 执行的检查包括:
(1)自动变量检查
(2)数组的边界检查
(3)class类检查
(4)过期的函数,废弃函数调用检查
(5)异常内存使用,释放检查
(6)内存泄漏检查,主要是通过内存引用指针
(7)操作系统资源释放检查,中断,文件描述符等
(8)异常STL 函数使用检查
(9)代码格式错误,以及性能因素检查

三、 CppCheck的使用

1.	自动变量检查	

CppCheck的使用_第1张图片

2.	数组的边界检查

CppCheck的使用_第2张图片

3.	Class类检查

CppCheck的使用_第3张图片

4.	过期的函数,废弃函数调用检查

CppCheck的使用_第4张图片

5.	异常内存使用,释放检查

CppCheck的使用_第5张图片

6.	内存泄漏检查

CppCheck的使用_第6张图片

7.	操作系统资源释放检查

CppCheck的使用_第7张图片
8. 异常STL函数使用检查
CppCheck的使用_第8张图片

10.	代码格式错误检查

CppCheck的使用_第9张图片

四、 心得体会
经过一段时间的学习,对CppCheck进行了了解和学习,并且使用它进行了各种对应的测试,在这个过程中,自己的一些方面有了进步,比如软件的安装配置,软件的使用,代码的编写等,每一个不同的实验都能带来不同的成长,感谢老师在课堂上大量的提问的方式,同样使我学到了很多,对软件测试有了一些自己的想法,并且通过紧张的提问,很容易的就记住了这门课的知识,对做实验有所帮助。

你可能感兴趣的:(软件测试)