随着自动化测试的发展,市场上涌现了多款自动化测试工具。其中,绝大部分是商业收费的工具,也有部分是开源工具。但是相对于收费的自动化测试工具,开源工具的功能与使用领域都要逊色很多。好多公司由于本身测试工作的需求,又研发了适合本公司使用的自动化测试工具。目前自动化测试领域中,自动化测试软件可谓百花齐放。
测试工具按其功能特性不同,可划分为功能测试工具、性能测试工具、测试管理工具等,下面给出适用于不同方面的自动化测试工具。
1.1自主开发测试工具
自动化测试工具种类繁多,但是其高额的购买费用,让人望而生畏。另一方面,自动化测试工具并不是万能的,并不能满足特殊行业,特殊业务功能特性的需要。因此,部分公司为了节省开支,根据本身测试工作的需要,自主研发了自动化测试工具。
一般自主研发的测试工具,更倾向于满足公司业务需求,往往都有很强的针对性。自主研发的测试工具都留有接口,具有自主性,容易与本公司使用的其他管理工具衔接,具有很大的灵活性。同时,自主研发的测试工具,在交互界面上,可以根据不同的项目定制不同的交互界面,大大增强了其易用性。
1.2 开源测试工具
不仅仅开源测试工具,其它开源软件往往受到很多使用者的追捧。开源测试工具带来的优势非常明显,其受欢迎的理由也显而易见:
1. License费用:如果公司测试工具使用的并发数仅仅是1至2个,也许还无法体现开源工具的优势,而测试工具大量的并发运行,购买商业测试工具的License费用将是很可观的。
2. 灵活性:开源测试工具,一般都提供了源代码及开发接口。从而大大提高了使用者对测试工具的二次开发能力,这不仅有利于本身测试项目与测试工具的结合,而且也给开源测试工具的不断壮大,注入了新鲜血液。
在测试工作中,开源测试工具确实能给企业带来收益, 即便仅仅使用开源测试管理工具(如:Bugfree)搭建公司内部的测试管理平台,也能从中获益。而且,随着时间的推移,众多的开发者对工具的不断完善与维护,其必将具有更好的前景。
开源测试工具并非没有缺点,同商业测试工具相比,开源测试工具在用户交互性、可靠性及易用性方面,做的尚不太理想。因此,如要在测试项目组中引入开源测试工具,对测试工程师来讲,无论是专业知识素质还是解决问题的能力,都是有一定的要求的。
1.3 商业测试工具
商业测试工具很多,一般都具有庞大的功能;在界面易用性、交互性上考虑全面;上手容易,易被大家接受。当然,购买费用也很昂贵。同时,也应该看到,商业测试工具同样具有其他软件工具的特性,如,其大部分功能或者其高级应用功能,对于一般用户来说,却很少使用到,也就是经常提及到的80/20原理(即测试工具的20%功能经常被应用,而80%的很少使用)。
测试工具的工作原理基本相同。对测试部门来讲,既然决定了采用商业测试工具,则接下来面临的是需要选择一款适合测试工作需要的测试工具。值得提醒的是,在选择测试工具时,需优先考虑商业测试工具本身的功能,验证其是否满足测试项目组的测试需求,如,对被测程序控件的识别能力、对象的被保存形式等。
优秀的商业测试工具应至少具备如下特点:1)录制过程生成的测试脚本,应具有很好的层次性与易读性,利于测试工程师进行修改;2)当脚本回放时,应准确、快速、稳定。
1.4 自动化测试工具的选择
无论选择开源测试工具,购买商业测试工具,抑或自主研发,每一款工具都有其自身的优点。如何在众多的测试工具中,挑选适合自己公司使用的一款工具呢?决策前一定要花费较充足的时间进行调研,选择适合公司需要的测试工具。在此,建议从以下几个方面进行考虑。
1. 对象识别
自动化测试工具的工作原理基本上为录制/回放。因此录制的效果,直接决定了脚本回放的结果。这里,需考虑:
录制是否能正确地识别对象;
回放中是否正确地识别对象;
是否支持捕获一些低层操作,如右击等;
录制生成的脚本是否易于理解与维护。
2. 数据维护
测试工作中,通过不同数据的组合变换,即可实现不同的测试场景。自动化录制过程中生成的脚本,后续测试中会重复的使用。在脚本的重复使用过程中,数据的变化也非常频繁。一款好的自动化测试工具,应该很好的兼顾到数据的维护。这里,需考虑:
能够实现数据的外部存储;
能与外部文件(如记事本、Excel、数据库等)进行数据的交互操作。
3. 错误修复能力
测试脚本回放过程中,并非都按期望的结果成功回放。回放过程中可能会遇到软件本身、被测系统、操作系统等其他问题,而导致脚本不能成功回放。好的测试工具,应具备能够识别该类错误问题,并从该类错误中自动恢复的功能。该类问题常见的场景:
回放过程中被测程序崩溃;
回放过程中意外错误信息的弹出;
其他外部错误信息。
4. 脚本语言可扩展性
测试工作中,测试工具的GUI功能可能易学易用,但也有很大的局限性。单单使用GUI功能大大约束了测试工具功能的发挥,优秀的测试工具如要淋漓尽致的发挥其功能,需脚本加以辅助。大部分测试工具都提供脚本语言,而且测试工具可将录制过程转化为脚本语言,使用户能够灵活的操作脚本语言。因此,脚本语言的灵活性与熟悉程度,也一定程度上决定了工具的应用范围与推广程度。好的测试工具使用的脚本语言必然为大家所熟悉,而且内置提供了很多必要的函数、方法、类等,当然用户也可以灵活的定义类、函数、方法等。这样不仅提高了工具的应用范围,也给公司省去了不少培训费用。
5. 费用
价格是大部分公司购买测试工具的一个关键性因素,不同的测试工具价格上差异也较大,一般价格的差异也会体现在功能的差异上。购买测试工具除了考虑单纯的购买费用外,还需要考虑到后续的技术支持费用,以及额外购买并发Lisence的费用。因此,应该总体考虑,不要仅仅只看购买工具时所花费费用。
6. 兼容性
兼容性体现在两个方面:测试工具对硬件平台及与其他第三方软件的兼容性;测试工具对被测软件使用开发语言的兼容性,如部分测试工具不支持Oracle等。