SilkTest 的出身
SilkTest 是当今软件测试领域非常流行的一款企业级的自动化测试工具,主要被用来进行功能测试。最初, SilkTest 是由 Segue Software 公司开发的,该公司已经于 2006 被 Borland 公司收购。 2009 年英国软件商 Micro Focus 宣布,他们将以 7500 万美元现金收购 Borland 软件公司,如果该收购成功,相信 Micro Focus 应该能将 SilkTest 这款优秀的自动化测试软件发扬光大。
SilkTest 的应用范围
SilkTest 是面向 Web 应用、 Java 应用和传统的 C/S 应用,进行自动化的功能测试和回归测试的工具。它提供了用于测试的创建、定制的工作流设置、测试计划和管理、直接的数据库访问及校验等功能,使用户能够高效率地进行软件自动化测试。为提高测试效率, SilkTest 提供多种手段来提高测试的自动化程度,包括:从测试脚本的生成、测试数据的组织、测试过程的自动化、测试结果的分析等方面来进行规范。为此 SilkTest 专门提出了一套自己的测试方法论,它是一个包括六个阶段的测试流程。
1. 计划。决定测试策略并且定义测试需求。
2. 捕捉。将你的应用程序中的 GUI 对象对象化,并且建立一个运行测试的框架。
3. 创建测试。创建自动的、可重用的测试,利用录制和编程手段建立用 4Test 语言编写的测试脚本。
4. 运行测试。选择某些测试并且针对需要测试的软件执行它们。
5. 报告。分析测试结果并且生成缺陷报告。
6. 追踪。在待测软件中追踪缺陷并且执行回归测试。
这些过程和方法论大大提高了使用 SilkTest 进行自动化测试的规范性和测试效率。
SilkTest 工作原理
其实自动化测试工具并没有一些人想象的那么神奇,在 SilkTest 看来,应用无非就是由许多 GUI 对象组成的罢了,用户通过键盘 / 鼠标与这些对象交互。当测试人员使用 SilkTest 记录和编写测试用例时, SilkTest 通过面向对象的概念(类 / 属性 / 方法),识别和记录这些 GUI 对象,并且记录键盘和鼠标的行为。当测试用例运行时, SilkTest 就根据测试脚本上的记录来模拟用户的操作,与这些 GUI 对象交互,并最终记录测试结果,用户可以根据这些测试结果来判断测试成功还是失败。
4Test 脚本语言
和绝大多数自动化测试工具一样, SilkTest 可以自动捕捉,检测和重复用户交互的操作从而驱动测试的进行。除此以外, SilkTest 能够让软件测试人员使用新一代面向对象的编程语言 4Test 来编写灵活的测试脚本从而实现各种复杂的操作。 4Test 由三部分组成:第一部分是一个可以使 testcase 和 GUI 对象交互的强壮的面向对象的类库;第二部分是一组用来创建记录 testcase 的结构和逻辑的申明,操作符和数据类型;第三部分是一个用来支持普通任务的内建函数库。另外 4Test 还内置了 强大异常处理机制,从而保证了脚本的强壮性。即使是用户自己录制的测试脚本,也将以 4Test 代码方式存储,这大大方便了用户对测试用例进行修改和维护。
跨平台性
经过 SilkTest 开发人员的不断努力, SilkTest 现在已经能够运行在当今大多数的 Windows 操作系统上了,同时 SilkTest 还支持 Sun Solaris9/10, Red Hat Linux 企业版 2.1/3.0 等类 Unix 操作系统。在浏览器方面, SilkTest 使用了先进的 Document Object Model (DOM) 技术,该技术用来直接和 Wed 浏览器通信从而识别、分类和处理 Web 页面上的对象。该技术并非是使用可视化模式识别技术来进行这些对象的识别,而是通过处理实际的 HTML 代码来实现。 它能确保测试脚本在不同平台、不同浏览器下具有可移植性,以提高测试效率。这一特性使得现在 SilkTest 能够支持多种浏览器的不同版本。例如: Netscape Navigator 4.0/6.0 , Microsoft Internet Explorer 4.0/50/5.5/ 6.0/6.5/7.0 。除此以外,由于越来越多的 Web 应用使用了定制的组件技术,对于这些非标准的 Web 组件, SilkTest 使用自己独有的 VO(Virtual Object) 方式访问 Web 页面的各种对象,该技术作为 DOM 技术的有益补充,它以页面呈现出来的样子来看待页面而不是通过识别 HTML 标记。它以页面中的对象呈现方式(例如:链接,表格,图片)和附加在它们上的操作来看待它们,而不考虑它们背后所用的技术。该技术的应用大大提高了 Web 应用上控件的识别范围,使更多的 Web 应用能被测试成为可能。
支持分布式应用
随着网络时代的来临,越来越多的分布式应用开始涌现。 SilkTest 采用的分布式测试结构,可以同时跨越 Windows 和 Unix 前端、浏览器以及基于 Java 的网络系统环境运行同一测试。据称, SilkTest 是唯一的可以检验测试工作流、完成并发测试并保证跨平台测试准确性的工具。
具体来讲, SilkTest 的分布式测试结构由 Host 和 Agent 两部分组成。 SilkTest Host 是一个用来管理和执行测试脚本的组件,一般来说,测试人员用它来开发、编辑、编译、运行和调试测试脚本与测试计划,它通常运行在和待测软件不同的机器上。 SilkTest Agent 是从 SilkTest Host 接收测试指令,驱动和监视待测软件的组件,也就是说实际上是它与待测软件进行交互,是待测软件和 SilkTest Host 之间的桥梁,它通常和待测软件运行在同一机器上。
智能复原系统
在企业级软件测试过程中,异常状况和各种环境的问题层出不穷,如果不能很好地解决这些问题,将会大大影响测试的效率和测试结果的准确性。 SilkTest 拥有独特的复原功能较好地解决了这些问题,一旦测试过程中出现了错误和异常导致应用失效,复原系统会自动记录这些错误,并且将应用重置为初始状态,这样就不会影响接下来测试用例的执行。这一特性允许 SilkTest 测试在无人值守的情况下长期运行,极大地提高了测试系统的健壮性和测试结果的有效性。
SilkTest 价格
如果说 SilkTest 有什么缺点的话,那就是价格确实有点高。当然,你从不同的代理商那里会拿到不同的报价。一般来说, Windows 平台的 1 个 License 大概是 $10, 000, Unix/Linux 平台的稍微便宜些, 1 个 License 大概在 $6,500 左右。所以现在在国内,只有有实力的公司才能用的起 SilkTest 。
SilkTest 网络资源
相对于其他测试工具来说, SilkTest 的资源不算丰富,除了参考 SilkTest 自带的帮助文件以外,你还可以从以下站点得到关于 SilkTest 方面的信息。
SilkTest中文站 SilkTest 中文资料比较多的一个博客。
QAForums 该论坛有 SilkTest 讨论版,如果学习和使用 SilkTest 过程中遇到问题,可以在这里发帖寻求帮助。
Borland SilkTest SilkTest 的官方网站。
SilkTest KnowledgeBase SilkTest 的问题库,遇到问题的话先搜搜这里吧。