2011-09-06 12 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)は、モックまたはスタブではないテスト内のすべてのアクター(つまり1つ以上のクラス)を表します。あなたの例では、コントローラになります。

+0

もちろん、モックとスタブはテスト対象のシステムの一部ではありません。これは実際にSUTの定義ではなく、なぜその用語が存在するのかを説明しません。正しい定義はxUnitテストパターンによって提供されます。ここでは[ここ](http://xunitpatterns.com/SUT.html)を見つけることができます。 –

6

私は長期eiherを聞いたことがないが、クイック検索は 正しい操作のためにテストされているシステムを指し、テスト対象のシステム(SUT)を

を与えました。この用語は、主にソフトウェアテストで使用されます。

ソフトウェアシステムの特殊なケースは、 がテストされているときにテスト対象アプリケーションと呼ばれるアプリケーションです。

SUTという用語は、 システムテストがテストサイクルでの統合テストの後継であるため、ソフトウェアの成熟段階も意味します。

良質ole wikipediaから。

3

システムアンダーテストSUT

ユニットテストの例では、実際にSUTについて話したい場合は、おそらくUsersActionです。しかし、私は単体テストについて話すときにSUTを使う人はいません。私にとっては、これは、統合/システム/パフォーマンスのテストやそれに類するものに似ています。

たとえば、パフォーマンステストを行います。ここでは、SUTがHW/SWシステム全体であると言うかもしれません。あるいは、特定のパフォーマンステストで何をテストしているかによって、SUTが1つだけかもしれません。

2

他のシステムと対話することができますが、明示的にテストされていないシステム(テストされているシステム)を意味する可能性があります。

+0

これは正解です。 –

1

この用語はどこから由来していますか?

DUT(テスト中のデバイス)とUUT(テスト中のユニット)は、テストエンジニア(非ソフトウェアテストエンジニア)の間では非常に一般的な略語です。 SUTという用語が出てきたはずです。

関連: 2008 MSDNブログ投稿Naming SUT Test Variables

関連する問題