【问题标题】:What is SUT and where did it come from?什么是 SUT,它来自哪里?
【发布时间】:2011-11-11 09:26:24
【问题描述】:

我看到很多人在谈论 SUT 这个词,但不明白他们为什么使用这个词。

SUT 是您要测试的?

这个词的来源和含义是什么?

例如在这个测试中,我的 SUT 是什么?

[TestMethod]
public void UsersAction_should_return_IndexAction()
{
    const long id = 1;

    UsersViewModel viewModel = new UsersViewModel()
    {
        SelectedUsers = new long[] { 1, 2, 3, 4 }
    };

    ActionResult result = _controller.Users(id, viewModel);

    result.AssertActionRedirect().ToAction("Index");
}

【问题讨论】:

    标签: c# .net unit-testing terminology naming


    【解决方案1】:

    从单元测试的角度来看,被测系统 (SUT) 代表了测试中的所有参与者(即一个或多个类),它们不是模拟或存根。在您的示例中,这将是控制器。

    【讨论】:

    • 当然,模拟和存根不是被测试系统的一部分。这并不是 SUT 的真正定义,也没有解释为什么该术语甚至存在。正确的定义由 xUnit 测试模式提供,您可以找到 here
    【解决方案2】:

    它很可能意味着“正在测试的系统”,即正在测试的系统,而不是它可能与之交互但未明确测试的其他系统(因为它们是其他人的责任)。

    【讨论】:

      【解决方案3】:

      这个词是怎么来的?

      DUT(被测设备)和 UUT(被测单元)是测试工程师(非软件测试工程师)中非常常见的缩写。这就是术语 SUT(被测系统)
      和 CUT(被测代码)应该来自。

      相关:
      2008 年 MSDN 博文Naming SUT Test Variables

      【讨论】:

        【解决方案4】:

        我也从未听说过这个词,但快速搜索给出了

        被测系统 (SUT) 是指正在测试正确运行的系统。 [...] 该术语主要用于软件测试。

        软件系统的一个特例是一个应用程序,当它被测试时,它被称为被测应用程序。

        术语 SUT 也可以指软件的成熟阶段,因为系统测试是测试周期中集成测试的继任者。

        来自好老的Wikipedia

        【讨论】:

          【解决方案5】:

          被测系统SUT

          在您的单元测试示例中,如果您真的想谈论 SUT,它可能是 UsersAction。但是,在谈论单元测试时,我没有遇到任何人使用 SUT。对我来说,这听起来更像是适合集成/系统/性能测试等的东西。

          例如,进行性能测试。在这里,您可能会说 SUT 是整个 HW/SW 系统,或者它可能只是其中之一,具体取决于您在特定性能测试中测试的内容。

          【讨论】:

            【解决方案6】:

            SUT和Te​​st System的区别很好。
            SUT 可以成为测试系统的一部分,如下图所示:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-05-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-06-16
              • 2017-02-27
              • 2012-06-26
              相关资源
              最近更新 更多