在我对它们的有限经验中,可执行要求(即将所有要求指定为破坏的自动化测试)已被证明是非常成功的。我参与了一个项目,其中我们非常重视创建高级自动化测试,这些测试运用了给定用例/用户故事的所有功能。在我们开始这种练习之后,对我来说真的很容易开发。在编写测试后,实现功能变得非常容易,我们能够对系统进行重大的体系结构更改,并且全世界都相信所有内容仍然像昨天一样工作。
我们遇到的最大问题是管理这些类型测试的工具不是很好。我们使用Fitnesse相当多,因此我现在讨厌Fit框架。
我想知道1)如果有其他人有使用这种类型的测试驱动的需求定义的经验,2)你们用什么工具来促进这一点。
答案 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),并且在“企业级”工具中有许多你需要的东西,几乎不需要额外的工作:
GreenPepper的重大缺点是:配置相当<强>难,文档差(虽然他们似乎正在努力,他们在论坛上的回答非常快)还有不自由,你必须支付汇款和GreenPepper,这可能会相当多。
Fitnesse在我看来是非常基本的,非常容易设置,它可以工作,但就是这样,你可以使用开源社区开发的一些fitnesse插件,甚至是一些Fit插件,比如Eclipse插件(从fitnesse测试文件构建夹具的骨架,只要它在.fit扩展中,非常有用)。集成并不理想,认证和访问权限管理很差,但它是免费,如果你需要什么,你可以这样做,因为它是开源的。
答案 3 :(得分:1)
我的经验仅限于个人项目,并且发现了与您提到的相同的优势。我推荐http://metacpan.org/pod/Test::Simple::Tutorial,这是我尝试基于测试的开发的灵感。 perl测试模块似乎非常有用和灵活,但我没有什么可以比较它们。
我也相信测试对于项目的维护期至关重要。如果你有好的测试开始,它会节省大量的时间和错误。我希望我在我当前的项目上投入更多的工作。
答案 4 :(得分:1)
我发现使用contracts是一种很好的方法。元编程合同通常比您描述的集成测试类型更低,但两者肯定不是互斥的。我发现合同有助于保持文档,实现和测试的全部同步 - 这是TDD的一个主要问题(并非在非TDD中不是问题)。
答案 5 :(得分:1)
我尝试过Fitnesse,它非常糟糕(特别是与SVN集成)。 我们公司开发了类似的开源工具和适合引擎:FitPro
我使用的另一个出色的工具是Concordion。它有唯一的缺点 - html格式的要求