はじめに
実務で初めてテストケース作成を任されたとき、私は正直かなり戸惑いました。
仕様書を見ながらテストケースを作成していると、
- 同値分割
- 境界値分析
- 最大値
- 最小値
- NULL
- 閾値(しきいち)
といった聞き慣れない言葉が次々に出てきたからです。
当時の私は、
「とりあえず正常な値と異常な値を入れればいいのでは?」
くらいの認識でした。
しかし実際にテストケースを作成してみると、
「どの値を選べばいいの?」
「何パターン作ればいいの?」
「全部試さなければいけないの?」
という疑問だらけでした。
この記事では、私が実務で初めて出会ったテスト設計の考え方について、まずは全体像を整理してみたいと思います。
そもそもテストケースとは?
例えば会員登録機能があるとします。
仕様は以下です。
- 年齢は18歳以上65歳以下
- 名前は1文字以上20文字以下
- メールアドレスは必須
このとき、
「正しい値を入力したら登録できるか」
だけを確認するのがテストではありません。
以下のようなケースも確認する必要があります。
| 入力値 | 期待結果 |
|---|---|
| 30歳 | 登録できる |
| 17歳 | エラー |
| 66歳 | エラー |
| 名前なし | エラー |
| メールアドレスなし | エラー |
このように、
「どの入力値を入れたら、どんな結果になるべきか」
をまとめたものがテストケースです。
実務で最初に戸惑ったこと
私が最初に悩んだのは、「何パターン作れば十分なのか」 でした。
例えば年齢が18歳〜65歳の場合、
本当に全部確認するなら、
- 18歳
- 19歳
- 20歳
- 21歳
...
- 65歳
まで確認しなければなりません。
しかし実際の現場では、そのようなテストは行いません。
そこで登場するのが、
- 同値分割
- 境界値分析
という考え方です。
同値分割とは?
同じ結果になる値をグループ化し、その中から代表値を選ぶ考え方です。
例えば、
- 18歳未満 → エラー
- 18歳〜65歳 → 正常
- 66歳以上 → エラー
という仕様なら、
18歳〜65歳の間はどの値でも同じ結果になります。
そのため、
30歳などの代表値を1つ選んで確認します。
これを同値分割と呼びます。
詳しくは次回の記事で解説します。
境界値分析とは?
エラーと正常が切り替わる境目を重点的に確認する考え方です。
例えば、
- 17歳 → エラー
- 18歳 → 正常
ここは結果が切り替わる重要なポイントです。
実際の不具合は、このような境界付近で発生しやすいため、
- 17歳
- 18歳
- 19歳
を確認します。
これを境界値分析と呼びます。
こちらも次回以降で詳しく解説します。
最大値・最小値とは?
例えば、
「ユーザー名は1文字以上20文字以下」
という仕様があったとします。
この場合、
- 1文字
- 20文字
という最小値と最大値が重要になります。
さらに、
- 0文字
- 21文字
も確認対象になります。
なぜこれらを確認する必要があるのかは、後続の記事で詳しく紹介します。
NULLとは?
実務でよく出てきた言葉の1つです。
最初は、
「空文字と何が違うの?」
と思っていました。
例えば、
""
は空文字です。
一方、
NULL
は値そのものが存在しない状態を表します。
システムによっては、
- 空文字はOK
- NULLはNG
ということもあります。
テストケースを作る際は重要な確認ポイントになります。
閾値(しきい値)とは?
閾値とは、ある条件が切り替わる基準値のことです。
例えば、
「購入金額が10,000円以上なら送料無料」
という仕様の場合、
10,000円が閾値になります。
この場合、
- 9,999円
- 10,000円
- 10,001円
を確認することで、仕様通りに動くかを確認できます。
おわりに
今回は、実務で初めてテストケース作成を任されたときに出会った用語を整理してみました。
- 同値分割
- 境界値分析
- 最大値
- 最小値
- NULL
- 閾値
どれもテストの観点で重要だとわかりました。
次回は、
「同値分割と境界値分析、最大値と最小値」
をテーマに、
実際のコード例とテストケース表を使いながら解説したいと思います。
私自身、最初は「なんとなく」で使っていた考え方でしたが、理解するとテストケース作成がかなり楽になりました。
同じようにこれからテスト設計を学ぶ方の参考になればうれしいです。
