test

Java Swing Automation Test Study(2nd part)

Java Swing界面自动化测试初探(下)

本文下半部分主要介绍开源的Java Swing自动化测试工具,评价和注解完全基于个人粗浅理解。

FEST

FEST is a collection of libraries, released under the Apache 2.0 license, whose mission is to simplify software testing. It is composed of various modules, which can be used with TestNG or JUnit.

Our users include: Google, Square, Eclipse Foundation, Oracle, IBM, Guidewire, and many more!

评价:五星
官方网站http://fest.easytesting.org/
代码下载https://code.google.com/p/fest/
主要特点

  • 功能性Swing界面测试(Functional Swing GUI Testing)
  • 流畅的断言(Fluent Assertions)
  • 流畅的反射(Fluent Reflection)
  • mockito 作为模拟框架(Mock framework)
  • 文档丰富,应用广泛
  • 第四届ATI自动化大奖第一名
  • 没有录播(Record-Play)的功能

Java Swing Automation Test Study (1st part)

Java Swing界面自动化测试初探(上)

最近有机会又学习了一下Java自动化测试框架,对于自动化测试有了进一步的了解。自动化测试的效果,业界一直都存在一些争论,不过我理解现在的基本共识是自动化测试(即利用程序实现测试工作)是有用的,至于对不同类型的软件能起到多大的作用就要依情况而定。有的软件项目自动化测试可能可以覆盖大部分场景,有的可能只能覆盖较少部分。前一段时间看Robert C. Martin大叔的《程序员的职业素养》,其中对于测试的重视程度令人印象颇深。Martin大叔花了三章的篇幅来讲述测试,分别是测试驱动开发、验收测试和测试策略。而在测试驱动开发一章中,他谈到自己和Kent Beck的一次会面,看完Kent的展示之后,他说:“这让我目瞪口呆!”。Martin大叔的结论是:“此事已有定论!TDD确实可行。”

当然是否是TDD是开发模式的选择,不一定要强求,但是对于自动化测试的重要性,大家应该是广泛认同的。在Jeff Atwood最新出版的博客文集(中文版译名《高效能程序员的修炼》)中,Jeff引用了J.Timothy King的一篇文章,题为《我同情那些不写单元测试的傻瓜》,并由此而展开了对于测试重要性和方法的探讨,并警示大家,不要因为不喜欢测试驱动就不写测试了,这是非常错误的。自动化测试活动在保障产品质量、提高开发效率和持续交付能起到十分关键的作用。

具体到我们实际的开发工作,Java自动化测试起源较早,敏捷声明的发起人之一、XP方法的倡导者Kent和Erich(《设计模式》作者之一)合作创建了JUnit单元测试框架,在Java世界里享有盛誉并成为事实上的标准。不过,现在还有一个更加流行的选择,TestNG。TestNG不仅在单元测试方面,而且在组件测试方面,甚至在功能和系统测试上都有很大的帮助。当然,本文主要不是讨论测试框架,我们主要讨论Java世界里的界面测试问题。有关自动化测试框架的话题,可参考相关网站。