ノートを持っている男性

今回は
「プロが教える超ざっくりシステム開発」
の結合テスト編となります。
結合テストの前工程をまだご覧になっていない方はこちらをご覧ください。

結合テストの「結合」って?

「結合」をWikipediaで調べると
「2つ以上のものが結び合わさること」
とあります。
ここでの「もの」とはシステムでいう「機能」や「対抗するシステム」などです。
2つ以上の機能(システム)を結び合わせてテストする工程となります。

下図のようなイメージですね。

単体テストでは

・一覧画面
・編集画面

など1つの機能毎にテストしていましたが、結合テストでは

・一覧画面でデータを選択したあとに、選択したデータの編集画面が表示されること
・新規登録画面で登録が完了した後、一覧画面が表示されて登録したデータが一覧に表示されていること

などをテストします。
単体テストでは不具合に気づけなかったけど、機能を結び合わすことで発見できる不具合は結構あるものです。

このように各工程で少しづつ観点を変えながら、ソフトウェアの品質を作りこんでいきます。

結合テストのプロセスは単体テストと違う?

結合テストのプロセスは単体テストとほぼ同じです。

・テスト項目の作成
・テスト項目のレビュー
・テスト実施
・不具合の修正⇒再テスト

結合テストを実施するための実行環境(インフラ)は事前に構築する必要がありますが、テストが始まってしまえばテストの観点や対象範囲が異なるだけでプロセスは同じです。

また、別の外部システムとデータを連携するなどの場合も、結合テスト工程で実施することがあります。
「外部インターフェーステスト」工程を設けるなどもありケースバイケースです。
この場合でも機能と機能の結び合わせるではなく、システムとシステムをつなぎ合わせるという意味でこちらも大きな違いはありません。

発注者がやることはあるの?

基本的にはお客様にご協力いただくことはありません。
が、我々はこの工程でお客様に実際の業務データの借用をお願いすることが多いです。
実際の業務データを使ってテストする方が早い段階(工程)で不具合を発見しやすいんですよね。
「こんなデータあったんだ!?」
など、想定外のデータがあったりもします。

難易度が非常に高い業務がある場合は、我々が作成したテスト(業務)シナリオの過不足等をご確認いただくこともありますが、それは次の工程でも構いません。

さいごに

ここまで来くれば、機能としてある程度品質が担保されたソフトウェアができあがっています。
ただ、まだまだ完成とは言えません。
この後の工程では、

・実際にお客様が利用される環境(ネットワーク、ハードウェア等、サーバ実機等)で正常に動作するのか
  (ここ数年はクラウドを利用した開発が多くを占めるため、クラウド上に構築したネットワーク、サーバ上で確認します)
・システムの運用・保守ができるのか
・セキュリティ、性能など機能以外の品質は担保できているのか(非機能テストと呼びます)

など実際の業務やシステム運用などを想定したテストを実施していくことになります。

次回はこれらを確認する「総合テスト」についてお話したいと思います。
お付き合いいただきありがとうございました。