最終更新日: 2023年11月15日

テスト技法は、ソフトウェアテストのテストケースを作成したり選択したりするための技法です。テスト技法を使うことでソフトウェアテストの品質を高め、必要なテストケースをスピーディーに作成できます。予算や納期が限られた中でテストを成功させるには、適切にテスト技法を選択・活用する必要があるのです。

この記事ではテスト技法の概要や、テスト技法の主な種類について解説します。その上で、テスト技法ツールについてもご紹介いたしますので、参考にしていただければ幸いです。

テスト技法とは

テスト技法とは、ソフトウェアテストに欠かせないテストケース・テストデータ・テスト条件を効率よく作成するためのノウハウです。テスト技法には多くの種類があり、状況に合わせて適切なノウハウが利用されます。

ソフトウェアテストを行う上で、考え得る全てのパターンをテストケースに落とし込み、実行できれば理想的ではあります。しかし、全パターンを網羅するほど膨大な数のテストケースを、限られた予算のなかで作成、実行するのは現実的ではありません。

仮に全てのパターンに対するテストケースを作成したとしても、ほとんど起こり得ないパターンも存在します。全パターンのテストケースを網羅しようとすれば、貴重な工数や時間を浪費することにもなりえるのです。

そうした中で、より「ベターな」かたちで効率的にテストケースを準備するためにテスト技法を活用します。複数のテスト技法を駆使してテストケースを準備し、それぞれのテスト技法のお互いに足りない部分を補い合うといった例も少なくありません。

テスト技法の種類

テスト技法の種類は、大きく分けて下記の3つに分類されます。

・ブラックボックステスト技法
・ホワイトボックステスト技法
・経験ベースのテスト技法

以下、それぞれの概要と、各種類に含まれるテスト技法について見ていきましょう。

ブラックボックステスト技法(仕様ベースのテスト技法)

内部の構造が確認できないものを、一般的に「ブラックボックス」と呼びます。その上でブラックボックステスト技法とは、内部構造を考慮せず、実装された振る舞いを確認するためのテスト技法です。JSTQBの用語集には、「コンポーネントやシステムの仕様の分析に基づくテスト技法のひとつ。」とあります。

仕様を前提としたテストであることから、「仕様ベースのテスト技法」とも言われます。ブラックボックステストは内部構造を理解していなくても実行でき、開発者以外の第三者が行うのが一般的です。

ブラックボックステスト技法の例として、以下の種類が挙げられます。

【ブラックボックステスト技法の例】

テスト技法概要
同値分割法正常に処理できる「有効同値」と、エラーとなる「無効同値」を使い、テストケースを設計する技法。最低一回、各同値領域を実行するように設計するのが原則。
境界値分析同値クラスの境界に注目し、境界値を基にしてテストケースを設計する技法。

※境界値とは、同値分割した領域の端、あるいは端のどちらか側で最小の増加的距離にある入力値または出力値のこと。
状態遷移テスト状態遷移モデルをもとに、テストケースを設計する技法。
ユースケーステストユーザーシナリオを実行するテストケースを設計する技法。
オールペア法
(ペアワイズ法)
複数の入力変数(パラメータ)が相互に影響を及ぼす場合に有効なテスト手法。
各入力変数の異なる値の組み合わせから、すべてのペア(2つの入力変数の組み合わせ)を網羅的に選択してテストケースを作成する。テストケース数を削減しつつ、重要な組み合わせをカバーすることができる。

大部分のバグは1つ、もしくは2つの因子が組み合わさることで発生するという経験則に基づいている。
クラシフィケーションツリー法入力条件をグラフィカルなツリー形式の図にまとめ、テストケースを作成する技法。入力条件を漏れなく整理しテストカバレッジを高めたい場合に有効。
CFD法テストの入力条件と出力結果の関係性を、専用の図式でグラフィカルにまとめる。その上でデシジョンテーブルとテストケースを作成するテスト技法。仕様の論理関係が複雑な場合に、漏れなくテストケースを作成したいときに適している。

【関連記事】ブラックボックステストとは?テスト技法をわかりやすく解説

<ゲームテスト現場のこぼれ話(ブラックボックステスト技法)>
・同値分割法/境界値分析

境界値分析で、「日付を跨ぐ」境界値にてテストをすることがあります。この場合の境界値は本来、ゲーム側で設定している日跨ぎの時間 (たとえば4時更新の場合に、3時59分と4時00分)です。しかし、実際の日付の境界値(23時59分と0時00分)に誤って設定されていないか懸念されるので、両方でテストをすることがあります。

ホワイトボックステスト技法(構造ベースのテスト技法)

ホワイトボックステスト技法とは、コンポーネントやシステムの内部構造の分析を基にテストケースを設計、選択する手順のことを指します。ホワイトボックステストは、内部構造を理解した開発者によって行われます。

ホワイトボックステストテスト技法の例は以下の通りです。

【ホワイトボックステストの種類】

テスト技法概要
ステートメントテストコード内の実行可能なステートメントをテストすること。実行されたステートメント数を、テスト対象の実行可能なステートメントの合計数で除算することによって、カバレッジを計測する。実行可能な命令文をすべてテストした場合に100%のカバレッジとなり、これらのカバレッジ指標を用いて、ソフトウェアの品質を評価することができる。
デシジョンテストコード内の判定をテストし、実行したコードを判定結果に基づいて評価する手法。このために、テストケースは、判定ポイントを通る制御フローに従う。条件文や分岐は、プログラムの制御フローを変更するための重要な要素であり、正しく動作しないとバグやエラーの原因となることがある。デシジョンテストは、これらの条件分岐の網羅性を高めることにより、プログラムの品質を向上させることを目指す。カバレッジは、テストにより実行した判定結果の数をテスト対象の判定結果の合計数で除算して計測する。

【関連記事】ホワイトボックステストとは?ブラックボックステストとの違いやテスト技法について解説

経験ベースのテスト技法

経験ベースのテスト技法とは、文字通りテスト担当者の経験に頼ったテスト技法です。経験ベースのテスト技法では、テスト担当者が過去の経験から習得した知見や直感、技術などを駆使してテストを行います。

経験ベースのテスト技法は、仕様や設定を見るだけでは難しいテストケースを作成できることがある点はメリットです。一方でこの技法によるテストの品質は、担当者の熟練度によってばらつきがある点はデメリットと言えます。

経験ベースのテスト技法に含まれるテスト技法は以下の通りです。

【経験ベースのテスト技法の種類】

テスト技法概要
探索的テストあらかじめテストケースを用意せず、テストを実施する中でテスト対象の理解を含め、手探りでテストをする技法。手探りといっても場当たり的なわけではなく、テストの目的やテストチャーター※を用意して実行することが多い。

※テストの目的を完了できたと判断するための指針
エラー推測テスト担当者が自身の経験や知識を基に、エラーが発生しそうな箇所を推測しテストケースを作成・実行する技法。

【参考記事】探索的テストとは?他のテストとの違いやメリット・デメリットについて理解しよう

<ゲームテスト現場のこぼれ話(経験ベースのテスト)>
・エラー推測について(1)
一般的には「ゲームの演出中は操作が効かない」という先入観があります。けれど、実際は「演出中に操作が行えてしまう」不具合も多く、演出中に画面遷移できてしまうといったことも少なくありません。開発時に操作を無効にする処理を入れ忘れていることが多いようです。エラー推測によるテストでは、この点を考慮して演出中に操作できるか確認しています。

・エラー推測について(2)
何かの処理が実行中に、別の操作をすることで不具合が発生することが多いです。たとえば画面をタップし会話パートが始まる前に、画面遷移を行おうとしたとします。そうすると画面遷移は行われるものの、遷移後の画面で操作が効かず進行不能になったりするのです。

テスト技法の選び方

テスト技法は、以下に挙げるような様々な条件を考慮して選ぶ必要があります。

・ 求められるテストに適しているか(状態遷移のテストが必要か、条件の組合せのテストが必要かなど)
・ 対象となるソフトウェアの複雑さ
・ 想定されるバグの種類
・ 入手可能なドキュメントなどの情報
・ スケジュールや予算
・ 利用可能なツール(ツールによって選べるテスト技法が異なる)
・ どこまでテストする必要があるか、どのくらい品質リスクを抑える必要があるか(どのくらい条件を網羅する必要があるか)
・ テスト担当者のスキルや経験値(経験豊富な担当者がいれば、経験ベースのテスト技法を選択できるなど)

また必要に応じて、複数のテスト技法を組み合わせて使うことも検討します。テスト技法にはそれぞれ向き・不向きがあり、組み合わせることによって補完し合えるためです。

テスト技法ツールの概要

テスト技法ツールとは、各種テスト技法を使い直感的・効率的にテストケースを作成するためのツールです。たとえば状態遷移テストに対応したツールでは、状態遷移図をもとに必要なテストケースを自動生成することが可能です。

テスト技法ツールによって、対応するテスト技法や使い勝手に違いがあるので、自社に適したツールを選びましょう。以下、特によく使われているテスト技法ツールを2つご紹介します。

GIHOZ(ギホーズ)

GIHOZはオールペア法・デシジョンテーブルテスト・状態遷移テストなど様々な種類のテスト技法に対応した、クラウド型のテスト技法ツールです。テスト技法ごとに適したユーザーインターフェースが用意されており、直感的な操作でスピーディーにテストケースを作成できます。条件の組み合わせの自動生成や、状態遷移図などのモデル図からのテストケースの自動生成を瞬時に行うことができます。テスト観点の整理・分析もサポートしており、テスト技法を選ぶ前に、どのようなテストを行うかを分析することも可能です。

GIHOZ公式サイト

Qumias Plus (クミアス プラス)

Qumias Plusはオールペア法(ペアワイズ法)を使い、組み合わせテスト用のテストケースを瞬時に作成できるテスト技法ツールです。
組み合わせテストとは、複数の条件を組み合わせて行うテストを指します。しかし条件が多ければ、その組み合わせの数が膨大化し、その全てをテストするのは現実的ではありません。Qumias Plusを使えば、ドラッグ&ドロップの簡単な操作によってテストケースを自動生成できます。

Qumias Plus公式サイト

まとめ

テスト技法とは、テストケースなどを効率的に作成するための技法です。テスト技法はブラックボックステスト・ホワイトボックステスト・経験ベースのテスト技法という3種類に分類されます。さらにその3種類のなかに多くのテスト技法が含まれており、代表的な技法については特徴を把握しておきたいところです。

ソフトウェアテストの品質や効率を高めるためには、適切なテスト技法を選び活用することが求められます。テスト技法は、必要なテストの内容に適しているか、担当者のスキル、予算などさまざまな観点をもとに選びましょう。

テスト技法を使う際は、テスト技法によるテストケース作成を支援するテスト技法ツールが使われます。テスト技法に合ったテスト技法ツールが使えるかどうかも、テスト技法を選ぶ際の重要なポイントです。

ただし、特定のテスト技法を使えばテストが完璧にできるというわけではありません。全数テストに比べると、テスト技法は極端に言えば「妥協案」とも言えます。むしろその妥協によって取り除かれた部分をしっかり分析し、必要に応じて更に異なる技法でのテストや探索的テストにて補うことが必要です。

【参考文献】テスト技術者資格制度 Foundation Level シラバス