広範囲スタックテスト

2013年4月22日

広範囲スタックテストとは、大規模アプリケーションのほとんどの部品を処理するテストです。多くの場合、エンドツーエンドテストフルスタックテストと呼ばれます。これは、システムの明確に定義された部分のみを処理するコンポーネントテストとは対照的です。

広範囲スタックテストとコンポーネントテストの違いは、明確な境界線というよりは連続体です。スタックの完全性から欠落する可能性のある分野の1つは、テストがアプリケーションを操作する方法です。広範囲スタックテストは、SeleniumやSahiなどのツールを使用してWebアプリケーションをテストする場合など、アプリケーションをUIから操作することがよくあります。ただし、皮下テストは、ソフトウェアの残りのほとんどが引き続き処理される場合、広範囲スタックテストになることもあります。範囲をさらに限定するには、アプリケーションをサービスインターフェースから介して処理するテストもサーバーの広範囲スタックテストと見なすことができます。

これらのテストがスタック全体を完全にカバーしないもう1つの分野は、リモートシステムとの接続にあります。筆者を含め多くの人は、リモートシステムを呼び出すテストが過度に遅く脆いと考えています。これらのリモートシステムには通常、テストダミーを使用し、契約テストでダミーを確認する方がよいでしょう。

広範囲スタックテストは、すべての部品を接続したアプリケーションを処理するという利点があり、コンポーネントテストでは検出できないように、コンポーネント間の相互作用のバグを見つけることができます。ただし、広範囲スタックテストはコンポーネントテストと比較して、保守が困難で、実行が低速になる傾向があります。その結果、テストピラミッドでは広範囲スタックテストの使用を推奨しています。