【问题标题】:Can someone help explain Fit Testing to me? [closed]有人可以帮我解释一下适合测试吗? [关闭]
【发布时间】:2009-01-12 17:46:27
【问题描述】:

所以这件事在我的脑海里已经有一段时间了。我已经看到了它的提及,我已经阅读了fitness web page,但我仍然不太了解它。看起来 Fitnesse 是另一个测试框架,例如 NUnit 或 MbUnit 或任何其他框架,因为您定义了想要查看的输入和输出,但它似乎旨在测试整个应用程序而不是单元。

如果是这样,它是如何运行的?您是否必须使用钩子设计您的应用程序以进行适合性测试?它实际上属于测试范围的哪个位置?谁能给我一个很好的例子,说明可以在哪里以及如何使用拟合测试以及有哪些优点/缺点?

【问题讨论】:

    标签: testing agile fitnesse


    【解决方案1】:

    NUnit/MbUnit 和 FitNesse 的区别在于 NUnit/MbUnit 用于单元测试,而 FitNesse 用于验收测试。

    单元测试测试单个小代码单元,例如方法,以确保它按照程序员的预期执行。例如,您可以使用单元测试来确保阶乘计算方法为一组数字返回正确的结果,包括一些边缘情况。

    验收测试旨在测试是否满足高级设计要求。例如,如果您正在编写一个 Pac-Man 克隆,并且其中一个要求是“当前一个级别的最后一个点被吃掉时,一个新级别开始”,验收测试将测试该要求是否作为一个整体由代码满足——而不是使用点、检查结束条件和加载新级别的特定代码片段(尽管该代码将在运行验收测试的过程中执行)。验收测试的编写通常不考虑需求的具体实现。

    许多 QA 部门手动执行一长串验收测试,这可能非常耗时。 Fit 和 FitNesse 是帮助自动化验收测试的工具,可以节省大量时间。

    Ward Cunningham's wiki 有很多关于验收测试的好信息。

    【讨论】:

      【解决方案2】:

      我合作的最后一家公司使用 FitNesse 并取得了一定程度的成功。它的使用方式与 NUnit 不同,后者的测试程度非常精细。 FitNesse 更多地用于“验收测试”,涉及粒度较小的“大规模”测试。为了比较两者,假设我们正在编写一个用于在银行处理支票的应用程序:

      • 如果我们使用 NUnit 编写单元测试,我们将测试 Check 对象、Transaction 对象、TransactionProcessor 工厂的每个单独方法,测试数据访问层的每个方法等。您的测试是非常接近源代码。

      • 如果我们正在编写验收测试,我们可能会设置几天的交易,提示应用程序处理交易,并确保代码生成正确的发票报表和报告。您的水平远高于单元测试,通常处于可以同时测试所有应用程序业务规则的有利位置。

      单元测试告诉程序员代码是否包含任何缺陷,验收测试告诉业务分析师应用程序符合用户期望。

      FitNesse 测试用例旨在由没有技术知识的人编写。您仍然需要程序员编写 DLL 以向 FitNesse 公开应用程序的内部结构,但除此之外,用例应该由对源代码一无所知的非技术人员编写(即业务分析师和 QA) .

      我的公司使用 FitNesse 来测试我们的一个“核心”应用程序,该应用程序恰好是在 20 年的时间里使用一种死掉的类似 COBOL 的语言编写的。核心应用没有单元测试,用原始语言创建单元测试框架几乎是不可能的。幸运的是,该语言具有 COM 绑定,它向 .NET 和 Java 公开了一些公共方法,使我们能够为该应用程序编写自动化测试用例,这是 20 年来的第一次。它不漂亮,但商界人士喜欢它。

      【讨论】:

      • 那么...FitNesse 能否像 Selenium 或 WatiN/WatiR 那样自动化应用程序?
      • 没有。但是,根据我的经验,自动化 UI 测试框架的质量从差到差不等,我不会推荐它们。
      • 我用过 WatiN,它有一个很好的地方是可以让棕地应用程序被测试,这样你就可以重构而不用害怕破坏功能。不过,我仍然不太了解 FitNesse 的不同之处
      【解决方案3】:

      FitNesse 基本上是一个wiki,它存储了所有的测试用例。最有可能用于验收测试。在测试优先开发中,测试用例应仅在需求收集阶段编写,即,客户也将参与编写测试,这往往会编写有关验收测试的测试......

      因此,如果应用程序满足所有用户要求,则无需进行单独的验收测试。

      缺点是,当需求发生变化时,测试用例也会随之变化,但这当然没什么大不了的。

      另外fitnesse 将适用于中小型项目。在大型项目的情况下,它可能会很笨拙,因为Fitnesse 无法导出 PDF 文件,它只能导出 Excel 或 worddoc 等电子表格。所以它的缺点是不能用于大型项目。

      【讨论】:

        【解决方案4】:

        在我看来:它几乎不依赖于要测试的应用程序的挂钩。如果这不能开发出好的 API,那它几乎是没用的。并且不要尝试将其用于 GUI 测试。

        【讨论】:

          【解决方案5】:

          它可用于运行您的回归测试套件。可用于查看发布后的数据库发布情况。它可用于测试存储过程。可以用来比较不同的环境。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-07-07
            • 1970-01-01
            • 2022-06-14
            • 2011-12-22
            • 1970-01-01
            • 2016-11-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多