通过 FIT 和 FitNesse 进行业务沟通

阅读数:1063 2007 年 11 月 23 日

话题:敏捷架构文化 & 方法

FIT(集成测试框架)和 FitNesse 虽然都被用于敏捷项目进行集成测试(integration test)和验收测试(acceptance test),但很多人已经尝试将两者结合起来作为通用的测试框架。一些人指出 FIT 只能用于进行业务沟通或者客户沟通的交叉功能测试(cross- functional test),而且这一点是相当重要的。

要是 FIT 和 FitNesse 使用不当,多半是由于相关方面的共享经验不足引起的。

Naresh Jain 指出目前还没有足够成熟的模式(pattern)和反模式(anti-pattern):

我们是否应该用静态方式在各个环节中共享数据?如何设计 Fixtures?继承与否?

在过去的几个月中,有些人已经分享了关于 FIT 和 FitNesse 的使用经验。James Shore 描述了五种误用 FIT 的方式,其中他提到,人们尝试使用 FIT 来实现自动化,而这并非 FIT 所长,与客户沟通才是 FIT 所长。

当然,它被称作“集成测试框架”。但关键词在于“集成”,而不是“测试”。实际上,做为自动测试工具,Fit 则显得相当劣 势。卓越的自动测试工具有很多,例如 xUnit、Watir、Selenium,更不用说昂贵的屏幕抓取工具(screen scraper)了,它们都强于 Fit。

Fit 的长处——我所知道的,做得比其他工具要好的方面——“能够用表格提供示例”这一点会让客户觉得很舒服,Fit 是用于客户沟通的卓越的工具。如果用它来自动化回归测试,将会令人捶胸顿足;如果用它来增强与客户沟通,将会使人眉开眼笑。

他总结了以下几点:

  • Fit 有利于沟通,不利于自动化测试
  • 人们更多的使用 Fit 来进行测试自动化,而很少在沟通中使其发挥作用

Naresh Jain 分享了一些关于 FitNesse 的模式与反模式。Naresh Jain 同意了 James Shore 对 FIT 的看法,并且建议 FIT 不应该作为单元测试的替代品:

FitNesse 不是 QA 测试工具。为了让 FItNesse 保持简单而且专司其职,我们只能用它来编写验收测试,而不是其他类型的测试。没有了对测试维护的支持,QA 有效地使用它确实成了大问题。

此外,他建议 FIT 应该被用于交叉功能测试(cross-functional test):

将基于 FitNesse 的验收测试应用于交叉功能测试团队成员间的协作,是一个帮助团队内部交流的好方法。它鼓励团队中的每个成员讨论业务实体,从而在故事初期就使用业务术语(domain language)。

Naresh Jain 和 James Shore 都指出其他一些模式和反模式,他们也一致认可了 FIT 在软件项目中扮演的角色。

InfoQ 之前的文章就涵盖了有关FIT 和 FitNesse的内容, 包括 DbFit、FitNesse 与.NET、FitNesse 与 Ruby 以及一本关于 FIT 验收测试的初级读本。

查看英文原文Communicating with Business Using FIT and FitNesse
译者简介: 包亮,一名普通的程序员,喜欢敏捷实践,喜欢"懒惰",减少重复,尽可能让工作变得简单。几年来,一直通过网络汲取知识,也希望通过网络将知识与人分享 。志愿参与 InfoQ 中文站内容建设,请邮件至china-editorial@infoq.com