2011-09-06 2147 views
15

我看到很多人在谈论术语SUT,但不明白他们为什么使用这个术语。什么是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"); 
} 

回答

24

单元测试视角下的被测系统(SUT)代表测试中不是嘲笑或存根的所有参与者(即一个或多个类)。在你的例子中,将是控制器。

+0

当然,嘲笑和存根并不是被测系统的一部分。这不是SUT的定义,也不能解释为什么这个术语甚至存在。正确的定义由xUnit Test Patterns提供,你可以在这里找到(http://xunitpatterns.com/SUT.html)。 –

6

我从来没有听说过这个词eiher,但在测试中的快速搜索了

系统(SUT)指的是正在为 正确操作测试的系统。该术语主要用于软件测试。

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

术语SUT意味着软件的成熟阶段,因为系统测试是测试周期中集成测试的后继者。

从好ole wikipedia

3

被测系统SUT

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

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

2

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

+0

这是正确的答案。 –

1

这个词来自哪里?

DUT(待测设备)和UUT(被测设备)是测试工程师(非软件测试工程师)中非常常见的缩写。这就是SUT应该来自的地方。

相关: 2008 MSDN博文Naming SUT Test Variables