发布新日志

  • C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)

    2015-09-28 12:20:55

    转帖自:http://blog.coderzh.com/2015/04/10/OpenCppCoverage/

    Windows平台下开源的C++代码覆盖率工具,使用简单,功能齐全而强大。2014年才推出的,只恨没有早点发现。

    关于代码覆盖率统计工具,Linux平台下,gcc内置支持gcov,通过编译时加参数选项,进行代码插桩,从而实现代码覆盖率。在Windows平台下,早在几年前,我还没找到特别好用又开源的覆盖率工具,所以以前公司是自己实现了一套,使用起来也不是很方便。

    最近又遇到同样的问题,不过非常幸运的是,一款开源的Windows平台的C++代码覆盖率工具出现了在我的面前:OpenCppCoverage。使用起来非常简单,它不需要在编译时插桩,只需要有pdb文件,运行时插桩,通过OpenCppCoverage启动进程即可。

    官网:https://opencppcoverage.codeplex.com/

    功能也比较全,主要特点有:

    1. 不需要重新编译被测程序,只需要使用OpenCppCoverage运行程序。
    2. 性能开销比较小。
    3. 按模块、代码路径过滤。
    4. 自动生成html覆盖率结果报告。
    5. 支持多个覆盖率结果合并。
    6. 集成Jenkins

    使用起来不要太简单,执行:

    OpenCppCoverage.exe --sources MySourcePath -- YourProgram.exe arg1 arg2
    

    使用文档:https://opencppcoverage.codeplex.com/documentation

    Jenkins集成:https://opencppcoverage.codeplex.com/wikipage?title=Jenkins

    覆盖率详细结果

    codecoverage

    Jenkins集成

    JenkinsOpenCppCoverage

  • Linux服务器性能数据收集 - Sysstat介绍

    2008-05-05 13:04:46

    Linux中的top,free等命令不能完全满足我们性能数据收集的要求,我们需要一个更加强大的工具来收集性能数据。经过考察和对比,发现Sysstat是一个非常强大的工具,因此下载了试了下,效果不错。Sysstat是一个工具集,包括sarpidstatiostatmpstatsadfsadc。其中sar是其中最强大,也是最能符合我们测试要求的工具,同时pidstat也是非常有用的东东,因此本文结合性能测试重点介绍这两个工具。

    Sysstat的安装

    从http://pagesperso-orange.fr/sebastien.godard/download.html下载最新版本,解压,安装

    •  wget http://pagesperso-orange.fr/sebastien.godard/sysstat-8.1.2.tar.gz
       tar zxvf sysstat
      -8.1.2.tar.gz
       cd sysstat
      -8.1.2
       .
      /configure
       make
       su
       <enter root password
      >
       make install

    监视某个进程

    1. 通过ps命令找到相应进程的PID:

      ps -e
    2. 使用pidstat命令监视进程,详细用法见:http://pagesperso-orange.fr/sebastien.godard/man_pidstat.html

      pidstat 2 5 
      //每隔2秒,显示5次,所有活动进程的CPU使用情况
      pidstat -3132 2 5 
      //每隔2秒,显示5次,PID为1643的进程的CPU使用情况显示
      pidstat -3132 2 5 -r
      //每隔2秒,显示5次,PID为1643的进程的内存使用情况显示
    3. 很可惜的是,pidstat命令没有保存性能数据的功能。

    查看性能数据

    在sysstat工具包中,sar是最强大的了,通过sar几乎可以监视所有的性能数据,同时,sar还支持将性能数据保存起来。
    sar详细用法请见:http://pagesperso-orange.fr/sebastien.godard/man_sar.html

    1. 查看CPU使用情况

      sar 2 5
      //每隔2秒,显示5次,CPU使用的情况
    2. 查看内存使用情况

      sar -2 5
      //每隔2秒,显示5次,内存使用的情况
    3. 查看网络吞吐量

      sar -n DEV 2 5
      //每隔2秒,显示5次,网络吞吐量情况

    保存性能数据

    sar支持保存成两种格式的文件,一种是文本文件,一种是二进制文件(只有通过sar自己的命令才能查看)。

    1. 保存为文本文件

      结合上面的查看命令,加入 > filename 参数即可保存文本文件,下面列出几个有用的命令:

      sar 1 10 > data.txt
      //每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
      sar 1 0 -15:00:00 > data.txt
      //每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
      sar 1 0 --15:00:00 > data.txt
      //每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
      sar 1 0 -n DEV -15:00:00 > data.txt
      //每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
      用WinSCP工具从Linux服务器上取下data.txt文件,内容如下:

      Linux 2.6.18-53.el5 (Performancesvr5)  2008年05月05日     _x86_64_

       11时04分05秒     CPU     
      %user     %nice   %system   %iowait    %steal     %idle
       11时04分06秒     all      
      0.25      0.00      0.00      0.00      0.00     99.75
       11时04分07秒     all      
      0.00      0.00      0.25      0.00      0.00     99.75
       11时04分08秒     all      
      0.25      0.00      0.25      1.50      0.00     98.00
       11时04分09秒     all      
      0.25      0.00      0.00      0.50      0.00     99.25
       11时04分10秒     all      
      0.00      0.00      0.00      0.00      0.00    100.00
       11时04分11秒     all      
      0.25      0.00      0.25      0.00      0.00     99.50
       11时04分12秒     all      
      0.00      0.00      0.25      0.00      0.00     99.75
       11时04分13秒     all      
      0.50      0.00      0.50      0.99      0.00     98.01
       11时04分14秒     all      
      0.00      0.00      0.00      1.25      0.00     98.75
       11时04分15秒     all      
      0.50      0.00      0.00      0.00      0.00     99.50
       平均时间:     all      
      0.20      0.00      0.15      0.42      0.00     99.23
      有了这份数据,就可以轻松的使用WPS表格来统计CPU的使用情况了。


    2. 保存为二进制文件

      由于保存的二进制文件只有sar通过-f参数才能打开,不利于我们分析和统计数据,因此不推荐使用这个方法。保存二进制文件的参数是-o,如:

      sar 1 5 --o data
      //每隔1秒,写入5次,将内存使用的数据写入二进制文件data中。
      sar -f data
      //查看data文件
            官方资料:http://pagesperso-orange.fr/sebastien.godard/documentation.html
            欢迎访问我的博客:http://coderzh.cnblogs.com
  • The Software Testing Prestige Issue at Microsoft[翻译]

    2008-02-25 21:07:10

                                           

                                                                                                    --  James McCaffrey

        在和Redmond的谈话中我们谈到了软件测试在微软更低的威望的问题。这是一个重要的问题因为微软很难保持充当软件测试领先的角色。这个问题相对来说比较复杂,在我的这篇短短的博客里很难公平的把所有问题说清楚,所以我下面我列举了12个关于软件测试的威望的观点。这些观点都联系紧密,并且通常对于相同的观点会有不同的看法。然而,我并不同意所有下面的观点 -- 尽管它们在我耳边不停的有人说起,每一点听起来都似乎很难辩驳。
        1.低收入。
        2.低的威望。
        3.差的测试人员容易滥竽充数。
        4.比开发更差的技术。
        5.一定程度上与产品分离。
        6.没有直接的职业发展路线。
        7.测试人员很难走向管理高层。
        8.没有测试方面的明星人物。
        9.没有什么技术突破。
        10.没有什么核心的测试技术。
        11.大学里很少关于测试的课程。
        12.随着开发使用测试驱动开发,使得测试的影响力越来越小。
        以上的每一天都有一大堆的解释,但我不一一写明。通过上面的观点,你应该感觉到为什么很多的软件工程师认为软件测试比软件开发地位要低。然后,我所要表达的是,不要因此打击软件测试,相反的,我对软件测试充满着热情,同时相信,测试在整个软件开发周期是及其重要的!

    原文:http://jamesmccaffrey.spaces.live.com/blog/cns!504C7CC53E7E7FE8!529.entry

Open Toolbar