• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件单元测试工具Numega

发布: 2010-9-27 13:39 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 185次 | 进入软件测试论坛讨论

领测软件测试网

4选择[BoundsChecker/Rebuild All with BoundsChecker] 菜单命令,对程序重新进行编译连接,也就是在这时,BoundsChecker向被测程序的代码中加入了错误检测码。编译连接完成后,BoundsChecker会在你为BoundsChecker构造的文件夹中生成可执行文件。

MILY: 宋体">在FinalCheck模式下对程序进行检测的准备工作都已经做好,这时可以启动程序开始测试了,

操作步骤与在ActiveChecker模式下没什么区别。具体步骤如下:

  1. 确保VC++集成开发环境中[BoundsChecker/ Integrated Debugging]菜单项和[BoundsChecker/Report Errors and Events]菜单项处于选中状态。
  2. 点击[ Build\Start Debug]菜单,选中“Go” 菜单项。程序开始在Debug状态下运行。
  3. 按照你制定好的测试用例,对程序进行操作。 
  4. BoundsChecker检测到了错误时,会弹出窗口向你汇报,你可以当时就进行处理,也可以等到你的操作全部完成,退出程序之后再对列出的这些错误进行分析。这完全取决于你是否选中了[BoundsChecker/Report Errors Immediately] 菜单项。
  5. 退出程序后,BoundsChecker会给出错误检测结果列表。该错误列表与ActiveChecker给出的错误列表的查看方法完全一样。只不过这个列表中所报告的信息会更多、更详细一些。 

好了,BoundsChecker在FinalCheck模式下的使用也介绍完了。ActiveChecker、FinalCheck这两种模式,比较而言各有长短。ActiveChecker使用方便,只需在Debug状态下直接运行程序即可,并且程序的运行速度较快,但检测的错误种类有限;FinalCheck模式下,需要使用BoundsChecker的编译连接器重新编译连接生成可执行程序,并且程序的运行速度比较慢,但检测的错误种类、提供的错误相关信息要多于ActiveChecker。所以,何时使用何种模式,应根据当时的具体情况而定。

3.3 检测Win32 API函数的兼容性

BoundsChecker还提供了一个功能——检测程序中使用的Win32 API函数在不同平台上的兼容性。该功能与前面提到的ActiveChecker、FinalCheck模式没有什么关系,它是独立的一个功能。

虽然大多数Win32 API函数都适用于Win95、Win98、Win2000、WinNT等不同的Windows操作系统平台,但并不是所有的API函数都满足这种情况。你可能不知不觉的使用了在某一个平台下允许,在另一个平台下却不允许使用的API函数,而项目的要求是:程序能够在这两种平台下运行。 BoundsChecker提供的这个检测Win32 API函数兼容性的功能,恰好能够处理这个问题。

该功能的使用方法如下:

启动[BoundsChecker/View/Compliance Report]菜单命令,如下图所示:

5.jpg

3-5 启动Win32 API函数兼容性检测功能

会弹出下面的窗口:

6.jpg

3-6Win32 API函数兼容性检测功能

在对话框中选择程序承诺能够运行的平台,以及被要求遵从的其他标准(标准C和扩展的标准C),点击“OK”按钮,BoundChecker会给出兼容性检测报告。

3.4 忽略错误

在某些情况下,我们需要忽略BoundsChecker报告的一些错误,这些情况包括:

1 误报。BoundsChecker 指定程序中的某段代码存在错误,但经过我们的仔细检查,证实程序确实没有这个错误,这是BoundsChecker的误报。工具毕竟是工具,它只能依照为它制定的算法行事,所以会有误报的情形发生。但千万不要轻易认定某一个错误为误报,一定要对错误进行仔细的分析,确定是真正的误报。

2第三方的代码。BoundsChecker指定的错误发生位置在第三方提供的代码中,包括第三方提供的程序库、DLL、OCX等。对于这种情况,我们也要先进行认真的检查,确定不是由于我们错误的使用第三方的代码引起的。如果最后确定不是我们的原因,则这样的错误报告可以忽略。

3.5 其他

还有一点需要强调,使用BoundsChecker对程序进行测试时,需要有程序的源代码。如果没有源码,BoundsChecker虽然也可以打开EXE文件将其执行起来,但得出的测试结果经常是不正确的,因此也就没有太大的意义。

另外,除了可以在VC++集成开发环境中使用BoundChecker外,从 [开始菜单] 中启动BoundChecker,然后打开经BoundChecker编译连接生成的可执行文件,也可以对程序进行测试,操作方法与集成到VC++集成开发环境中BoundChecker的操作方法是一样的,在此就不赘述了。

至此,BoundChecker所提供的功能全部介绍完了。


4 TrueCoverage

覆盖率对于测试来说是一项重要的数据。在我们执行了针对一个功能模块的所有测试用例后,非常想了解测试对于模块代码的覆盖情况,也就是测试覆盖率到达了多少,以此来判断测试工作是否可以结束,如果还未达到测试目标,如何进一步补充测试用例。

对于这些问题,如果没有覆盖率统计工具的帮助,而想通过手工来进行,几乎是不可能的。

TrueCoverage的功能就是统计测试覆盖率,它恰好能为我们就上面这个问题提供帮助。TrueCoverage给出的覆盖率是“语句覆盖”,是最低覆盖强度的覆盖率,所以我们测试的项目,用TrueCoverage统计后,应尽量达到100%的覆盖。

TrueCoverage的应用阶段为单元测试阶段和集成测试阶段。

BoundChecker一样,TrueCoverage安装成功后,在你的VC++集成开发环境中,会多出一个名为TrueCoverage的菜单,如下图所示:

7.jpg

4-1 TrueCoverageVC++集成开发环境中添加的菜单

这说明,TrueCoverage已经完好的集成到VC++集成开发环境中了。

下面开始介绍TrueCoverage的具体使用步骤。

4.1 使用TrueCoverage

TrueCoverage使用步骤:

1 在VC++集成开发环境中,打开你所要测试的项目。

2 为TrueCoverage构造一个文件夹,方法为:

首先,点击[ Build/Configurations...]菜单命令。

其次,在弹出的对话框中点击 Add 按钮。

然后,在Configuration 编辑框中添入你为TrueCoverage创建的文件夹的名称,这个名称是任意的,比如我们叫做TrueCoverage。

最后,在 Copy settings from组合框中选中 XXX—Win32 Debug项,然后点击OK按钮,接着点击Close按钮。

现在,我们已经为TrueCoverage构造好了一个文件夹。

3 点击[Build/Set Active Configuration…] 菜单命令,选中你刚才为TrueCoverage建的文件夹,然后点击OK按钮。

4 选择[TrueCoverage/Rebuild All with TrueCoverage] 菜单命令,用TrueCoverage的编译连接器对程序重新进行编译连接。TrueCoverage对程序进行编译连接时生成的中间文件、可执行程序,会放到你刚才为TrueCoverage创建的文件夹下。在这个编译连接过程中,TrueCoverage向可执行程序中插入了一些信息,这也就是 TrueCoverage能够跟踪、统计测试覆盖率的原因。

5点击[TrueCoverage/Run with TrueCoverage] 菜单命令,TrueCoverage被启动,接着你的程序也被执行起来。现在就可以按照事先已经制定好的测试用例,在程序中逐个进行执行了, TrueCoverage会在后台记录程序的执行覆盖情况。

TrueCoverage界面中有一个工具条,我们有必要在这里对它做一下说明。如下所示:

8.jpg

4-2 运行控制工具条

这个工具条在程序运行起来后,会由不可用状态变为可用状态。工具条上各按钮功能为:

按钮1:如果在程序的运行过程中你按下了该按钮,则覆盖率的统计只计算到此,你还可以继续操作程序,但此时对程序的任何操作都不再计入到覆盖率统计中去了。

按钮2:如果在程序的运行过程中你按下了该按钮,则TrueCoverage会马上显示截止到目前为止的测试覆盖率情况。之后你可以继续操作程序,TrueCoverage会继续在后台记录程序的执行覆盖情况。

按钮3:如果在程序的运行过程中你按下了该按钮,则TrueCoverage会清除在这之前的覆盖数据,使各项覆盖率的数据均为零。你可以继续操作,TrueCoverage在后台从零开始重新记录程序的执行覆盖情况。

6 当你退出程序时,TrueCoverage会显示本次操作结束后,程序的执行覆盖情况,包括:整个可执行程序的覆盖情况、每个代码文件的覆盖情况、每个代码文件中每个函数的覆盖情况,对于这些覆盖率统计结果,可以文件的形式进行保存。要想再次执行程序,点击TrueCoverage 中的[Program/ Start]菜单命令即可。

我们不太可能一次执行完所有的测试用例。TrueCoverage 为我们想到了这一点。在我们每次使用TrueCoverage运行起程序,执行了一些用例,关闭程序,并保存这一次的覆盖率统计结果后, TrueCoverage会询问你是否将本次的测试结果合并到总的覆盖率统计结果中去,一般情况下,我们合并进去就可以了。

下面介绍一下TrueCoverage的界面,按图中的编号分别给出说明。

9.jpg

4-3 TrueCoverage的运行界面

1:表示程序在某一次执行结束后的测试覆盖情况。双击某一个条目,会在34部分的窗口中显示关于本次覆盖率的详细信息。本图中的情况,表示测试人员执行了两次程序。

2表示程序当前总的测试覆盖情况,是多个1合并后的结果。双击该条目,会在34部分的窗口中显示关于总覆盖率的详细信息。

3:该窗口中显示的数据与你当前选中的某一次或总的测试覆盖统计结果相对应(即前面说到的12)。该窗口中显示的数据包括:程序的覆盖率、每个代码文件的覆盖率。更详细的信息显示在窗口4中。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网