zoukankan      html  css  js  c++  java
  • 驯服野马(C++ Test的使用)

    C++ Test是什么
        C++ TestParasoft公司出品的一个针对C/C++源代码进行代码风格测试,自动化单元测试的工具。
    C++ Test能给我们带来什么?
            1.         可以帮助我们检查程序的编码情况,判断是否严格按编码规范进行开发。
            2.         C/C++源代码进行分析,自动生成相应的测试用例,对函数进行初步的测试。
    C++ 软件介绍
           C++ Test的使用比较简单。可以自己新建一个工程,也可以根据一个VC工程生成一个工程。可以对整个工程进行全面的测试,也可以一次只对一个C/C++源文件进行测试。

            

    1

    1.         Command1:静态分析当前的文件。主要是对代码的风格进行检查。

    2.         Command2:动态分析当前的文件。主要是自动生成测试用例,对函数进行测试。

    3.         Command3:静态分析和动态分析。

    4.         Tab1           显示源代码。

    5.         Tab2           显示静态分析结果。

    6.         Tab3           显示动态分析结果。

    7.         Tab4           显示测试进度。

    8.         Message Area   显示一些具体的信息。 

    C++ Test的使用

    让我们先来看看一段很简单的程序。

           #include "windows.h"

           int Sum(int *pNum1, int *pNum2)
           {
                  return *pNum1 + *pNum2;
           }
           int main()
           {
                  int nSum;

                  int Num1,Num2;
            
           Num1 = 1;
                   
    Num2 = 2;
                   nSum = Sum(&Num1,&Num2);
                   return 0;
    }

           够简单了吧?并且也许你也写过这些代码。但这些代码书写的风格如何?存在隐患吗?那就用C++ Test分析一下。

           先来看看代码风格如何。在上图中就显示出很多,大致可归纳为如下几种:

    1.         如果不允许改变参数的内容,声明参数为const

    2.         不要使用tab作为空格。

    3.         全局函数或变量前使用::操作符。

    4.         所有int型的变量都要以“i”开头。

    5.         变量声明,但没有初始化。

    6.         Return的值要使用括号。 

                  有六条?不太相信自己的眼睛吧?我想要有好的风格,这些建议是比较好的,但在实际工作中可能规定的太细了。要想把一匹野马驯服,还是要慢慢来的。

           C++ Test可以设置、编辑、创建静态编译的规则。就让我们来设置一下。

    2

           打勾的就是选择的规则,在静态分析时就会使用这些规则。在图1Message Area中第一行显示表示所有int型的变量都要以“i”开头属于User-110规则。如果你想取消这条规则,那你在图2中找到这条规则,把勾去掉就行了,重新静态分析一下,这条提示就没有了。

           那么动态分析能做什么呢?我们先来看看结果。

          

                                                图3
         
    先看第一行,这就是分析结果的总结。它表明的意思是总共产生了51条测试用例,37条测试成功,14条测试失败。

           先分析第一条失败的测试用例(AUTO_14_A0),以pNum1 = NULL pNum2=NULL为参数输入,测试失败,这就表明在函数中没有对参数的有效性进行判定,这就是程序的一个隐患。当然用户可以对测试用例进行删除和更改,还可以添加自己的测试用例,以弥补自动生成的用例。

           上面提到可以创建用户自己的代码规则,我这里也就不多说了,因为C++ Test自带的帮助已经说的很详细了。

    总结

             使用了一下C++ Test,初步的个人感受有以下三点:

    1.          对项目的代码统一还是很有帮助的,同时也能让编程者慢慢养成好的编码习惯。因为通过静态分析,能强制你书写规范的代码。

    2.          对项目的一些简单函数进行测试,特别是边界的测试,排除一些基本的错误或代码的隐患。

    最好在项目的一开始就使用C++ Test,边编写代码边检查,这样就不会欠下太多的债。在试用中发现,如果项目比较大时,最好不要直接对一个工程进行自动测试,而应按文件一个一个地测试,否则可能会导致程序死掉。
  • 相关阅读:
    _CrtSetBreakAlloc(…)来检测内存泄漏+VC使用CRT调试功能检测内存泄漏(转)
    VC 2005 解决方案的目录结构设置和管理
    ArcGIS Engine基础开发教程(转)
    vc++实现avi文件的操作 用于视频解析及录制(转)
    微软免费杀毒软件下周二公测 年底推简体中文版 狼人:
    大量用户升级iPhone3.0系统导致苹果服务器故障 狼人:
    苹果发布45个iPhone和iTouch漏洞补丁 狼人:
    “汉网热血三国”“南方电视台”等网站被挂马 狼人:
    WAPI有望晋身国际标准 最大阻力美国首度支持 狼人:
    前Google员工推云安全服务检测网站挂马 狼人:
  • 原文地址:https://www.cnblogs.com/goodcandle/p/CTest.html
Copyright © 2011-2022 走看看