4

我们目前正在使用 Fitness 进行子系统测试。我们在使用该工具时遇到了很多问题,很少提及

  1. 编写 Fixture 的开发时间比编写实际代码要多
  2. 关于 dll 签入的问题,以便 Qa 可以对其进行测试
  3. 为使用 NHibernate 的项目运行 Fitnesse 的问题
  4. 有限的在线帮助

我们正计划使用其他一些工具来进行测试我们知道的几个选项是

  1. SOAP 用户界面
  2. 说故事的人

我不确定我们是否会在使用这些工具时遇到类似的问题如果有人有使用这些工具的经验并可以指导我们,那就太好了

在我们的项目中,我们采用了 TDD,因此我们有 Nuits 用于单元测试。如果有人知道可以扩展 nunit 以进行子系统测试的工具/想法,那就太好了。

4

4 回答 4

3

组件测试工具都是关于调用函数的。您的测试导致在“夹具”中调用函数,然后调用 SUT。任何基于这个前提的工具都会遇到你上面提到的问题。

但是,这些问题中的大多数都是可以解决的。例如,您不应该编写大量的固定装置。如果你是,那是有问题的。其次,您的设备应该只是在您的应用程序中调用 API 的接线代码。如果您的固定装置正在做重要的工作,那么就有问题了。

在大多数 FitNesse 环境中,固定装置的数量相当少。比如fitnesse本身就有两百多个验收测试,但是fixture的数量在十几个左右,而且都比较简单。

在 Fitnesse@yahoogroups.com 网站上获得帮助。那里的人通常对问题非常敏感。

于 2009-10-09T21:18:25.450 回答
1

我们采用了基于 Fitnesse 但实际上无代码的方法,使用 GenericFixture(谷歌让 Anubhava 找到他的 wordpress 网站)用于 Fitnesse。这使我们能够做的是使用对业务方面(而不是技术方面)友好的语言来创建“可执行的测试叙述”。这种语言在通用夹具中非常容易定义,实际上无需编码,称为 DSL(领域特定语言)。因此,我们可以使用医学术语或什至使用英语以外的其他语言来编写我们的测试叙述。基本上我们得到的是将我们的用例转化为可执行的叙述。我们开始在一个大型项目中使用它(15 人,为期 2 年),并且(到目前为止)似乎有一个美好的未来。它很容易允许测试驱动开发或开发后的测试创建(传统方法)。它是基于 wiki (Fitnesse) 的,它的版本控制和重构功能到目前为止已被证明是足够的。如果有人感兴趣,我可以提供更多信息。

此致,

亚里士多德。

于 2009-10-27T11:44:25.467 回答
1

如果您可以使用文本与您的软件进行交流,那么我在过去使用expect滚动我自己的框架的项目中取得了成功。

我制作的框架使用简单的 xUnit 样式标记将测试存储为 XML 文件。然后使用样式表将 xml 文件转换为可执行测试。我最终将测试转换为 Tcl/Expect,但您可以将它们转换为任何东西。事实上,如果您愿意,您可以根据需要将它们转换成多种语言。

当他们询问为什么我会选择 Tcl 而不是一些更现代的语言时,有几个人好心地提醒我(就像你提醒你可怜的溺爱的祖父关于他下巴上的口水一样)我们正处于 21世纪。事实证明,出于这种测试的目的,我还没有找到更好的选择。Tcl 语言仍然在这个领域发挥作用。相信我,我没有一天醒来对自己说“我自己,我需要一个用每个人都会讨厌的脚本语言实现的测试框架!”

信不信由你,我真的在寻找一种工具,任何工具,它具有以下特点:

  • 跨平台。这是没有商量余地的。我们做了很多跨平台开发,我们已经使用了太多不支持跨平台开发的工具。
  • 简单的语法。说出你对 Tcl 的要求,但语法非常规则。我知道一些本机代码甚至可能会渗入 XML 文件(最初它只是 Tcl,没有 XML),我希望非程序员可以理解语法。这种简单性是 Tcl 的核心优势。事实证明,它也使转换 XML 变得更加容易。
  • 自由的。我最喜欢的价格;-)
  • 将测试编写为简单的 xml 文件允许非程序员编写客户接受级别测试 - 无需编程。
  • 轻松扩展。

我没有打算回家把它发展到我有的程度。最初,我查看了已建立的测试框架,例如DejaGnuandroid。大多数情况下,它们的功能太多了。它们的功能如此之多,以至于我认为如果没有大量的前期培训,项目将不会很容易开始使用。看着DejaGnu,让我对 Tcl 产生了兴趣,在简单地看了一下tcltest 之后,我几乎放弃了。DejaGnu 和 tcltest 都假设您是高级 Tcl 脚本编写者,我认为我公司的任何人都不会是。此外,我希望测试框架(如果可能的话)支持 xUnit 类型的测试框架,而这些工具都没有。

最终我找到了TclTkUnit,这是一个基于 Tcl 的测试框架,它是按照 xUnit 线设计的。意识到我可以在 Expect 中而不是 tclsh 中运行 TclTkUnit 并获得我需要的一切,这只是一个短暂的逻辑飞跃。

随着它最终被更多地使用,我添加了另一个样式表以在 Web 浏览器中很好地呈现 xml 文件。测试框架生成了它自己的文档。

在另一个项目中,我们需要一个非常基本的 sim / stim 环境来模拟一个人在我们没有的硬件上投掷开关和按下按钮。破解测试框架以充当模拟器只需要几个小时。创建框架需要一些工作,但我们认为从长远来看它确实带来了好处。我真的相信,创建自己的工具会产生这些不可预见的后果,这就是为什么敏捷社区和 XP 中的人们一直如此强烈支持的原因。

于 2009-09-09T20:58:56.933 回答
0

我们也使用像 NUnit 这样的单元测试框架来驱动我们的子系统测试——测试并不关心它们是如何运行的。不过,它没有fitnesse 的基于文档的方法。

于 2009-09-09T21:17:12.493 回答