単体テストと結合テスト比較!技術的な違いからメリット・デメリットまで解説します。

システム開発で重要なのがテストです。システムの納品に至るまでには、ユーザーが望む機能が果たされていることや、エラーになってもシステムが止まらない作りになっているかを慎重にテストする必要があります。今回は、テストの中でも「単体テスト」と「結合テスト」について、技術的な違いやメリットとデメリットを交えてかいせつします。

 

デメリット:システム規模によっては時間がかかる

 

 

単体テストよりも多くの動作を考慮したテストですので、システムの規模によってはとても時間のかかる工程となります。更に、結合テストで洗い出される不具合は、大きな手戻りを意味します。

ひとつのモジュールに手戻りが発生すれば、テストの進捗自体に大きな遅れが発生してしまいます。これらを考慮すると、テスト工数は大きく予定しておく必要があるのです。

 

テストを自動化する判断

 

テストを自動化するテストツールが存在します。テストツールを導入することで、同じ動作の繰り返しなどに利用できます。これにより、テスト時間の短縮が実現できる可能性があります。

以下のようなテストにはツールを導入しても良いでしょう。

 

・値の入力

・連続した同じオペレーション

・過負荷テスト

しかし、テストツールはあくまでも、テスト対象のシステムに合ったものを選択しし判断しなければなりません。テストツールさえ使えばテストが短縮できるということで、先行してテストツールを導入してしまったという声もよく聞きます。

テストツールは万能ではありません。ですので、テスト仕様書にて洗い出したテスト項目から、自動化できるモノとそうでないものを切り分け、導入を検討する必要があるのです。

テストツールを利用するにはもちろんコストがかかります。テストツールに合わせたシナリオを別途作成しなければならないという工数も必要です。

テストを自動化する判断は、自動化が効率をあげるシステムであること、そして導入するタイミングなどの判断で、テストツールの価値が決まるのです。

 

まとめ

 

 

単体テストと結合テストでは、それぞれ観点が違います。また、単体テストをコーディングの過程で行い、実質では単体テスト工程を省略しているプロジェクトも存在します。

しかし、単体テストや結合テストなど、それぞれのテストにこうした観点の違いがあることを認識していれば、省略は正しい方法ではないことが分かります。

単体テストでも、結合テストでも、それぞれに技術的な違いがあることも分かりました。プログラミングからテストまでを行うエンジニアも、テストを専門とするエンジニアも、これらテストのメリットやデメリットも把握しておく必要がありますね。

 

Geekly Media ライター

佐久森

2+