【単体テスト】境界値分析について

こんにちは、技術部のFです。
ソフトウェアの品質を保証するために必要不可欠な工程の1つ、「単体テスト」 のテスト技法のうち、「境界値分析」についてまとめます。

単体テストとは

単体テストは、プログラミングの後に実施し、モジュールレベルの動作確認を行う工程です。

開発工程(ウォーターフォール型の場合)
1. 要件定義
2. 基本設計
3. 詳細設計
4. プログラミング
5. 単体テスト ←ここ!
6. 結合テスト
7. 総合テスト

テスト技法

次に、単体テストのテスト技法のうち、境界値分析とそれを理解するのに必要な考え方である同値クラス分割について説明します。

同値クラス分割
同値クラス分割とは、出力が同等になる入力値のグループを識別し、各グループに対するテストケースを作成する技法のことです。
システムが正常に作動する値を「有効同値クラス」、エラーを検知する値を「無効同値クラス」といい、それぞれのクラスの代表値を用いてシステムが正常に作動するか、エラーに作動するのかをテストします。

境界値分析
境界値分析とは、仕様条件の境界となる値とその隣の値に対してテストする技法のことです。境界値とは、ある範囲の最小値または最大値などの同値分割した領域の端にあたる値です。
「異なる同値クラスの境界にあたる値」と「その隣の値」の境界値を用いてテストすることで、仕様の認識ミスや実装ミスによる不具合を検出できます。
境界値の例)「~未満」、「~以下」、「~より大きい」など

境界値分析の流れ

境界値のテストは以下の手順で進めます。
1. 境界を見つける
2. 境界値を決める
3. テストする値を決める

では、「0から14の値をテストする際、5から10を有効な値とし、その他の値(0~4、11~14)を無効な値とした場合」を例に境界値のテストをしていきます。

1. 境界値を見つける

まず、有効な値と無効な値を3つのグループに分けます。
①0~4の無効な値のグループ
②5~10の有効な値のグループ
③11~14の無効な値のグループ

blank

2. 境界値を決める

次に境界値分析を用いて境界値(今回の例では最小値と最大値)を下記のように各グループ毎に決めます。
①0~4の無効な値のグループ : Min=0, Max=4
②5~10の有効な値のグループ : Min=5, Max=10
③11~14の無効な値のグループ : Min=11, Max=14

3. テストする値を決める

最後にテストする値を決めます。テストする値の候補となるのは、以下の3つの値です。
* 境界値
* 境界値の1つ下
* 境界値の1つ上

blank

まとめ

同値クラス分割は、一定の根拠をもってテスト件数を少なくする技法であり、境界値分析は不具合を検出しやすい値を選び出すための技法です。 シンプルかつ正確なテストを実施することは、効率的に不具合を発見し、より品質の高い開発をすることに繋がります。以前どのような数値を用いてテストすればよいのか迷うことがあったため、今後は同値や境界値を意識したテストケースを作成していきたいです。

最後までお読みいただき、ありがとうございました。

スーパーソフトウエアの採用情報

あなたが活躍できるフィールドと充実した育成環境があります

blank
blank