ホワイトボックステストを勉強しました。
ホワイトボックステスト???
高品質のソフトウェアを開発するためには、確認と検証が必要です。
- 開発された製品が正常に動作することを確認する作業(Verification)
- 製品が顧客が望む適切な製品なのかを検証する作業(Validation)
確認と検証のため、テストケースを用意してテストを行います。
ホワイトボックステストは、
ソフトウェアの内部のソースコードを確認する手法です。
ホワイトボックステストをする理由は、
内部のソースコードの動作を開発者が追跡することができるので、
動作の有効性だけでなく、実行される過程を見ることで、
コードがどのようなルートで実行され、不要なコードやテストされていない部分を調べることができます。
簡単に言うと、アプリケーションの内部構造と動作をチェックするソフトウェアのテスト方式です。
ホワイトボックステスト技法
ホワイトボックステスト技法は、4つの技法があります。
- Statement Coverage
- Branch Coverage
- Condition Coverage
- Multiple Condition Coverage
Statement Coverage
プログラムを構成する文章が、
少なくとも、一度は実行可能な入力値をテストケースとして選定する。
上にある図を見ると、
【1-2-3-4-5-6-7】の流れで、
全ての文章を1回実行するように変数をKより大きな正の整数を用意します。
Branch Coverage
プログラム中の分岐を
少なくとも、一度は実行するようにするテスト方法
たとえば、if文が2つあれば、4つの流れ(4種類の入力)を作成します。
上にある図を見ると、一つの例で、
【1-2-3-4-5-6-7】や【1-2-3-4-5-6-1】の流れで、
選択した分岐を一度は実行するようにします。
Condition Coverage
簡単に言うと、実行可能なすべてのパスのチェックする方法です。
上にある図を見ると、一つの例で、
【1-2-3-4-5-6-7】や【1-2-3-4-5-6-1】、【1-2-4-5-6-7】、【1-2-4-5-6-1】の流れで、
全ての条件をテストします。
Multiple Condition Coverage
IF文または、While文の内条件式を調査します。
if(x>1 or y<10)の場合、x>1の条件とy<10の場合
すべてをテストします。
ホワイトボックステストの必要性
- ブラックボックステストだけでは、プログラムのすべての実行可能なステートメントが実際に実行されるか不明
- ブラックボックステストだけでは副作用を予測する困難
- ホワイトボックステストプログラム内に不要な機能がある場合、これを見つけることがあります。
- ホワイトボックステストプログラムに誤字(Type Error)がある場合は、これを見つけることがあります。