
【QA】テスト観点の出し方
システム開発における評価・検証は、避けることのできないバグや不具合を市場に流通する前に可能な限り取り除くことのできる重要な工程です。
またテスト観点が明確なテストケースは実施者ごとの評価精度のブレを防ぎ、不具合の発見率を高めることができます。
しかしこの工程を最大限活かすには"なぜそのテストをするのか”、”そのテストで何を確認したいのか”という観点を正確かつ明確に定めていなければなりません。
テスト観点の洗い出しが不十分なまま重大な不具合を見逃してしまうことで機会損失や信用を失うなど、多くのリスクを生んでしまう恐れがあります。
1. テスト観点とは
そもそもどういうものがテスト観点と言えるのか。
それは特定の機能を評価する上で有効なシチュエーションや方法を洗い出したものになります。
例えば
・テキストボックスで入力可能な文字数を確認する
・同期中にネットワークが切断された時のエラーメッセージの内容を確認する
・非活性状態のボタンをクリックした際に何も反応が無いことを確認する
上記の太字になっている部分がテスト観点として主に注視される部分となります。
2. テスト観点に必要な理解
前述した通り、開発工程の中で事前に不具合を発見するにはテストにおける観点を明確に定める必要があります。
その為には対象となるシステムについて
・どのような要件が定義されているか
・どのような仕様で設計されているか
という点を理解していなければなりません。
2-1. どのような要件が定義されているか
開発されているシステムには必ず「実現したい機能」という目標が設定されており、完成したシステムはその要件を満たしていることが前提となります。
例えば何かしらのエラーメッセージを表示する機能も、いつどのように通知するかという意図が必ずあります。
仮に一見不都合が無さそうなエラーメッセージも実は意図した通知とは異なる、という場合もあり得ます。
評価工程でそれらを見逃さず、目標となる機能を実現できていることを保証する為にはシステム要件を正しく理解している必要があります。
2-2. どのような仕様で設計されているか
評価・検証において機能が正常に動作することを保証したり不具合を発見することの精度を高めるにはどれだけテストケースを網羅できるかが重要です。
そしてテストケースを網羅していくにはシステムの仕様を理解している必要があります。
例えば起動シーケンスに3つのフェーズが存在するシステムに対し、「起動中に特定の操作を行う」というテスト観点を出すうえでただ「起動中」とするか「起動中かつ〇〇のタイミング」とするかでは大きく粒度が異なってきます。
同じ起動中でも3つの内2つのフェーズでは問題ないがある1つのフェーズで操作するとNGになるという場合、実施者によって結果にブレが生じたり不具合を見逃す恐れがあります。
3. テスト観点を出すための要素
テスト観点を洗い出すための考え方には大きく4つの要素が存在します。
・機能要素
システムに対して評価すべき機能を分類化する要素です。
例えば画面の表示や遷移、入力時の確認アラート、機器の接続確認など、システムの機能ごとに評価する軸を明確にしていきます。
・検証方法
システムにどのような状態、特性を与えるかという要素です。
正常値や異常操作、長時間の放置、複数機能の組み合わせ、互換性やユーザビリティなど、システムの各機能が動作する上で様々な視点でのシチュエーションを網羅していきます。
・入力条件
システムに対してどのようなパラメータを与えるかという要素です。
テキストボックスに対する大文字小文字やスペース、null、メモリがフルの状態や音楽再生時に特定のタイミングで曲送り操作など、入力された値やイベントがシステムにどのような影響を与えるかを考慮していきます。
・出力結果
システムに対して観察すべきポイントを明確にする要素です。
文字化けなどの表示の乱れ、異常値を通知するエラーメッセージ、音声や動画の同期ズレ、想定していない文字種の区別、その他仕様に沿った挙動をしているかなど様々な条件、操作を踏まえたうえでシステムがどう振る舞うのかを想定します。
必ず4つのどれかに区分されるという明確なカテゴライズではありませんが、観点出しをする際の視点として参考となるモデルと言えます。
4. テスト観点の出し方
先述した4つの要素はあくまで観点出しをする上での考え方になります。
実際にテスト観点をまとめていくにはこれらに基づいてリスト化していくのが最も有効な方法です。
例として以下の様なUIで構成された会員登録画面を参考に解説していきます。
4-1. 画面例
上記画面の要件・仕様は以下の通り
■要件
・新規会員登録ができる
・全ての欄で入力が必須
・入力内容にエラーがある場合はユーザーにエラー個所を明示して修正を促す
・戻るボタンを押したら入力済みの情報は破棄
■仕様
5. まとめ
以上、テスト観点の網羅ノウハウについてまとめました。
テスト観点の網羅は評価工程の初期段階でありながらその後の評価粒度を左右する重要なフェーズです。
システムの要件や仕様を把握し、様々な方向から検証パターンを洗い出さなくてはいけません。
リスト化等を行うことで抜け漏れの無くテスト観点を整理できるよう心掛けていきましょう。