• 代码覆盖度C#代码监控工具NCover、Rational PureCoverage、BullseyeCoverage


    代码覆盖率分析实际上是一种度量方式,间接度量质量的方法的过程,是在保证测试质量的时候潜在保证实际产品的质量,在程序中寻找没有被测试用例测试过的地方的流程,创建新的测试用例来增加覆盖率的流程。测试过程中代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,那么应该怎么给出我们的代码覆盖度,是80%、90%还是100%呢,下面就介绍3款监控代码覆盖度的工具。

    1. NCover介绍

    1.1  工具使用范围

    1)Ncover支持所有运行在.NET Framework公共语言运行时框架(.NET Framework CLR)上并符合CLI规范的编程语言NCover

    2)可以覆盖针对.NET 框架精简版编写的应用程序,只要其作为独立的应用程序,并且不是在模拟器或移动设备上运行,例如发布在IIS上的程序,可以通过建立IIS服务进行分析,可以监控工具类的exe程序。

    3)无法支持其他语言编写的程序。

    1.2使用注意事项

    1)在监控发布在IIS中的应用程序,即监控IIS服务时需要注意停止监控,程序会将IIS服务停止,为了减少IIS频繁启动对于他人的影响,建议在无人使用的时间段或者独立的服务器上进行。

    2)对监控结果分析时,只需要保证你发布产物用于编译的代码在NCover服务器上存在即可,例如个性化彩铃铃音设置工具DiyRingSetTool是从路径” E:\Project\CTI_DiyRing2.0\11.Tags\Build1389\工具\Diy铃音设置工具”下获取代码编译的,那么NCover所在服务器的相同路径下存在代码,监控完成后工具会自动加载出代码进行分析。

    1.3 Ncover工具的使用

    安装完成后,运行NCoverExplorer,另外也支持命令行方式运行。

    第一步:选择需要监控的程序

     

    第二步:对监控结果进行分析

     

    1.4 对于Ncover Explorer的补充

    Coverage File-对覆盖文件进行打开、保存等操作;Merge Data-将你选择的多个覆盖文件合并到当前覆盖文件;Load Trends-选择要加载的趋势文件;Project Actions-设置工程属性、新建、保存工程等操作;Run Coverage-根据当前项目配置开始运行Ncover;stop Coverage-运行 NCover 时,单击此按钮将强制 NCover 停止运行,并收集覆盖率数据;

    Thrends&Statistics-打开、关闭趋势和统计面板;

     

    (1)显示所有当前选定的树视图节点覆盖范围百分比。符号覆盖、分支覆盖、方法覆盖;模块总数、命名空间总数、类总数、方法总数、文档总数。

    (2)显示符号覆盖趋势图 。

    (3)没有加载趋势图,可以选择要加载的趋势文件然后打开。

    Program Output-打开、关闭输出信息面板;

     

    Generate Reports--打开生成报告窗口,设置生成的报告类型;

     

    (1)选择要创建报告的类型。

    (2)选择所创建的报表的文件格式。(一些报告是只可用以 Html 格式)。

    (3)选择创建报告的路径。

    (4)选中时,NCover 资源管理器将尝试创建了后打开该报表。

    (5)创建报告的状态消息将显示在此处。

    (6)单击此按钮将创建报表。

    Script Helper--打开脚本帮助窗口;

     

    (1)左窗格中列出 NCover 资源管理器可以创建从当前项目配置的所有脚本格式。

    (2)生成的脚本将出现在这里。您可以通过右键单击并从上下文菜单中选择"复制"来复制文本。

    Application Options-打开应用程序选项窗口

    2. Rational PureCoverage介绍

    2.1  工具概述

    Rational PureCoverage 是Rational PurifyPlus 工具中的一种,Rational PurifyPlus 包括三种独立的工具:代码覆盖度测试工具Rational PureCoverage、内存和资源检查工具Rational Purify、性能瓶颈检查工具Rational Quantify。

    PureCoverage 是一个面向VC, VB 或者Java 开发的测试覆盖程度检测工具,可以收集所有应用程序构件的代码覆盖数据,以自动检测你的测试完整性和那些无法达到的部分。

    2.2Rational PureCoverage工具使用介绍

    Rational PureCoverage支持与VS集成、命令行调用和安装运行

    第一步:从windows“开始”菜单的“程序”中选择“Rational Suite Enteprise”选中“PureCoverage”,如图所示。

     

    图1:在windows中的欢迎界面,注意运行时必须以超级管理员的身份运行。

    第二步:选择需要测试程序

     

    图2:上图为选择被测试程序,并运行run开始

    第三步:对运行结果进行分析

     

    图3:对于简单的程序进行监控的结果

    Calls — 所调用函数的总数;

    Methods missed — 未被调用的函数的数目;

    Methods hit — 已调用的函数的数目;

    % Methods hit — 已执行函数的百分比;

    Lines missed — 未执行的代码行数.

    Lines hit — 已执行的代码行数.

    % Lines hit — 已执行的代码行百分比

    单击鼠标,可以进一步查看上面列出的各个摘要数据所包含的函数和代码行。如上图选中的行直接双击即可看到代码以及执行情况。

    Rational PureCoverage Function List 逐项列出程序运行过程中调用的所有函数,允许测试人员按被调用次数或函数名的字母顺序对函数进行排序。同时工具的Merge (归并)功能,允许测试人员归并同一可执行代码的多次运行所生成的覆盖数据,并生成覆盖数据的总计视图,从而可以快速评估测试运行参数并确保所有代码都已执行和测试。另外工具以不同颜色表示测试结果。

    Hit lines(蓝色)— 已测试的代码行

    Missed lines(红色)— 尚未测试的代码行

    补充说明Rational PureCoverage各个选项卡的含义:

    上图file后面的Setting->Default setting中的选项卡说明:在PowerCov 选项卡中,Line:默认行覆盖,Function:默认函数覆盖,Configure(Modules):选择要覆盖的模块;

    Setting-> Preferences的Run选项卡:Show instrumention progess:当对VC++程序测试时,是否显示工具对话框。Show instrumention warnings:当对VC++程序测试时,侦探到警告对话框,是否显示工具警告对话框。Show LoadLibrary instrumention progress:对VC++、VB native-code程序测试时,当工具文件需要调用工具列表时,是否显示工具对话框。Confirm run concellation:当每次选择file——Concel run时,是否显示证实消息对话框。Show Coverage Browser:当对当前数据或汇总数据做快照时、打开一个.cfy 文件或Purify错误时、打开一个.pcy文件时、推出正在运行的程序时,是否在覆盖浏览器显示数据。show Function List:在与上相同的情况下,是否在函数列表窗口中显示数据。Automatic Merge:当运行一个程序时,是否在Navigator 窗口创建一个自动汇总入口,或在接下来的运行时,是否自动更新汇总数据。Use default filter set:当下一次运行程序时,是否使用当前的过滤器设置。Use case sensitive path names:当下一次运行程序时显示的数据,该工具是否区分大小写字母盘。

    Setting-> Preferences的Workspace选项卡:Show Welcome Screen at startup:当每次打开该工具时,是否显示欢迎对话框。Show directories in file names:当文件名显示时。在可能的情况下是否显示文件路径。Use sounds:是否有声音。Warn on unsaved data:当关闭了一个为保存数据的运行时,或退出未保存数据的运行时,是否显示警告消息对话框。Show in Navigator:选择在Navigator 窗口中是否显示日期、时间、命令行论述等信息。

    Setting-> Preferences的JVM选项卡:此选项卡是在测试java程序时,个性化java虚拟机时使用

    3. 代码覆盖度工具BullseyeCoverage介绍及使用

    3.1工具概述

    Bullseye 公司提供的一款C/C++代码覆盖率测试工具。除了支持各种Unix 下的编译器之外,在Windows 下支持VC、Borland C++、Gnu C++、Inter C++。提供的代码覆盖率是条件/分支覆盖率而不是一般代码覆盖率工具,可参照此网址安装http://wenku.baidu.com/view/8e69c528b4daa58da0114a54.html

    3.2BullseyeCoverage的使用

    本次使用示例程序是使用C++编写的一个小工具,工具的功能很简单,读取文件中的若干字符串,字符串已空格间隔,将所有字符串倒叙输出但字符串自身不变

    第一步:打开BullseyeCoverage Browser

     

    第二步:在Tools菜单中勾选上Coverage Build选项

    说明:如果不勾选改选项的话,之后重新生成程序工程时,BullseyeCoverage是不会生成.cov文件的

    第三步:使用VS2005打开需要测试的程序

     

    第四步:重新生成程序工程

     

    第五步:重新生成成功后,切换到BullseyeCoverage Browser界面,打开已生成的XXXX.cov文件

     

    左边树形菜单显示了整个工程的结构,包括程序中包涵的方法,右边列表显示了各类型覆盖下的覆盖度的统计,由于程序还没运行所以各覆盖率都是0%

    第六步:运行程序

     

    第七步:程序运行完成后切换到BullseyeCoverage Browser界面

    点击界面上的刷新按钮,右侧列表会显示各类型覆盖率,由下图可以看出:

    程序覆盖100%,条件/分支覆盖61%,未覆盖度条件7个

     

    双击右侧列表明细,显示具体程序内容

     

    由上图可以看到,工具将程序的具体内容显示出来了,覆盖的程序会打钩,TF代表此分支执行过真假两种情况、F代表此分支只执行过假、T代表此分支只执行过真,只有红色箭头代表此分支未被执行过,此时我们可以根据未被覆盖的条件和分支修改我们的测试用例

    第八步:生成报告

    一共可生成两种报告Html格式和XML格式,点击菜单File,在下拉菜单中选择输出何种类型的报告

     

    HTML格式

     

    XML格式

     

    说明:BullseyeCoverage的报告只能输出当前显示内容,这就造成我们要向一个完整的报告需要手动输出所有需要的页面(覆盖度的统计页面,具体程序内容页面),并经过人工整理才具体较好的可读性

    参考文章:

    http://wenku.baidu.com/view/c287c2c36137ee06eff91888.html

    http://www.ibm.com/developerworks/cn/rational/r-cn-purifyplusadvancedfeatures/index.html

    http://www.ibm.com/developerworks/cn/rational/r-cn-purecoveragecppcodecoverageanalysis/index.html

  • 相关阅读:
    字符串替换
    字符串查找
    字符串比较
    字节与字符串相互转换
    1365. How Many Numbers Are Smaller Than the Current Number
    1486. XOR Operation in an Array
    1431. Kids With the Greatest Number of Candies
    1470. Shuffle the Array
    1480. Running Sum of 1d Array
    【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
  • 原文地址:https://www.cnblogs.com/hfclytze/p/CodeCoverageTool.html
Copyright © 2020-2023  润新知