BEETLE ツール一覧 テスト技法カタログ
REFERENCE

テスト技法カタログ

「テストケース、勘で書いてない?」
代表的なテスト設計技法を、なに・例・使いどころ つきでまとめたよ。

入力値の設計技法 振る舞い・組合せの技法 経験ベースの技法 そのほかの技法

テストケースは数を増やせばいいわけじゃない。少ない手数で抜けなく確認するために、先人が整理した「型」がテスト技法です。代表的なものを実務で使う粒度でまとめました。

入力値の設計技法

「どの値を入れて試すか」を絞り込む
同値分割入力設計
なに同じ結果になる入力値をグループ(同値クラス)にまとめ、各グループから代表1つだけ試す。全部試さず網羅する考え方。
年齢 0–17=不可 / 18–64=可 / 65–=割引
→ 各帯から1つ(例 10・30・70)試せば十分
使う時入力に「範囲」や「区分」があるとき。まず最初に切る基本技法。
境界値分析入力設計
なにバグは境目で起きやすい。同値クラスの「境界のすぐ内側・ちょうど・すぐ外側」を狙って試す。
上限100文字なら 99 / 100 / 101 を試す
0以上なら -1 / 0 / 1
使う時文字数・金額・日付・件数など上下限のある入力。同値分割とセットで使う。
デシジョンテーブル入力設計
なに複数の条件の組合せと、それぞれに対する結果を表で整理する。条件分岐の抜け漏れを可視化できる。
会員? × クーポン有? × 5千円以上?
→ 2×2×2=8通りの「送料/割引」を表で確認
使う時「○○かつ△△のとき□□」のような条件が絡み合う仕様。料金・権限・割引判定など。

振る舞い・組合せの技法

状態の流れや、爆発する組合せを扱う
状態遷移テスト振る舞い
なに「状態」と「状態が変わるきっかけ」を図にして、正しい遷移・あり得ない遷移を確認する。
注文: 受付→発送→完了
「完了」から「キャンセル」できてしまわないか試す
使う時ステータスを持つ機能。注文・申請・予約・ログイン状態など。
ペアワイズ(全ペア)組合せ
なに全組合せは多すぎるとき、「どの2項目のペアも1度は登場する」最小セットに絞る。多くの不具合は2要素の組合せで出るという経験則が前提。
OS3×ブラウザ3×権限3=27通り
→ ペアワイズなら約9通りに圧縮
使う時環境・設定の組合せが爆発するとき。動作環境テストの定番。
直交表組合せ
なに各要素が均等に組み合わさるよう設計された表を使い、少ない件数で組合せを網羅する。ペアワイズの数学的な土台。
L8・L9 などの直交表に項目を割り付け
→ ツールで自動生成するのが現実的
使う時組合せを厳密に絞りたいとき。考え方はペアワイズと近い。

経験ベースの技法

型だけでは拾えないバグを、人の勘で拾う
エラー推測経験ベース
なに「ここ怪しいな」という経験則からバグの出そうな入力・操作を狙い撃ちする。過去のバグ傾向が武器になる。
空入力 / 0 / 全角 / 絵文字 / 連打 /
戻るボタン / 通信断 を意図的に試す
使う時正攻法のケースを作った後の上乗せに。異常系の発想源。
探索的テスト経験ベース
なに事前の台本に縛られず、操作しながら気づいた点をその場で掘り下げる。設計と実行を同時に行う。
30分・対象「カート機能」と決めて
自由に触り、見つけた違和感を記録
使う時仕様が固まりきらない時期や、ケースで縛りすぎたくない機能。
シナリオ(ユースケース)テスト経験ベース
なに実際のユーザーの一連の行動に沿って通しで確認する。単体では問題なくても流れで壊れる不具合を拾う。
登録→ログイン→購入→キャンセル→
再購入 を一連で操作して整合性を確認
使う時結合〜システムテスト。機能をまたぐ業務フローの確認に。

そのほかの技法・考え方

条件の整理や、網羅とは別アプローチ
分類木法条件整理
なにテスト対象を「観点 → 区分」と木構造で分解し、何をどの値で試すかを枝で整理する技法。
会員種別[一般/プレミアム] ×
支払方法[カード/コンビニ/後払い]
使う時観点が多く、何と何を掛け合わせるか頭の中がこんがらがるとき。
原因結果グラフ条件整理
なに入力(原因)と出力(結果)の論理関係を図にし、そこからデシジョンテーブルを導く技法。
「会員 かつ 在庫あり」なら購入可
のAND/OR関係を図で整理
使う時条件の論理が複雑で、表だけでは関係が見えにくいとき。
ドメイン分析入力設計
なに複数の変数が絡む条件で、境界値分析を多次元に拡張して効率よく値を選ぶ技法。
「数量×単価が一定額以上で送料無料」
の境界の組合せを狙う
使う時複数の入力が同時に効く境界条件を、もれなく押さえたいとき。
ランダムテスト / ファジング経験ベース
なにでたらめな大量の入力を機械的に流し込み、想定外のクラッシュや例外を炙り出す技法。
巨大文字列・制御文字・壊れたファイル
を自動生成して投入
使う時入力を受け取る境界(フォーム・API・パーサ)の頑丈さを確かめたいとき。

テスト設計に迷ったときの引き出しとして、代表的な技法を実務で使う粒度でまとめています。

具体的な観点やパターンが知りたいときは TESTパターン集 もあわせてどうぞ。

QA支援サービスについては → BEETLE合同会社トップ