今回は、単体テストにおけるテスト観点についてご紹介します。
まず「テスト観点とは何か?」を理解した上で、4つの要素と設定のポイントや観点一覧表について解説します。ソフトウェアテストを行う際には「効率性・網羅性」が重要です。
顧客の潜在ニーズ満たすために、「テスト観点の洗い出し方を知りたい」「単体テストの質を底上げしたい」という方は是非ご一読ください。
テスト仕様書・計画書作成の方法やガイドをまとめた資料はこちら。 巻末に項目のサンプルも用意しています。
テスト観点とは
テスト観点とは、ソフトウェアが正しく動作するために「どの部分に、どのようなテストを実施すべきか?」を定義するための多角的な視点・切り口をまとめたものです。
テスト設計における仕様書作成のフェーズにて、必要となる大切な要素を指します。
主なテスト観点の例は以下の通りです。
テスト観点の例
- 画面が仕様通りに表示されているか
- ボタンを押した際に正しい画面に遷移するか
- 入力されたデータ形式や登録情報に誤りがないか など
高品質な製品・サービス提供を実現するためには、システム・機能ごとにリアルタイムの品質を検証するためのテスト観点が大切です。
万が一テスト観点が曖昧で、的確に設定されていない場合、顧客の要件定義・ニーズをクリアできず、テストの目的や方法にブレが生じ、品質低下による信用失墜や多大なる損害をもたらすリスクが高まります。
テストを行う際には必ず「網羅性の高いテスト観点」を的確にまとめておきましょう。
テスト観点の要素
ソフトウェアテストは、製品・サービスの信頼性・品質確保のために重要な工程です。
上記を果たすためには、網羅性。効率性の高いテスト設計が重要となります。
そのため、テスト観点はそれらを実現する要素として、多角的な視点から洗い出していくことが必要です。また、テスト観点を考える際に、必要となる要素は以下のとおりです。
テスト観点の要素
- 機能要素
- 検証方法
- 入力条件
- 出力結果
これらの4つの要素を組み合わせながら、テスト観点は設定されます。
これから、各要素について順次解説します。
テスト観点の要素を正しく理解し、これらをベースにエンドユーザーに愛される製品・サービスの提供に繋げていきましょう。
まずは「機能要素」からご紹介します。
機能要素
テスト観点の要素1つ目は「機能要素」です。
テスト観点をまとめる上では「どのシステム・機能を検証する?」を明確にする部分です。
検証すべき機能・動作を要件定義書から洗い出していきます。
機能要素の具体的な例は以下のとおりです。
機能要素の例
- 各ページの画面表示機能
- ボタン選択時の画面遷移機能
- 入力確認のアラート機能 など
検証方法
テスト観点の要素2つ目は「検証方法」です。
テスト観点においては、「(対象システム・機能に対し)どのようにテストするのか」を選定する部分にあたります。
それぞれの機能(動作)に対して、何を確認し、どのような検証補法を用いるのかが重要なポイントになります。
検証方法の例は以下のようです。
主な検証方法
- 異常値テスト
- 条件網羅テスト
- ユーザビリティテスト
- 互換性テスト など
入力条件
テスト観点の要素3つ目は「入力条件(テストパラメータ)」です。
テスト観点を考慮する上で、
- テスト対象にどの値・イベントが入力・発生され得るのか
- テスト対象に何をインプットするか
といった各種要素(条件)も必要になります。
入力条件として考えられる例は以下のとおりです。
入力条件の例
- どんな数値が入力され得るか
- 文字列の場合、大文字小文字の区別
- 空文字・スペース・ゼロ・NULL
- うるう年など、イレギュラーな年月日
- (アプリケーションの場合)音楽が再生終了直前に曲送りするなどのイベント など
出力結果
テスト観点の要素4つ目は「出力結果」です。
テスト観点を考慮する上で、「テスト対象の出力結果として、何を観察すれば良いのか」という要素(結果)も必要になります。
これらをふまえた上で、出力条件として考えられる例は以下のようになります。
出力条件の例
- 異常値が入力された場合、エラーメッセージが出るか
- 文字化け、文字切れをしていないか
- 入力を意図しない文字種の区別がなされているか
- 動画・音声の同期にズレはないか
単体テスト観点を設定する時のポイント
つぎは「単体テスト観点を設定する時のポイント」についてご紹介します。
テスト観点を設定する時のポイントは以下の2つに大別されます。
テスト観点を設定する時のポイント
- テスト観点が明確であること
- テスト観点の網羅性
ここからは、この2つのポイントについて、ご紹介します。
単体テストはプログラム作成後、最初に行われる検証作業です。
そのテスト観点は仕様書の質だけでなく、
「テスト全体の網羅性・効率性」及び品質の成否を左右します。
上記ポイントをおさえ、より細部まで単体テストをスムーズに進められるよう以下の内容をチェックしておきましょう。
単体テスト観点が明確であること
まず1つ目に重要なポイントは、「単体テスト観点が明確であること」です。
テスト観点を設定する担当者(=仕様書作成者)が必ずしもテストを行うわけではありません。
このように担当者が異なる場合には、なおさら「テスト観点の明確さ」が大切になります。
では、テスト観点をわかりやすくするためにはどうすることが望ましいのでしょうか?
テスト観点設定時には、以下のポイントを最低限おさえておくとスムーズです。
テスト観点をわかりやすくするためのポイント
- 認識の相違を防ぐため、曖昧な表現・記載は避ける
- テスト観点に注釈をつける
- テスト観点のカテゴリー分けは正確に
- 難易度の高い専門用語を使い過ぎない など
テスト観点・記載NG例
NG例:空白の場合の動作を確認 (何が正解かわからない)
OK例:空白の場合○○というメッセージが表示されるか確認(正解な例が明確に記載されている)
単体テスト観点の網羅性
テスト観点一覧表
最後に、前述の「単体テスト観点の網羅性」にて言及した、テスト観点一覧表を説明します。
テスト観点一覧表とは、「対象となる各機能のテスト観点をまとめた一覧表」を指します。
テスト観点一覧表は単体テストを整理するだけでなく、業務効率化にも役立ちます。
項目の段階ごとにテスト観点を俯瞰できるため、抜け漏れのない問題抽出を可能にします。
テスト観点一覧表の項目:
一般的に、項目を「大項目/中項目/小項目」に分けることが多いです。
上の図のように一覧表を2要素ずつに分けて整理すると、見やすくなります。
- 機能要素・出力結果(チェック対象・チェック内容)
- 入力条件・検証方法(種類・因子・水準)
ソフトウェア開発には、当然ながらリリースまでの納期があります。効率的にテストケースを進行していくためには、「テスト観点に関する情報共有」が必須となります。
テストの設計・実行に際して、テスト観点を的確かつ、効率的に共有できるよう、本記事を参考に「テスト観点一覧表の活用」もご検討いただければ幸いです。
まとめ
いかがでしょうか?
今回は「単体テストのテスト観点」について、概要~テスト観点の要素(機能要素/検証方法/入力条件/出力結果)、テスト観点の設定&一覧表までご紹介しました。
本記事を通して、「効率的なテスト観点の洗い出し」「単体テスト観点の設定」について正しく理解し、テスト観点一覧表などの活用を視野に、網羅性の高い単体テストへの改善に繋げていただければ幸いです。本記事を最後までお読みいただき、ありがとうございました。