`
javababy1
  • 浏览: 1174172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PureCoverage 的使用

阅读更多

PureCoverage 的使用

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

PurCoverage是一款比较有效的代码覆盖检查工具,通过它你可以快速的了解到设计的白盒测试案例执行后代码的覆盖情况,为白盒测试案例的修正提供的有效的标准,从而快保证了代码路径的覆盖。下面是它用的功能,我在使用时做了一些记录,希望对大家有。

1Σ(Merge Runs )

对多次测试的路径的分析与统计,可以看到当前案例覆盖代码的情况,有那些代码没有覆盖到;有时候你对测试案例跑过多少代码并没有记录,这时需要对所有的跑过的测试进行统计,看看还有那一些代码没有覆盖到,这时这个功能就非常有用,可以对你所有的已经测试的案例进行代码覆盖统计,从而发现没有测试到的代码。

2Δ(Compare Runs)

对两次代码的测度,进行路径比较,由于测试案例比较多,这时我无法判断,两个案例的代码覆盖路径上有什么差别,这时需要对两样者进行比较,从而发现区别。

FunctionList

用来显示函数中的总行数,执行的代码行数,没有执行的代码行数,执行代码的百分比,相关的模块,与原代码的所在的文件。如图:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 419.25pt; HEIGHT: 163.5pt" type="#_x0000_t75"><img src="/Develop/ArticleImages/22/22715/CSDN_Dev_Image_2003-12-152016340.png" o:title=""><font size="3"></font></shape>

从这里你可详细的看到各个函数的运行情况。如果想了解函数中有那些代码没有命中到,则需要Annotated Source,或是双击函数。

Annotated Source

当我们选中main时,我们进入代码分析界面,我们可以看到main()函数的代码的详细执行情况,如图:

<shape id="_x0000_i1026" style="WIDTH: 5in; HEIGHT: 313.5pt" type="#_x0000_t75"><img src="/Develop/ArticleImages/22/22715/CSDN_Dev_Image_2003-12-152016342.png" o:title=""><font size="3"></font></shape>

前面我们执行的案例,输入了4与5,这时你可以看到,代码的执行覆盖情况,m_choice=4与5的路径都执行了,但对于 m_choice=1,2,3 或6……等等,你则必需设计测试案例进行补充,从而保证代码覆盖率,呵呵。下面我执行补充的案例后,你们可以看到,代码的覆盖情况:

<shape id="_x0000_i1027" style="WIDTH: 351pt; HEIGHT: 276pt" type="#_x0000_t75"><img src="/Develop/ArticleImages/22/22715/CSDN_Dev_Image_2003-12-152016344.png" o:title=""><font size="3"></font></shape>

你可以看到代码只有4没有执行,呵呵,由于退出必需选取5,所以Count<<Bye!\n;

return 0;也执行了,如果把这两个测试过程通过上面的合成,就可以看到,我已经完成了代码的100%覆盖。

使用技巧

Pause/Recording: 当你发觉测试过程中必需跳过一些不需要的测试流程时,你可以使用此功能进行测试的控制,你可停止纪录让程序走到你要测试的function,再启动记录,对你需要的过程进行记录。

Cleardata: 当你发现前面的测试案例,已经走过或是属于重复案例时,是否需要重新重做,这完全是不必要的,你可以使用cleardata对之前的测试结果进行清除,再继续进行你有效的测试案例,这样可以不用中断测试。

Snaphot data:对测试进行中数据的快照,你可以对测试案例的执行的不同阶段点进行数据的快照,这样你就可以得到每一个案例执行后的情况而不需要多次重启测试,呵呵。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics