結合テスト
「結合テスト」は、開発したプログラムと連携して動く他プログラムとの連携状況を確認するテストです。一般的に、プログラムは、単独で業務機能を発揮するものではありません。
「あるプログラムが生成した結果を別のプログラムが受け継いで次の結果を生成する」「あるプログラムが、連携する別のプログラムを起動させる」というように、インターフェース機能を利用した連携によって業務機能が成り立ちます。この連携を確認することを結合テストといいます。
結合テストでは、主に「インターフェースが正常に機能するか」を確認しますが、他にも「業務の流れと合致した動きになっているか」「インターフェース部分に負荷がかかりすぎずにスムーズに連携できているか」についても確認することになります。
インターフェースの方式には、APIを利用したものや、FTP、SOAを利用したもの等、様々あり、連携する相手が同一システム内の場合(内部インターフェース)もあれば、別システムの場合(外部インターフェース)もあります。そして、その複雑性が結合テストの難易度をあげる原因にもなっています。なお、パッケージシステム導入でのアドオン開発の場合もインターフェースを利用していますので、結合テストが必要になります。
また、結合テストでの結果は最終的にシステム全体の品質に及ぼす影響が大きいとも言われます。
その理由は先に述べたようなインターフェースの複雑さや種類の多さに加えて、以下のポイントが挙げられます。
・(とくに外部インターフェースの場合)システム開発やパッケージシステムを提供する会社が複数になることが多く、コミュニケーション不足に陥りやすい
・テスト環境の構築が難しく、予想外のコストが発生する
・テスト時において発注側企業の関与が少なく、既存システムについての情報が不足しやすい
上記のうち、システム開発会社、パッケージシステム提供会社間のコミュニケーションについては、外部インターフェース一覧表、外部システム関連図、項目説明書、処理説明書等をもとにして、意思疎通を図ることが必要です。
そして、発注側企業としては。結合テストの前にシステム開発会社が作成する「結合テスト仕様書」と、テスト後に提供される「結合テスト報告書」に対するレビューを行うことで、結合テストへの関与度を高める必要があります。
仮に、結合テスト段階で単体プログラムに関するバグが発生した場合は、前工程のテストが不十分であるため、その発生原因を究明し、他にも同様のバグが発生する懸念がある部分については重点的に確認する必要があります。
また、既存のデータベースやプログラムから独立させたテスト環境の構築には時間とコストがかかりますが、稼働している本番環境と開発したプログラムとをテストで結合させるというようなミスがないように注意しなければなりません。
なお、現在では、クラウドサービス環境を利用したシステムが利用されることも多くなっていますので、テスト環境をどう設定するかについては、システム開発の初期の段階で検討しておくべきテーマになっています。
結合テストも、単体テスト同様にシステム開発会社が中心となって行われます。ただし、発注側企業としても、任せきりで良いわけではありません。この後に続く「総合テスト」や「受入テスト」をスムーズに進めるためにも、どういうテストが行われて、どういう結果になっているかは知る必要があります。
あわせてこの用語と記事をチェック
・パッケージ導入時の実装作業とその中でも発注者側が実施すべきこととは