2011-09-06 2149 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