测试工具应用之我见

2008-04-09 04:00:56来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具已经比较多了,这些测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。

  总的来说,测试工具的应用可以提高测试的质量、测试的效率。但是在选择和使用测试工具的时候,我们也应该看到,在测试过程中,并不是所有的测试工具都适合我们使用,同时,有了测试工具、会使用测试工具并不等于测试工具真正能在测试中发挥作用。因此,本文拟从测试工具的选择和使用方面着手,讲述一点本人的心得。

  1、 应用测试工具的目的

  应用测试工具的目的很明确,一般而言,在测试过程中应用测试工具主要为了以下几个目的:

  a) 提高测试质量;
  b) 减少测试过程中的重复劳动
  c) 实现测试自动化

  在测试中应用测试工具,可以发现正常测试中很难发现的缺陷(例如,Numega的DevPartner工具就可以发现软件中的内存方面的问题)

  2、 测试工具的分类和选择

  一般而言,我们将测试工具分为白盒测试工具、黑盒测试工具、性能测试工具、测试管理工具几个大类。

  a) 白盒测试工具

  白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。

  i. 静态测试工具

  静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。

  静态测试工具的代表有Telelogic公司的Logiscope软件、PR公司的PRQA软件。

  ii. 动态测试工具

  动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。

  动态测试工具的代表有Compuware公司的DevPartner软件、Rational公司的Purify系列。

  b) 黑盒测试工具

  黑盒测试工具适用于黑盒测试的场合,黑盒测试工具包括功能测试工具和性能测试工具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。

  黑盒测试工具的代表有Rational公司的TeamTest、Robot,Compuware公司的QACenter,另外,专用于性能测试的工具包括有Radview公司的WebLoad、Microsoft公司的WebStress等工具。

  c) 测试管理工具

  测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。

  测试管理工具的代表有Rational公司的Test Manager、Compureware公司的TrackRecord等软件。

  d) 其他测试工具

  除了上述的测试工具外,还有一些专用的测试工具,例如,针对数据库测试的TestBytes,对应用性能进行优化的EcoScope等工具。

  e) 测试工具的选择

  面对如此多的测试工具,对工具的选择就成了一个比较重要的问题。我们在考虑选用工具的时候,建议从以下几个方面来权衡和选择:

  i. 功能

  功能当然是我们最关注的内容,选择一个测试工具首先就是看它提供的功能。当然,这并不是说测试工具提供的功能越多就约好,在实际的选择过程中,适用才是根本。“钱要花在刀刃上”,为不需要的功能花费金钱实在不是明智的行为。事实上,目前市面上同类的软件测试工具之间的基本功能都是大同小异,各种软件提供的功能也大致相同,只不过有不同的侧重点。例如,同为白盒测试工具的Logiscope和PRQA软件,他们提供的基本功能大致相同,只是在编码规则、编码规则的定制、采用的代码质量标准方面有不同。

  除了基本的功能之外,以下的功能需求也可以作为选择测试工具的参考:

  1) 报表功能;测试工具生成的结果最终要由人进行解释,而且,查看最终报告的人员不一定对测试很熟悉,因此,测试工具能否生成结果报表,能够以什么形势提供报表是需要考虑的因素。

  2) 测试工具的集成能力;测试工具的引入是一个长期的过程,应该是伴随着测试过程改进而进行的一个持续的过程。因此,测试工具的集成能力也是必须考虑的因素,这里的集成包括两个方面的意思,首先,测试工具能否和开发工具进行良好的集成;其次,测试工具能够和其他测试工具进行良好的集成。

  3) 操作系统和开发工具的兼容性;测试工具可否跨平台,是否适用于公司目前使用的开发工具,这些问题也是在选择一个测试工具时必须考虑的问题。

  ii. 价格

  除了功能之外,价格就应该是最重要的因素了。说句题外话,在论坛上经常看到有人沾沾自喜的说我已经破解了XX测试工具这样的话,对这种态度我十分不赞成。如果作为软件从业者的我们都不能尊重别人的劳动,那有怎么能够指望我们的客户尊重我们的劳动呢?况且,测试工具的价格并不是真的昂贵到不能承受的程度,例如Numega的DevPartner一个固定license是两万多元人民币,对一个中型的公司来说完全可以承受。

  iii. 测试工具引入的目的是测试自动化,引入工具需要考虑工具引入的连续性和一致性

  测试工具是测试自动化的一个重要步骤之一,在引入/选择测试工具时,必须考虑测试工具引入的连续性。也就是说,对测试工具的选择必须有一个全盘的考虑,分阶段、逐步的引入测试工具。

  3、 测试工具在测试过程中的应用

  前面已经对测试工具的分类、测试工具的选择进行了一些描述,这里,我还想就测试工具在测试过程中的应用说一点自己的看法。

  对测试工具能够发挥的作用大家都已经了解并认可了,但是很多引入测试软件的公司并没有能够让测试软件发挥应有的作用,其主要原因我总结为三个方面:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:软件测试基础

下一篇:极端编程的特点及讨论