13

根据我对它们的有限经验,可执行需求(即将所有需求指定为损坏的自动化测试)已被证明是非常成功的。我曾参与过一个项目,在该项目中,我们非常重视创建高级自动化测试,这些测试可以执行给定用例/用户故事的所有功能。在我们开始这种练习之后,开发变得多么容易,这让我感到非常惊讶。编写测试后,实现功能变得非常容易,我们能够对系统进行重大的架构更改,并对世界充满信心,一切仍然像昨天一样工作。

我们遇到的最大问题是管理这些类型测试的工具不是很好。我们经常使用 Fitnesse,因此我现在讨厌 Fit 框架。

我想知道 1)是否有其他人有使用这种类型的测试驱动的需求定义进行开发的经验,以及 2)你们都使用了哪些工具来促进这一点。

4

6 回答 6

6

我还使用的主要工具是 FitNesse。我已经在几家公司使用它,效果非常好。我们确实有数以千计的测试用例,我们必须非常严格地组织和使用它们。

我尝试了其他一些工具,包括编写我自己的 DSL(特定领域语言)和使用 RSpec 之类的东西。我真的很喜欢 RSpec,但它肯定更像是一种开发工具而不是商业工具。

我知道 Rick Mugridge 一直在开发一个名为 ZiBreve 的工具(http://www.zibreve.com/visit.php?page=index)应该有更强的重构支持。我自己没有使用过它,但我认识 Rick 并且和他谈过几次。我知道在 Agile 2008 上讨论了一些不同的方法来处理一般的 Fitnesse 测试。

除此之外,我还没有看到很多好的工具。甚至像 WinRunner 这样的工具也适用于 QA 类型测试,但对于业务需求的探索性测试,FitNesse 或自定义 DSL 似乎是现在要走的路。

于 2008-09-01T19:31:22.987 回答
2

您可能想看看 Robot Framework ( http://robotframework.org )。它类似于 FIT,但希望更容易集成到不同的测试工具、版本控制和持续集成中。测试数据中不同的抽象级别也使得数据维护变得更加容易,当单独的测试数据编辑器变得更加成熟时,维护变得更加容易。快速入门指南介绍了框架最重要的功能,也可作为可执行演示。

于 2008-10-07T10:23:44.493 回答
2

我不得不为我的工作使用、测试和设置 Fitnesse 和它的竞争对手之一GreenPepper,我能说的是:

GreenPepper 是一个 confluence 插件(confluence 是来自 atlassian 的企业 wiki),并且在“企业”级工具中拥有许多您需要的东西,几乎不需要额外的工作:

  • 更好的用户友好 - 富文本 - wiki 语法(让非技术人员更容易使用)
  • 它与许多开发工具集成得非常好:Eclipse、VB、maven2 和 Nant 插件,我测试最多,非常满意。
  • 用户和访问权限由 confluence 管理,也就是说它很好并且可以使用您喜欢的数据库(这可能是强制性的,具体取决于您的工作地点)
  • 许多其他可能需要也可能不需要的功能:ssl 支持、远程执行(在 unix 上安装 wiki,如果您正在处理 C# 项目,则在 Windows 上执行,或者相反)
  • 看起来好多了:D

GreenPepper 的最大缺点是:配置非常困难,文档很差(尽管他们似乎正在研究它并且他们在论坛上回答得很快)而且它不是免费的,你必须为 confluence 和 GreenPepper 付费,其中可能加起来很多。

Fitnesse 在我看来是非常基础的,很容易设置,它可以工作但仅此而已,你可以使用一些开源社区开发的 Fitnesse 插件,甚至一些 Fit 插件,例如 Eclipse 插件(构建骨架来自fitnesse测试文件的夹具,只要它的扩展名为.fit,非常有用)。集成并不理想,身份验证和访问权限管理很差,但它是免费的,如果你需要什么,你可以去做,因为它是开源的。

于 2009-07-08T13:06:35.027 回答
1

我发现使用合同是一种很好的方法。元编程合同通常比您描述的集成测试类型低,但两者肯定不是相互排斥的。我发现合同有助于保持文档、实现和测试的同步——这是 TDD 的一个主要问题(并不是说它在非 TDD 中不是问题)。

于 2008-08-23T18:05:59.143 回答
1

My experience is limited to personal projects and found much the same advantages you mentioned. I recommend http://metacpan.org/pod/Test::Simple::Tutorial which was my inspiration for trying out testing-based development. The perl testing modules seem pretty useful and flexible, though I have nothing to compare them to.

I also believe tests are vital for the maintenance period of a project. If you have good tests to begin with, it saves a lot of time and mistakes later on. I wish I had put more work into tests on my current project.

于 2008-08-16T07:48:08.013 回答
1

I've tried Fitnesse and its really awful (particularly integration with SVN). And our company develop similar open-source tool with fit engine: FitPro

Another brilliant tool I've used is Concordion. It has the only disadvantage - requrements in html format

于 2008-09-16T15:01:27.217 回答