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

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

追求代码质量: 使用 TestNG-Abbot 实现自动化GUI 测试

发布: 2009-6-05 09:57 | 作者: 不详 | 来源: 测试时代采编 | 查看: 41次 | 进入软件测试论坛讨论

领测软件测试网 TestNG-Abbot 是一种测试框架,它为 GUI 组件的测试带来了新的活力。本月,Andrew Glover 将带领您亲历使用 TestNG-Abbot 测试 GUI 过程中难度最大的部分,即理解用户场景的实现过程。一旦理解了它,您会发现将 GUI 组件隔离并使用框架所含的极其方便的 fixture 对象对其进行验证是多么地简单。

使用 Swing、AWT 和类似的技术构建用户界面通常会给开发人员进行测试带来挑战,原因如下:

        底层图形框架的复杂性

        GUI 中表现形式和业务逻辑之间的耦合

        缺乏直观的自动测试框架

        当然,前两个原因并不新鲜 —— 图形框架本来就很复杂,而且向 GUI 应用程序添加业务功能总是会给测试造成麻烦。另一方面,过去几年中有许多方便的框架涌现出来,确实使 GUI 测试更加便利。

        本月,我将介绍一种新的框架,它极大地减轻了 GUI 测试的痛苦。

 TestNG-Abbot 简介

        TestNG-Abbot 源自于两个成功的开发人员测试框架的结合:Abbot 和 TestNG。Abbot 是一种 JUnit 扩展框架,主要目的是使 GUI 组件实现编程隔离,它还提供了一种验证 GUI 行为的简易方法。举例来说,可以使用它来获取对按钮组件的引用,使用编程的方法点击按钮,然后检验其操作。Abbot 还附带了一个脚本记录器,使用它就能够以 XML 格式布设测试场景,可以通过编程的方式运行它。

        在本系列中,我已经介绍了一些关于 TestNG 的内容,这里将继续介绍 TestNG。基本上,TestNG 是 JUnit 的一个替代物。除了所有预期的功能外,它还增加了一些额外功能。正如我在其他文章中提到的一样,TestNG 特别适合于更高层次的测试,其中,它可以用来测试依赖关系并只返回失败了的测试 —— 简而言之,在测试 GUI 时,这类型测试非常方便。(参见 Resources 中有关 TestNG 的更多内容。)

        它的起源就如此让人印象深刻,所以 TestNG-Abbot 成为测试工具中的神童就没什么好奇怪的了。同 Abbot 一样,TestNG-Abbot 使 GUI 组件能够进行编程隔离。同时,它使用了 TestNG 的断言,将 GUI 操作细节提取到了简单的 fixture 中,后者能够公开验证方法。如能正确使用,TestNG-Abbot 的直观的 fixture 类能够使 GUI 测试如同从小男孩手里偷一块糖一样简单。(当然,您不会想那么干的!)

直观的 fixture 类

        TestNG-Abbot 的当前版本支持七种 fixture 类型,其中一种类型用于操作按钮、菜单标签以及文本项组件,如文本字段。此外,这些 fixture 类型根据名字在逻辑上链接到了测试中的代码(即 GUI 组件)。这使得 GUI 和其测试实现了松耦合,这样做至少有以下两个好处:

        测试不会依赖于特定位置的 GUI 组件 —— 这样无需中断测试就可对其进行移动。

        可以在早期进行测试,并且不会受到开发期间布局和外观改变的影响。

        虽然目前只支持七种 fixture 类型,很快就会支持其他 fixture 类型。更多的 fixture 类型只会增加 TestNG-Abbot 在编程验证 GUI 方面的高效性。

GUI 验证不再普通!

        虽然 TestNG-Abbot 使得验证 GUI 的过程更加简单,这并不意味着这个过程很简单。必须使 GUI 测试区别于单元或组件测试。验证 GUI 中业务规则的过程变成了对用户场景进行验证;或者,换种说法,GUI 测试包括验证可见状态的改变。

        比方说,如果按下了定单输入 GUI 上的保存按钮,业务规则会保证命令的内容被保存到数据库中。然而,在一个用户场景中,会保证成功的状态信息被插入了按钮下 —— 这正是使用 TestNG-Abbot 能够编写的测试。事实上,如果 GUI 设计良好的话,可以测试被保存到数据库中的命令内容而无需 测试 GUI。接着您还可以同时并及早地编写这两个特别的测试。

延伸阅读

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

TAG: gui GUI 代码 质量 自动化


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

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