俺の雑記帳

My random memorandumです。(つまり、個人的な備忘録であり、その点ご容赦を。)

結合テストとシステムテスト

結論から言えば、
この二つの違いを理解した上で、俺は、「統合テスト」(=結合テスト)という語をよく使いたい場面が多くなりそう。


itpgsepm-note.com

これ↑によると、

  • 結合テスト = 連結テスト = 統合テスト = ソフトウェア適格性確認テスト
  • システムテスト = 総合テスト = システム適格性確認テスト

また、 単体テストをパスしてきた機能をすべて結合して、利用者が使用する機能として問題がないかを検証するものが結合テスト
(オンライン機能もバッチ機能もすべて対象。外部(他システム)とのインターフェースがあれば、そのテストも行う。
 機能要件の品質はここで確定させる。)

一方、システムテストは、機能要件の細かい検証の比重は下がり、 非機能要件も検証する。
また、業務運用を想定した検証が中心となる。
 具体的には、本番時と同等のデータを投入して、各機能のレスポンスを計測する、夜間バッチの処理時間を計る、自動運転(バックアップ運用など)を行うなど、実運用を想定した検証を行っていく。


pm-rasinban.com

対照的に、これ↑によると、
単体テストの粒度の機能を、二つ以上つなげてテストするものは、なんでも結合テスト
という感じ。
「連携テスト」という語感がピッタリ。


したがって、
俺が表現したいことが多いのは、「統合テスト」という語感がピッタリ。(特に、"総合テスト"と呼ぶか"結合テスト"と呼ぶか迷う場合は、中間的な語感の"統合テスト"がぴったりという事だろう。)
また、
単に「繋げてテストしたい」、という場合は、
単体プログラム間のテストなら「連結テスト」 (上記二つ目の記事で言う"内部結合テスト"に近い語感) 、
データーインターフェース等の検証に重きがあるなら「連携テスト」 (二つ目の記事で言う"外部結合テスト"に近い語感) 、
と呼びたい。

IPAとかが定義するような内容をみなが理解している前提で"結合テスト"や"システムテスト/総合テスト"という語を無条件で使いたいが、いままでの経験上、それができる粒ぞろいの人員を望むのは難しかった。
または、本来なら、プロジェクトごとに"結合テスト"が何であるか、"システムテスト/総合テスト"が何であるか、定義しておくべきだろうが、それもいちいちやるのは現実的でないし、定義しても,皆,語感などに引きずられ定義を見ない…
 したがって、語感重視で、「統合テスト」("総合テスト"ではない)、「連結テスト」,「連携テスト」を(俺の中では意識して),使い分けたい。
 また、その場合でも、それが「結合テスト」であるか「システムテスト」であるか、またはどちらに分類すべきでもないものか、自分の中では意識していたい。)