现在的位置: 首页 > 综合 > 正文

商业测试工具的一点体会

2012年12月10日 ⁄ 综合 ⁄ 共 1572字 ⁄ 字号 评论关闭

商业测试工具一般都具有很多功能,然而,和任何其他软件一样(例如word,excel),大部分都只用到了其中的少部分(80/20法则)。尽管不同的用户有不同的需求,但是就自动化测试而言,笔者认为自动化测试工具的对象识别能力(object identification)和录制/回放能力(record/playback)是最重要和最根本的。

 

对象识别能力(Object identification)大多数组织都不具备从零开始,开发一个测试工具的时间和能力,特别对测试部门来讲。从另一方面来讲,既然决定了要选择一个第三方的测试工具,那么就要优先考虑使用这个工具本身的功能。

 

如果被测程序的大多数控件不能被识别(或者不能很好的被识别),那么测试工作就无法开始。

 

如果被测程序的大多数控件能够被识别,那么我们要进一步考察保存控件对象的文件形式。

 

通常从如下两点考虑:

文件的可读性:由于本地化测试的需要,以及控件属性的易变性(有些值随每次编译器的编译而变化,这些属性值不固定,即没有规律性),如果测试工具本身提供接口,或者我们可以通过扩展编程来进行批量改变,那么无疑会大大减少工作量,特别是当测试脚本从一个语言版本移植到另外一个版本时。

 

文件的自组性:一个保存控件对象属性的文件,其本质是一个共享独立的文件,因此必须有办法来保证当不同的人同时操作这个文件时,每个人的操作都有及时的反映和表现。就如编程时的reference文件一样。

 

提供的控件的方法和属性等:每一个被保存的控件对象,测试工具都会提供一套适合该对象使用的内置的方法,属性等等。这些方法,属性是否够用,甚至其扩展性,都会对测试工作的有效开展和日后的维护的工作量都有至关重要的影响。

 

录制/回放能力(record/playback)虽然没有任何一款测试工具能做到录制的代码就能无缝的应用,通常需要测试工程师进行额外的大量的改动(测试脚本的可扩展性,维护性,编程本身等),这并不意味着录制/回放能力不重要。

 

一个好的测试工具,其录制的脚本应该具有很好的易读性和可参考性,方便测试工程师进行修改;而其回放能力,则体现在快速,稳定上(测试工具本身在工作时不会出现crash的问题)。

 

关于以上两点,结合笔者自身的实践,尝试点评一下几款测试工具:

 

对象识别能力:WPF控件,无疑是TestComplete最强,QTP虽然有相应的插件,但是实际效果相当糟糕。而SilkTest, TestPartner则根本不支持。

 

保存控件对象文件的可读性:TestPartner是存在数据库中;TestComplete,SilkTest都是存在于流文件中;QTP以tsr文件格式存在。具体而言,TestComplete是所有的控件对象都存在一个xml文件之中;SilkTest可以存在任何一个inc文件之中,并且可以根据实际需要,把需要用的inc文件引用到具体的项目中;QTP分share和local两种类型,顾名思义,share的就是每个人都可以操作的,local只是对具体的脚本中可见的。QTP提供UI界面供修改控件属性,对share和local的作用域也有良好的定义;但是tsr文件难以解析(也许是我还没有发现如何解析 :))。

 

关于提供的控件的可用方法和属性这一问题:就我而言,TestPartner,TestComplete,SilkTest以及QTP本身内置的方法和属性都够用了,但是SilkTest内置的方法是开放的(一个独立的文件存在),也就是用户可以自行改动一下。

 

录制/回放能力(record/playback)回放速度而言,TestPartner感觉慢一点,TestComplete可以定制对象等待,搜索的时间。录制能力而言,QTP最为强大,其keyword view就像一个傻瓜照相机一样的简单方便。

抱歉!评论已关闭.