ブラックボックステストとホワイトボックステストについて

f:id:ryoutaku_jo:20190605224712p:plain

【結論】

・ソフトウェア開発におけるテストは、「ブラックボックステスト」と「ホワイトボックステスト」の2種類に分類できる

ブラックボックステストとは、入力値と出力結果だけに着目したテスト手法。網羅的にテストを行えるが、潜在的なバグが混入するリスクがある。

ホワイトボックステストとは、個々のプログラムの処理過程にも着目したテスト手法。細かくテストが出来るが、

【目次】

【本題】

ソフトウェアテストの種類

ソフトウェア開発において、テストの実施は、ソフトウェアの品質を担保する上で欠かせません。

そのテストについてですが、主に下記の二種類に分類する事ができます。

ブラックボックステスト

ホワイトボックステスト

今回は、それらの特徴についてまとめます。

ブラックボックステストについて

ブラックボックステストとは、入力値と出力結果だけに着目したテスト手法です。

実際にソフトウェアを操作する時と同じ様に一連の動作をテストできるので、、一つのテストでチェック出来る範囲が大きいというメリットもあります。

また、リファクタリングを行う際にも、外部的な仕様に影響を与えていないか簡単にチェック出来るという利点もあります。

一方で、名前の通り、プログラム内部の処理がブラックボックス化してしまうので、このテスト手法だけでは、思わぬバグが紛れ込む可能性があります。

ホワイトボックステストについて

ホワイトボックステストとは、個々のプログラムの処理過程にも着目したテスト手法です。

一つ一つのプログラムの処理過程を細かくテストする事が出来るので、コードのどの箇所が正常に動作するのか明確になることで、潜在的なバグが混入することを未然に防ぎやすいというメリットがあります。

しかし、チェック出来る範囲が狭い為、ホワイトボックステストだけでソフトウェアのテストを行おうとすると、テストの実装に多大な労力が必要になります。

また、プログラム単位でテストを行う為、リファクタリングを行えば、テストコードも書き換える必要が出てきます。

使い分け

プログラムの全てを細部までテストすることは、費用対効果的に非常に困難なので、これらのテストを効果的に使い分ける事が重要です。

なので、ブラックボックステストで、ソフトウェア全体のチェックを行い、バグが発生すると致命的な問題が発生する箇所(決済関連)などの要所要所でホワイトボックステストを利用するのが効果的だと考えられます。

参考情報

ブラックボックステストとホワイトボックステスト | DevelopersIO

ホワイトボックステストとブラックボックステスト、どっちが必要?|発注成功のための知識が身に付く【発注ラウンジ】

《今日の学習進捗(3年以内に10000時間に向けて)》

業務のサービスリリースが間近で、タスクがカツカツ・・・

学習開始からの期間 :180日
今日までの合計時間:1737h
一日あたりの平均学習時間:9.7h
今日までに到達すべき目標時間:1644h
目標との解離:93h
「10,000時間」まで、

残り・・・「8263時間!」