境界値テストとは?同値分割との違いやテスト手順を紹介

ソフトウェアテスト

本ブログでは、ソフトウェアテストにおける「境界値テスト(境界値分析)」についてご紹介します。まずは「境界値テストとは何か?」について解説し、同値分割法との違いを理解した上で、検証の進め方や必要性について、各テスト工程とともに説明していきます。

今回はテスト未経験者の方にもわかりやすく、図解を用いて解説。本ブログを読み終わる頃には、境界値テストに関する知識がより深まることでしょう。

境界値テストとは

境界値テスト【境界値分析・限界値分析/boundary value analysis】とは、ソフトウェアテストにおけるテストケース作成方法のひとつです。

具体的には、出力が同様になる入力値を各グループにまとめ、グループが隣接する境界やその前後の値を入力値として検証作業を行います。

ここでの境界値とは、
「ある範囲の最小値」もしくは、「最大値などの同値分割した領域の端となる値」を指します。

境界値テストでは、出力結果が変化する境界付近を重点的に検証することで、それらに潜む不具合・ミス(ヒューマンエラーなど)を効率的に検出し、プロジェクトに応じたテストケースを作成します。

境界値テストは後に解説する「同値分割法」が実施された後に、実行されることが多々あります。

以上をふまえ、今回は境界値テストと同値分割法の概要・相違点をご紹介した後、境界値テストの進め方・必要性について詳しく解説します。

qs_cta-btn_700-150.pngのサムネイル画像

同値分割法とは

同値分割法【同値分析/equivalence partitioning】 もまた境界値テスト同様、ソフトウェアテストにおけるテストケース作成方法の1つであり、より少ないテスト回数で、広範囲での効率的なテストを可能にします。

具体的には、出力が同様になる入力値を各グループ(同値クラス)にまとめ、そのグループから代表値を1つ選択し、テストを実行します。同値分割によるテストケース設計フローは以下の通りです。

  1. 同値クラスを作成
  2. 同値クラスを有効・無効に分類
  3. 代表値を選択する
  4. テスト条件を決定する
  5. テスト条件を見直す

同値分割法の例を「ログインパスワード」に置き換えた場合、同値クラスの振り分けは以下の通りになります。

●パスワードの文字数:8文字以上、15文字以下」という仕様

この場合の同値クラスは、以下3種類の抽出が可能です。

  • 有効同値クラス:8文字以上、15文字以下
  • 無効同値クラス:0文字以上、 6文字以下
  • 無効同値クラス:16文字以上

併用で実行されることの多い「境界値テスト」と異なる点は、
「テストデータとして用いる値」です。

同値分割法では「同値クラス内の代表値」、一方で境界値テストでは「出力が切り替わる境界となる値(境界値)」がテストデータとしてそれぞれ抽出され、テストが実行されます。

以上をおさえた上で次は、境界値テストの基礎知識(必要性・手順など)について、更に深掘りしていきましょう。

なぜ境界値テストが必要なのか

そもそも、境界値テストはなぜ必要なのでしょうか?

それは「出力が切り替わる境界付近で、不具合・ミスが起こる可能性が非常に高い」からです。

境界付近仕様・設計書の「以下」と「未満」、コーディングの「≧」と「>」など記載ミスがないか、注意して確認が必要です。

そのため、境界値テストはこれらのミスを効率的に早期検出し、ソフトウェア品質向上に繋げるために必要不可欠な作業工程であると言えます。

●境界値付近にて不具合・ミスが起こる可能性が高い理由

●境界値付近にて不具合・ミスが起こる可能性が高い理由

  • 担当者によって仕様の記載方法が異なり、認識の相違・誤解が発生する
  • コーディング時の記載ミスなど、ヒューマンエラーが起こりやすい

上記の理由は「境界値テストを行う目的」にも該当します。

境界値テストの実行においては、これらを防ぐ意識を常に持ちながら、丁寧にテスト作業を進めていきましょう。

効果的でスムーズなテスト作業を実行するためにも、これらのポイントは必ずおさえておきましょう。

qs_cta-btn_700-150.pngのサムネイル画像

境界値テストの手順

つづいて、ここまでの内容を把握した上で「境界値テストの手順」について解説します。

境界値テストの手順は以下の3段階に大別されます。

  • 境界を見つける
  • 境界値を決める
  • テストする値を決める

ここからは、各フェーズの作業内容について解説します。
境界値テストの手順を正確に把握し、実際のテスト作業に役立てましょう。

境界を見つける

境界テストを行う際にはまず、
同値分割法などを用いて「出力が切り替わる境界」を見つける必要があります。

ここでの重要なポイントは、
「仕様・設計書などを基に、境界値となる部分を数直線などで図解すること」です。

前述の通り、仕様・設計書の「以下」と「未満」、コーディングの「≧」と「>」などの記載は、担当者によって認識の相違・誤解が生じ、思わぬミスに繋がることもあるのです。

テストを行う際にはできる限り曖昧な表現・記載を避けるよう心がけましょう。

以上をふまえ、見つけた境界値の図を作成し、
「具体的にどのような境界値を検証すべきなのか?」を正しく把握・整理することが大切です。

境界値を決める

冒頭でも述べた通り、
境界値=「ある範囲の最小値」、もしくは「最大値などの同値分割した領域の端となる値」です。
境界を見つけた後は、境界値を正式に決定します。

決定する境界値は主に、「有効同値クラスの最小値と最大値」に該当します。

これらはテストケース作成の要となるため、ミスや抜け漏れのないよう注意しましょう。

テストする値を決める

境界値の決定後は、テストする値を決めます。
テストする値の候補は、以下の3つです。

  • 境界値
  • 境界値の1つ下の値
  • 境界値の1つ上の値

上記の中でも「境界値」と「境界値の1つ上の値」を省略せずにテストすれば、不具合・バグ抽出の確率が高くなります。しかし、業務効率化の一環で省略されるケースもあるため、留意しておきましょう。

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

つぎは、テストの分類について解説します。

ソフトウェアテストに用いられる動的なテスト手法は、
「ブラックボックステスト/ホワイトボックステスト」の2種類に大別されます。

ここまで、ご紹介した「境界値テスト/同値分割法」は、いずれもブラックボックステストに該当します。

ブラックボックステストとは、開発者以外の第三者によって、システムの内部構造を考慮することなく、外部から見た機能や振る舞いが正確であるかを確認するテスト手法です。

製品・サービスのユーザビリティや機能面などに関して、利用者に近い目線で客観的にテスト結果を解析することが可能です。

一方で、ホワイトボックステストとは、システムの内部構造を理解している開発者が、それらが全て仕様通りに動作しているかを網羅的に確認するテスト手法を指します。

ホワイトボックステストの詳細はこちら

ホワイトボックステストは、個々の機能よりも内部構造の整合性を重視したテストです。
そのため、「過程」に着目したテストを実施します。

その網羅性の高さからレアケースな事態も動作確認できるという利点を持ち合わせています。

効率よく境界値テストを実行するには

境界値テストを効率的に実行するためのポイントをご紹介します。

境界値テストを効率的に実行するためのポイントをご紹介します。

前述で解説した動的テスト技法の分類の中でも、ホワイトボックステストはコーディング時における不等号の記載ミスを見つけることができません。

そのため、境界値テスト実行に際しては、「ブラックボックステストとホワイトボックスを組み合わせてテストケースを作成すること」が不具合・ミスの発見に繋がります。

また、テストの網羅性向上・業務効率化にも寄与するため、製品・サービスの品質確保においても重要なオペレーションのひとつであると言えるでしょう。

まとめ

いかがでしたでしょうか?
今回は「境界値テストとは何か?」について、手順や必要性をまじえて解説しました。

テストの手順・分類を理解することは、テストの成否でなく、ソフトウェア品質を考える上でも非常に重要です

境界値に潜む不具合・ミスを上流工程にて検出することで、業務効率化がなされるだけでなく、安心安全の製品・サービス提供を実現することができます。

本ブログを通して境界値テストに関する理解が深まり、ソフトウェア品質向上、業務効率化について見直すきっかけとなれば幸いです。

qs_cta-btn_700-150.pngのサムネイル画像

この記事を書いた人

テクバンは様々なICT導入を進めることにより顧客のDXを推進し売上、業務改善を推し進めます。

同じカテゴリーの記事

ソフトウェアテスト/
テスト自動化を行う
テクバンとは

  • ヒアリング
    コンサルティング

    当社在籍のコンサルタントが徹底したヒアリングを実施。現状の課題や製品特性を洗い出します。お客様の問題解決・品質向上へ向け。効果的なサービスをご提案します。

  • システム開発・アプリ導入
    インフラ環境設備

    要件定義に基づき、1,000名ほどのエンジニアから案件に合った最適な人員をアサインします。開発からアプリ導入、インフラ設備、品質保証まで全てお任せください。

  • 運用・サポート

    サービス導⼊後に発⽣するシステム運⽤やサポートなども、専⾨企業ならではの⾼いスキルで安定運⽤を実現。お客様企業にて運⽤が定着化するまでご⽀援いたします。

保有資格
  • Adobe Partner Connection リセラープログラム レジスタード
  • Cisco認定
    プレミアパートナー
  • Oracle PartnerNetwork SELL /
    LICENSE & HARDWARE
  • Microsoft Gold
    コンピテンシーパートナー
  • VMware Partner Connect Principal
  • ソフトウェアテストの内容が知りたい
  • テスト自動化の仕組みが知りたい
資料ダウンロード
ソフトウェアテストやテスト自動化の最新情報をダウンロードできます
PDF資料にて当社のサービスメニュー、当社ご紹介資料もございます
ソフトウェアテスト
テスト自動化
品質向上BLOG