
結合テストとは?結合テストの重要性と実施時の注意点について徹底解説
「結合テスト」は、開発したプログラムと連携して動く他プログラムとの連携状況を確認するテストです。
一般的に、プログラムは、単独で業務機能を発揮するものではありません。
「あるプログラムが生成した結果を別のプログラムが受け継いで次の結果を生成する」「あるプログラムが、連携する別のプログラムを起動させる」というように、インターフェース機能を利用した連携によって業務機能が成り立ちます。
この連携を確認することを結合テストといいます。
結合テストでは、主に「インターフェースが正常に機能するか」を確認しますが、他にも「業務の流れと合致した動きになっているか」「インターフェース部分に負荷がかかりすぎずにスムーズに連携できているか」についても確認することになります。
インターフェースの方式には、APIを利用したものや、FTP、SOAを利用したもの等、様々あり、連携する相手が同一システム内の場合(内部インターフェース)もあれば、別システムの場合(外部インターフェース)もあります。
そして、その複雑性が結合テストの難易度をあげる原因にもなっています。
なお、パッケージシステム導入でのアドオン開発の場合もインターフェースを利用していますので、結合テストが必要になります。
また、結合テストでの結果は最終的にシステム全体の品質に及ぼす影響が大きいとも言われます。
その理由は先に述べたようなインターフェースの複雑さや種類の多さに加えて、以下のポイントが挙げられます。
・(とくに外部インターフェースの場合)システム開発やパッケージシステムを提供する会社が複数になることが多く、コミュニケーション不足に陥りやすい
・テスト環境の構築が難しく、予想外のコストが発生する
・テスト時において発注側企業の関与が少なく、既存システムについての情報が不足しやすい
上記のうち、システム開発会社、パッケージシステム提供会社間のコミュニケーションについては、外部インターフェース一覧表、外部システム関連図、項目説明書、処理説明書等をもとにして、意思疎通を図ることが必要です。
そして、発注側企業としては。結合テストの前にシステム開発会社が作成する「結合テスト仕様書」と、テスト後に提供される「結合テスト報告書」に対するレビューを行うことで、結合テストへの関与度を高める必要があります。
仮に、結合テスト段階で単体プログラムに関するバグが発生した場合は、前工程のテストが不十分であるため、その発生原因を究明し、他にも同様のバグが発生する懸念がある部分については重点的に確認する必要があります。
また、既存のデータベースやプログラムから独立させたテスト環境の構築には時間とコストがかかりますが、稼働している本番環境と開発したプログラムとをテストで結合させるというようなミスがないように注意しなければなりません。
なお、現在では、クラウドサービス環境を利用したシステムが利用されることも多くなっていますので、テスト環境をどう設定するかについては、システム開発の初期の段階で検討しておくべきテーマになっています。
結合テストも、単体テスト同様にシステム開発会社が中心となって行われます。ただし、発注側企業としても、任せきりで良いわけではありません。
この後に続く「総合テスト」や「受入テスト」をスムーズに進めるためにも、どういうテストが行われて、どういう結果になっているかは知る必要があります。
目次
よくある質問
発注者が結合テストの計画段階で確認すべき事項は何か?
発注者は結合テストの計画段階で、テスト範囲の明確化、リスクの特定、役割分担の確認などを重点的にチェックする必要があります。
これにより、テストの効果的な実施と品質確保が可能となります。
計画段階で確認すべき主な事項
1. テスト範囲と対象の明確化
モジュール間の連携部分や重要なインターフェースが網羅されているかを確認します。リスクの高い箇所に重点を置くことが望ましいです。
2. テスト項目・ケースの妥当性
発注者の業務要件を反映した具体的なテストケースが策定されているか、正常系だけでなく異常系も含まれているかをチェックします。
3. リスク分析と対策計画
予想されるトラブルや障害リスクを洗い出し、対応策や影響軽減策が計画に盛り込まれているかを確認します。
4. 役割分担と責任範囲の明確化
発注者とベンダー間でテスト実施の役割や責任範囲が明確になっているか、コミュニケーション体制が整っているかを確認します。
5. スケジュールの妥当性
テスト期間が開発全体のスケジュールと整合しており、十分な検証時間が確保されているかを確認します。
6. テスト環境の準備状況
実際の運用環境に近いテスト環境が用意されているか、必要なデータやツールが揃っているかをチェックします。
計画段階でこれらの事項を発注者自らが確認・管理することで、結合テストの精度向上とプロジェクトのリスク低減に寄与します。
結合テストの進捗や結果を発注者が適切に把握・管理する方法は?
発注者が結合テストの進捗や結果を適切に把握・管理するためには、定期的な報告の受領と評価基準の共有、関係者間の密なコミュニケーションが不可欠です。
把握・管理のための具体的手法
1. 定期的な進捗報告の受領
ベンダーからテスト実施状況や問題点、完了見込みなどを定期的に報告してもらい、遅延やリスクを早期に把握します。
2. 明確な評価基準と合格条件の設定
テスト項目ごとの合否基準や品質目標を事前に共有し、結果の妥当性を客観的に評価できる体制を整えます。
3. 問題管理(障害管理)の仕組み導入
不具合の登録・対応状況を共有し、修正進捗を追跡することで問題の解決を促進します。
4. 関係者間の定期的なレビュー会議開催
発注者、ベンダー、利用部門が参加するレビュー会議を定期的に開催し、進捗・品質・課題の共有と意思決定を行います。
5. ドキュメントの整備と管理
テスト計画書、実施報告書、不具合報告書などの文書を体系的に管理し、透明性を確保します。
これらの管理手法を組み合わせることで、発注者は結合テストの現状を正確に把握し、適切な対応や意思決定を行うことが可能となります。
結合テストにおける発注者とベンダーの役割分担はどのようにすべきか?
結合テストにおける役割分担は、発注者が品質要件の確認と管理を主導し、ベンダーが具体的なテスト設計・実施・報告を担う形で明確に区分することが望ましいです。
役割分担のポイント
1. 発注者の主な役割
・テスト計画の承認および品質基準の設定
・テスト対象や範囲の決定、重要シナリオの指示
・進捗管理や結果のレビュー、問題発生時の対応指示
・利用部門との調整や承認取得
2. ベンダーの主な役割
・結合テストの詳細な設計・テストケース作成
・テスト環境の準備およびテスト実施
・テスト結果の報告と不具合の分析・修正提案
・発注者からのフィードバックに基づく改善対応
3. 共同で取り組む事項
・テスト進捗の定期共有と課題解決の協議
・リスク評価と対応策の策定
・テスト計画の更新や変更管理
役割と責任を明確にし、双方が連携して業務を遂行することで、結合テストの効果と効率を最大化し、プロジェクト品質の確保につなげることが可能です。
結合テストの結果を受けた発注者の評価基準や意思決定ポイントは?
発注者は結合テストの結果を基に、テスト合格率、不具合の重大度と対応状況、業務影響の有無を総合的に評価し、納品受入れや次工程への進行可否を判断します。
評価基準と意思決定の主なポイント
1. テスト合格率およびカバレッジの確認
全テストケースに対する合格率が設定基準を満たしているか、重要機能が網羅的に検証されているかを確認します。
2. 不具合の重大度と対応状況
発見された不具合の影響度(重大バグから軽微な指摘まで)を評価し、修正や対応策の実施状況を把握します。
3. 業務への影響評価
テスト結果が業務運用に及ぼす影響やリスクを分析し、運用に耐えうるかを判断します。
4. 改善計画の有無と妥当性
未解決課題に対する改善計画や再テスト計画が策定されているかを確認し、今後の対応方針を検討します。
5. ベンダーとの合意形成
評価結果を踏まえ、ベンダーと納品条件や課題対応の合意が取れているかを確認します。
これらの評価基準と意思決定ポイントを明確にしたうえで判断することで、発注者は品質を担保しつつ、適切なタイミングで次工程へ進めることが可能となります。
あわせてこの用語と記事をチェック
・パッケージ導入時の実装作業とその中でも発注者側が実施すべきこととは