• ホーム
  • 品質向上Blog
  • 限界値分析とは|併用することが多い手法の同値分割についても解説!

限界値分析とは|併用することが多い手法の同値分割についても解説!

ソフトウェアテスト

限界値分析とは

限界値分析(境界値分析)とは、ソフトウェアテストで適切なテストケースを作成する手法の一つで、仕様条件の境界となる値とその隣の値に対してテストする技法のことです。

限界値(境界値)とは、「ある範囲の最小値または最大値などの同値分割した領域の端にあたる値」で、具体的には「未満」や「以下」などが該当します。

例えば、入力条件として「0以上99未満」のような範囲指定があるとき、設計書で「未満」「以下」を取り違えや、コーディングで「≧」と「>」の記述ミスを犯すという誤りが起こりやすく、不具合が潜んでいる可能性が高いとされています。

限界値分析の特徴

限界値分析の目的は、テストする際にその曖昧な点をしっかり整理するため、具体的に「どんな値をテストすべきか?」を正確に把握することです。

少ないテスト回数でより広い範囲をカバーするため、出力が変化する境界付近では条件式の記述ミスや設計書の解釈の誤りなどによりバグが頻発しがちです。限界値分析では、その付近の値を重点的に調べます。

境界値分析は、後ほど説明する「同値分割」と一緒に行われる手法です。
同値分割だけでテストするよりも効果があると考えられており、一般的にはこれらを組み合わせて実施されます。

限界値を狙ってテストすることで、仕様の認識ミスや実装ミスによる不具合を検出することができます。

限界値分析の例

「実際にどのように行うのか?」を限界値分析の例で紹介します。

画面上から日付(年月日)を入力するシステムで年月日のうちの「月」の値の入力について考えてみましょう。
このシステムでは、入力値は整数で与えられるものとし、1から12までの場合は「有効」な値、0以下もしくは13以上の場合は「無効」な値としてチェックされるものとします。

この例では、次の2か所の境界値があります。

  1. 無効同値クラス1と有効同値クラスの境界
    無効同値クラス1における境界値→ 0
    有効同値クラスにおける境界値→ 1
  2. 無効同値クラス2と有効同値クラスの境界
    無効同値クラス2における境界値→ 13
    有効同値クラスにおける境界値→ 12

こうして、境界値分析を適用することで「⁠0、1、12、13」の4つのテストデータが抽出されました。

なぜ境界上の値を選択するかというと、経験的に設計やコーディングでは、境界付近で間違いが生じる可能性が高いため、境界付近をテストすることでその間違いに基づくバグを発見しやすいからです。

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

同値分割法とは

同値分割法とは出力が同等になると想定される入力値のグループを識別し、各グループに対するテストケースを作成する技法のことです。少ないテスト回数でより広い範囲をカバーするための手法の一つになります。

期待される出力や処理結果が同じであるような入力は「同値クラス」と呼ばれる一つの集団にまとめ、その中から適当に選んだ一つの入力のみを試すことで、効率良くテストを進めることができます。

同値分割法の特徴

同値分割法は、仕様からデータを「同値クラス」に分類し、各グループから代表値を選ぶ技法です。同値分割法の目的は、冗長なテストケースを省き、テストを効率良く実施することにあります。

また、意味のあるデータに関するテスト漏れを防ぐことも可能です。同じような意味を持つデータばかりに偏ったテストケースになることが避けられます。

ただ、「本当にその機能や分類が同じであるか分からない段階では使えない」というデメリットも存在します。
これには注意が必要です。

同値分割法の例

先ほど「限界値分析」で挙げた、「月」の値の入力の例を用いて説明します。

この場合、月の入力値は次の同値クラス(同じ出力結果が得られる入力値のグループ)に分類できます。

無効同値クラス1・・・0以下の整数(有効範囲より小さく無効)
有効同値クラス・・・1から12までの整数
無効同値クラス2・・・13以上の整数(有効範囲より大きく無効)

また、入力として整数以外が考えられる場合は、小数や文字列、記号などもそれぞれ同値クラスとします。

このように同値クラスに分割した後、各同値クラスからテストで使う値を選択します。
このとき、テストの入力値としては各同値クラスの中から(少なくとも)1個の代表値を選びます。代表値の選び方には明確なルールはありませんが、「⁠この値でテストが通ればその同値クラスは全部OK」と言えるような値を選ぶべきです。

例えば、この例での有効同値クラスの代表としては、真ん中付近の6~7あたりを選びましょう。

このように、同値分割法を使うことにより、少ないテストケースで対象範囲を網羅することができます。

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

ブラックボックステストに使用される手法の1つ「限界値分析と同値分割法」

限界値分析と同値分割法は、どちらもブラックボックステストによく使用される手法のひとつです。
一般的に、これら2つの技法は組み合わせて使われています。

ブラックボックステストとは

ブラックボックステストとは開発者以外の第三者によって、システムの内部構造を考慮することなく、外部から見た機能・動作が正常かを確認し、テストケースを作成・実行する手法です。

そのため、製品・サービスのユーザビリティや機能面などに関して利用者に近い目線で客観的にテスト結果を解析することが可能です。また、ブラックボックステストは数多あるテスト技法のひとつであり、総称であると言えます。

ブラックボックステストは主に、機能テスト・システムテストといった複数プログラムを組み合わせて行うテストにて用いられることが多い技法です。

限界値分析と同値分割法を行う理由

限界値分析と同値分割法が一般的に組み合わせて使われることには理由があります。

仕様条件の境界付近は欠陥が潜む可能性が高いため、そこを効率良くテストするために、

  • 限界値分析
  • 同値分割法

この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