任何使用可执行要求的人?

时间:2008-08-15 22:02:16

标签: testing process automation

在我对它们的有限经验中,可执行要求(即将所有要求指定为破坏的自动化测试)已被证明是非常成功的。我参与了一个项目,其中我们非常重视创建高级自动化测试,这些测试运用了给定用例/用户故事的所有功能。在我们开始这种练习之后,对我来说真的很容易开发。在编写测试后,实现功能变得非常容易,我们能够对系统进行重大的体系结构更改,并且全世界都相信所有内容仍然像昨天一样工作。

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

我想知道1)如果有其他人有使用这种类型的测试驱动的需求定义的经验,2)你们用什么工具来促进这一点。

6 个答案:

答案 0 :(得分:6)

我使用的主要工具是FitNesse。我在几家公司使用过它,效果非常好。我们确实有成千上万的测试用例,我们必须在组织和使用它们方面非常自律。

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

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

除此之外,我还没有看到很多好工具。即使像WinRunner这样的工具也适用于QA类型测试,但是对于业务的需求进行探索性测试,FitNesse或定制DSL似乎是现在的方法。

答案 1 :(得分:2)

您可能需要查看Robot Framework(http://robotframework.org)。它与FIT类似,但希望更容易集成到不同的测试工具,版本控制和持续集成。测试数据中的不同抽象级别也使维护数据变得更容易,并且当单独的test data editor变得更加成熟时,维护变得更加容易。 quick start guide引入了框架最重要的功能,并且还可以作为可执行演示。

答案 2 :(得分:2)

我必须使用,测试并设置fitnesse和其中一个竞争对手,GreenPepper 用于我的工作,我可以说是:

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

  • 更好的用户友好 - 丰富的文本维基 语法(使其更容易使用 非技术人员)
  • 与许多人融为一体 开发工具:Eclipse,VB, maven2和Nant插件,我测试最多 并且非常高兴。
  • 用户和访问权限由管理 汇合,也就是说它很好 并使用你的数据库 likin(可能是强制性的 取决于你工作的地方)
  • 许多其他功能可能 或者可能不需要:ssl支持,远程执行(在unix上安装wiki,如果你在C#项目上执行,在Windows上执行,或者反向)
  • 看起来更好:D

GreenPepper的重大缺点是:配置相当<强>难,文档(虽然他们似乎正在努力,他们在论坛上的回答非常快)还有不自由,你必须支付汇款和GreenPepper,这可能会相当多。

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

答案 3 :(得分:1)

我尝试过Fitnesse,它非常糟糕(特别是与SVN集成)。 我们公司开发了类似的开源工具和适合引擎:FitPro

我使用的另一个出色的工具是Concordion。它有唯一的缺点 - html格式的要求

答案 4 :(得分:1)

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

答案 5 :(得分:1)

我的经验仅限于个人项目,并且发现了与您提到的相同的优势。我推荐http://metacpan.org/pod/Test::Simple::Tutorial,这是我尝试基于测试的开发的灵感。 perl测试模块似乎非常有用和灵活,但我没有什么可以比较它们。

我也相信测试对于项目的维护期至关重要。如果你有好的测试开始,它会节省大量的时间和错误。我希望我在我当前的项目上投入更多的工作。