作成したプログラムは品質を担保するためにテスト工程で各種検証を行い、欠陥(バグ)の洗い出しと改修を行うことで完成に至ります。そのためシステムを作る以上、テストの知識とスキルは必要不可欠とも言えるでしょう。
本記事ではそんなソフトウェアテストの中でも重要な役割を担っている結合テストについてなるべくわかりやすく解説いたします。
【公式HP】https://flxy.jp/
- 90%以上がフルリモート案件
- 週1〜3日程度の副業向け案件が多い
- 自身のライフスタイルに合った働き方ができる
- 希望に合わせてコーディネーターが最適な提案をしてくれる
- 定期開催される交流会や勉強会で人脈を広げることができる
\ 最短60秒で登録可能! /
目次
結合テストとは?わかりやすく解説
結合テストとは、モジュールを結合させた状態で正しく動作するか検証するテストです。
結合テストは通常、単体テストの後に行われるテストであり、ソフトウェアテストの中でも欠かすことのできない重要な役割を担っております。
結合テストは前段階である単体テストが完了していることが前提となるので、まずは単体テストのついて理解を深めておきましょう。
結合テストの目的
結合テストの目的はモジュール間のインターフェース構造に問題がないか検証し、適切な動作が行われることを確認することです。
結合テストの利点
そんな結合テストを行う利点は、モジュールを連携させつつバグの洗い出しができる点。
先ほど少し触れた単体テストでは、あくまで各モジュールごとにテストを行って誤りがないか検証するに過ぎません。
つまり、単体テストの「結合部分の確認に弱い」という弱点を補うためのテストが「結合テスト」となるので行う意義があるのです。
結合テストは単体テストの「結合部分の確認に弱い」という弱点を補うためにモジュールを連携させてバグがないか検証するためのテスト。
結合テストの欠点
一方で、結合テストも万能という訳ではなく欠点ももちろん存在します。
欠点として挙げられるのは大きく以下2点。
- テストに時間を要する
- 詳細さに欠ける
結合テストの欠点①時間を要する
結合テストは単体テストに比べるとより多くの動作を考慮したテストとなるので、テストにより多くの時間を要することになります。
結合テストの欠点②詳細さに欠ける
また、結合テストでは「何かが壊れている」ことは分かっても厳密に「どの箇所が壊れているのか」までは分かりません。
そのため、モジュールに手戻りが発生することとなり進捗に大きな遅れが生じるため、工数を多く見積もっておくべきと言えるでしょう。
結合テストは詳細さに欠けるため、原因特定までは難しい。手戻りを考慮してテスト工数を多めに見積もっておくべき。
結合テストの手法と必要な観点
本章ではこれまでの話を踏まえた上で、結合テストにおける以下の2手法と必要な観点について解説していきたいと思います。
- トップダウンテスト
- ボトムアップテスト
トップダウンテスト
トップダウンテストとは、上位モジュールから先にテストを済ませていく手法になります。
基本的に下位モジュールは未テストの状態となっているので、スタブと呼ばれる仮のモジュールをくっつけてインターフェースの確認を行います。
ボトムアップテスト
一方、ボトムアップテストとは下位のモジュールから先にテストを済ませていく手法です。
ボトムアップテストの場合、上位モジュールが基本的に未テストの状態となっているのでドライバと呼ばれる仮のモジュールをくっつけてインターフェースの確認を行います。
結合テスト【まとめ】
- 結合テストとは、モジュールを結合させた状態で正しく動作するか検証するテスト。
- 結合テストを行う利点は、モジュールを”連携”させつつバグの洗い出しができる点。(単体テストの「結合部分の確認に弱い」という弱点を補うことができる)
- しかし、結合テストは時間を多く要する・詳細さに欠けるなどの欠点も持ち合わせる。
- 結合テストの代表的な手法としてトップダウンテストとボトムアップテストがある。
本記事を読んで結合テストの概要と重要性について理解していただけたのなら幸いです。
ここまで記事を読んでいただきありがとうございました。当ブログでは他にもエンジニア向けの記事を公開しているので、気になる記事がないか併せて確認してみてください。
- 90%以上がフルリモート案件
- 週1〜3日程度の副業向け案件が多い
- 自身のライフスタイルに合った働き方ができる
- 希望に合わせてコーディネーターが最適な提案をしてくれる
- 定期開催される交流会や勉強会で人脈を広げることができる
\ 最短60秒で登録可能! /