「ホワイトボックステスト」〜概要・網羅率について、まとめてみた！〜

# はじめに
こんにちは。
今回は「**ホワイトボックステスト**」について紹介していきたいと思います！
前回と同様に、「ホワイトボックステスト」は「**基本情報技術者試験**」、「**JSTQB FL**」ともに出題されるテスト技法となっています。
この記事では、「**ブラックボックステストとホワイトボックステストの違い**」についても紹介していきたいと思います。

# 目次
* [1. ホワイトボックステスト](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#1-%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%B9%E3%83%88)
* [2. 網羅基準の分類](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#2-%E7%B6%B2%E7%BE%85%E5%9F%BA%E6%BA%96%E3%81%AE%E5%88%86%E9%A1%9E)
    * [2-1. 命令網羅](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#2-1-%E5%91%BD%E4%BB%A4%E7%B6%B2%E7%BE%85)
    * [2-2. 判定条件網羅](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#2-2-%E5%88%A4%E5%AE%9A%E6%9D%A1%E4%BB%B6%E7%B6%B2%E7%BE%85)
    * [2-3. 条件網羅](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#2-3-%E6%9D%A1%E4%BB%B6%E7%B6%B2%E7%BE%85)
    * [2-4. 複数条件網羅](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#2-4-%E8%A4%87%E6%95%B0%E6%9D%A1%E4%BB%B6%E7%B6%B2%E7%BE%85)
* [3. ブラックボックステストとホワイトボックステストの違い](https://qiita.com/itsuki_slj/private/1a20a64b57cfb68cb777#3-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%B9%E3%83%88%E3%81%A8%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%82%B9%E3%83%88%E3%81%AE%E9%81%95%E3%81%84)

# 1. ホワイトボックステスト
ホワイトボックステストとは、**システムの内部構造に重点を置いた**テスト技法のこと
プログラムの内部構造を確信しながら行うテストになります。
**開発者側の視点**でのテストです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/86094649-eb61-b8c5-2682-18ce12034b54.png)

# 2. 網羅基準の分類
ホワイトボックステストには、「**命令網羅**」「**判定条件網羅**」「**条件網羅**」「**複数条件網羅**」と呼ばれる網羅基準が存在します。
それでは、ひとつひとつ紹介していきます。

### 2-1. 命令網羅
命令網羅とは、全ての**処理**(**命令**)**を最低1回は通す**ようにするテストのこと
下記の図のような内部構造で**命令網羅**するためには、「**A=真、B=真**」の入力データが必要となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/c0e448b6-0e1f-a645-5e76-d7445a89f6fb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/b5042462-df59-85f3-d458-cde21dd4ce40.png)

### 2-2. 判定条件網羅
判定条件網羅とは、**全ての分岐を最低1回は通す**ようにするテストのこと
下記の図のような、内部処理で**判定条件網羅**するためには、「**A=真、B=真**」と「**A=真、B=偽**」の入力データが必要となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/2d8720d9-880e-5778-4946-c5fe70b727c2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/98d65819-6e6c-2962-7ed5-eeb95f3f6bd5.png)


### 2-3. 条件網羅
条件網羅とは、**個々の条件を最低1回は満たす**ようにするテストのこと
ここでいう「**個々の条件**」とは、「**A**」でいう「**真と偽**」、「**B**」でいう「**真と偽**」のことになります。
そのため、「**A,B**」それぞれの「**真と偽**」を**最低1回は満たす**ようにしなければいけないということです。

下記の図のような、内部処理で**条件網羅**するためには、
**①「A=真、B=真」と「A=偽、B=偽」**,	
**②「A=真、B=偽」と「A=偽、B=真」**,	
**③「A=偽、B=真」と「A=真、B=偽」**,
いずれかの入力データが必要となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/6e912d63-df2e-7b8e-4c56-47e6b091bc43.png)

#### テストデータ①
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/53493ba8-1f21-00c4-0a46-ce11a4492728.png)
#### テストデータ②
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/103dcfe1-b496-56e9-d2a2-5a9cd88ce6ad.png)
#### テストデータ③
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/983cee42-a095-9bb0-aaaf-77caf2b31e09.png)

### 2-4. 複数条件網羅
複数条件網羅とは、**想定される条件の組み合わせをすべて網羅**するテストのこと

下記の図のような、内部処理で**複数条件網羅**するためには、
**「A=真、B=真」「A=真、B=偽」「A=偽、B=真」「A=偽、B=偽」**
の入力データが必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/3dd23f13-b7f8-f789-c36b-c6ff88e3a9ae.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/b9021d53-761f-a5bd-294d-8022701f37c4.png)

# 3. ブラックボックステストとホワイトボックステストの違い
前回の記事で説明した「**ブラックボックステスト**」と、今回の記事「**ホワイトボックステスト**」の違いについて最後に説明していきます！

今回は、「**特徴**」、「**手法**」、「**視点**」の３つの方向から違いをまとめました。
それをまとめた図が以下の通りとなります。
「**ブラックボックステスト**」について、気になった方は、[こちら](https://qiita.com/itsuki_slj/items/bc06c214f47e07dc7438#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)の記事をこ参照ください！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540016/7a4bc4fa-44d2-70b2-30b0-7c47a01fd798.png)


# 終わりに
今回は、「**ホワイトボックステスト**」についてまとめてみました。
前回に引き続き、各試験で出題される問題となっています。
この記事を読んでいただき、少しでも参考にしていただければ幸いです。
ありがとうございました！