【IT168 技术文章】
本文主要介绍在 IBM Rational ClearQuest 的开发过程中,如何在开发的各个阶段应用各种不同的自动化测试保证开发质量。
ClearQuest 中开发项目的介绍
IBM Rational ClearQuest 是 Rational 家族产品中的核心成员。它可以在整个应用程序开发生命周期中提供灵活的缺陷和变更跟踪功能。
目前,ClearQuest 产品还处于不断升级和维护中。如,对 ClearQuest 本地化的支持,向 Eclipse 平台的移植,ClearQuest Web 的升级,自身功能的升级,以及与 Jazz 的集成等等。
产品的质量和实用性决定了其在客户眼中的地位,ClearQuest 也不例外,质量对于 ClearQuest 的开发和升级至关重要。ClearQuest 发展至今,其代码量几乎可以用 G 来计算;并且其中包括了各种各样的组件,如 ClearQuest 的核心部分、Windows 本地客户端部分,ClearQuest 支持的 Eclipse 平台以及 Web 等等。ClearQuest 的开发团队和测试团队分布于美国的 Lexington、Raleigh、中国和印度。在这样超大重量级的产品开发中,加上遍布各地的庞大的开发团队,如何保证开发质量成为了一个至关重要的问题。
ClearQuest 开发过程中的质量保证环节包括各种阶段交付内容(包括各种文档、设计、代码)的审查、优化的开发流程的应用、各种测试(单元测试、功能测试、性能测试、系统测试等)的引入以及对开发相关人员的培训等等;质量保证中应用到的工具包括软件配置管理工具 ClearCase,缺陷跟踪管理工具 ClearQuest(在 ClearQuest 的开发过程中,ClearQuest 本身也作为质量保证工具来使用)、各种自动化测试工具及其框架等等。
本文主要介绍在 ClearQuest 的开发过程中,如何在开发的各个阶段应用各种不同的自动化测试保证开发质量。
自动化测试与测试驱动开发
我们在开发的过程中采用了自动化测试技术及测试驱动开发的方法。运用这两项技术,使得整个开发团队能够在产品开发过程中获得更高的效率,并更有效地保证了软件产品开发的质量。自动化测试和测试驱动开发贯穿 ClearQuest 开发过程的始终,是整个开发周期中不可缺少的重要环节。
自动化测试及其优点
一般我们谈到的自动化测试,其实是有两种说法,一种是 Test Automation,翻译过来叫测试自动化,侧重说明将测试用自动化设计和实现的过程;另外一种是 Automated Testing/Test,翻译过来叫自动化测试,侧重说明自动的测试软件,可以是自动测试软件的功能或者性能等。在本文中提到的自动化测试,是一个整体的概念,包括了以上两种。
随着计算机技术的发展,自动化测试工具的广泛应用为开发和测试人员提供了最优的质量成本。我们在软件开发过程中应用自动化测试,也正是在追求软件质量成本和收益间的非常好的平衡点。
自动化测试的应用,需要开发和测试人员进行很多前期的工作,如自动化测试框架的设计和实现,自动化测试用例的实现等,而且,目前即使是应用现成的自动化测试工具,也无法避免这些工作。在这种情况下,自动化测试又是如何能够保证质量成本和收益间的平衡呢?下面列举出的自动化测试的优点很好地回答了这个问题。
● 快速执行。
计算机在执行功能测试脚本的时候比人快得多,因此在有限的时间里能测试的更多,可以按时完成更多的工程
● 更好地利用资源。
自动测试可以在非工作时间和节假日自动进行。
● 回归测试。
执行测试脚本,用自动化的工具对不断变化的应用和环境做回归测试,要比手工测试容易得多。
● 提高测试精确度并提早发现更多错误。
● 提供规范化的过程。
自动化测试鼓励测试团队规范化他们的过程,以得到更高的一致性和更好的文档记录。
● 提高测试的重用性。
测试一旦脚本化,开发人员可以使用和重用这些脚本,没有必要为每个应用的相同功能而重新创建脚本。
● 解决测试与开发之间的矛盾。
开发人员在等待测试人员测试出错误的时候,通常需要很多时间。事实上在迭代周期很短的开发模式中,这种问题更为严重,但自动化测试可以解决其中的主要矛盾。
总之,自动化测试通过自动执行测试脚本,使得人们能够用最短的时间完成更多的测试,并且可以用更高的频率执行测试,从而有效降低测试成本、提高测试效率。这就是自动化测试的优点和最终目的。