多くの人が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");
}
ユニットテストの観点から見たテスト対象システム(SUT)は、モックやスタブではないテスト内のすべてのアクター(つまり、1つ以上のクラス)を表します。あなたの例では、それがコントローラーになります。
おそらく、「テスト中のシステム」、つまり、相互作用する可能性がある他のシステムとは対照的に、テストされているシステムですが、明示的にテストされていません(他のシステムの責任であるため)。
私はeiherという用語を聞いたことがありませんが、簡単な検索で
テスト対象システム(SUT)は、正常に動作するかテストされているシステムを指します。この用語は、主にソフトウェアテストで使用されます。
ソフトウェアシステムの特殊なケースは、テストされたときにテスト対象アプリケーションと呼ばれるアプリケーションです。
システムテストはテストサイクルの統合テストの後継者であるため、SUTという用語はソフトウェアの成熟度の段階も意味します。
良いオレから wikipedia 。
この用語はどこから来たのですか?
DUT(被試験デバイス)とUUT(被試験ユニット)は、テストエンジニア(ソフトウェア以外のテストエンジニア)の間で非常に一般的な略語です。ここで、SUTという用語(テスト中のシステム)を使用します。
およびCUT(テスト中のコード)のソースである必要があります。
関連:
2008 MSDNブログの投稿 Naming SUT Test Variables 。
テスト中のシステム [〜#〜] sut [〜#〜] 。
単体テストの例で、本当にSUTについて話したい場合は、おそらくUsersAction
です。ただし、単体テストについて話すときにSUTを使用する人に出会ったことはありません。私には、これは統合/システム/パフォーマンステストなどに適合するようなものに聞こえます。
たとえば、パフォーマンステストを行います。ここでは、SUTがHW/SWシステム全体であるか、特定のパフォーマンステストで何をテストしているかに応じて、それらの1つにすぎない場合があります。