単体テスト 何を確認する?

  • ホーム
  • 品質向上Blog
  • 単体テストの観点とは|漏れのない洗い出し・網羅性がポイント!

単体テストの観点とは|漏れのない洗い出し・網羅性がポイント!

ソフトウェアテスト

2021.12.27

今回は、単体テストにおけるテスト観点についてご紹介します。

まず「テスト観点とは何か?」を理解した上で、4つの要素と設定のポイントや観点一覧表について解説します。ソフトウェアテストを行う際には「効率性・網羅性」が重要です。

顧客の潜在ニーズ満たすために、「テスト観点の洗い出し方を知りたい」「単体テストの質を底上げしたい」という方は是非ご一読ください。

テスト観点とは

単体テスト 何を確認する?

テスト観点とは、ソフトウェアが正しく動作するために「どの部分に、どのようなテストを実施すべきか?」を定義するための多角的な視点・切り口をまとめたものです。

テスト設計における仕様書作成のフェーズにて、必要となる大切な要素を指します。

主なテスト観点の例は以下の通りです。

テスト観点の例

  • 画面が仕様通りに表示されているか
  • ボタンを押した際に正しい画面に遷移するか
  • 入力されたデータ形式や登録情報に誤りがないか など

高品質な製品・サービス提供を実現するためには、システム・機能ごとにリアルタイムの品質を検証するためのテスト観点が大切です。

万が一テスト観点が曖昧で、的確に設定されていない場合、顧客の要件定義・ニーズをクリアできず、テストの目的や方法にブレが生じ、品質低下による信用失墜や多大なる損害をもたらすリスクが高まります。

テストを行う際には必ず「網羅性の高いテスト観点」を的確にまとめておきましょう。

テスト観点の要素

単体テスト 何を確認する?

ソフトウェアテストは、製品・サービスの信頼性・品質確保のために重要な工程です。

上記を果たすためには、網羅性。効率性の高いテスト設計が重要となります。

そのため、テスト観点はそれらを実現する要素として、多角的な視点から洗い出していくことが必要です。また、テスト観点を考える際に、必要となる要素は以下のとおりです。

テスト観点の要素

  1. 機能要素
  2. 検証方法
  3. 入力条件
  4. 出力結果

これらの4つの要素を組み合わせながら、テスト観点は設定されます。

これから、各要素について順次解説します。

テスト観点の要素を正しく理解し、これらをベースにエンドユーザーに愛される製品・サービスの提供に繋げていきましょう。

まずは「機能要素」からご紹介します。

機能要素

テスト観点の要素1つ目は「機能要素」です。

テスト観点をまとめる上では「どのシステム・機能を検証する?」を明確にする部分です。

検証すべき機能・動作を要件定義書から洗い出していきます。
機能要素の具体的な例は以下のとおりです。

機能要素の例

  • 各ページの画面表示機能
  • ボタン選択時の画面遷移機能
  • 入力確認のアラート機能 など

検証方法

テスト観点の要素2つ目は「検証方法」です。

テスト観点においては、「(対象システム・機能に対し)どのようにテストするのか」を選定する部分にあたります。

それぞれの機能(動作)に対して、何を確認し、どのような検証補法を用いるのかが重要なポイントになります。

検証方法の例は以下のようです。

主な検証方法

  • 異常値テスト
  • 条件網羅テスト
  • ユーザビリティテスト
  • 互換性テスト など

入力条件

テスト観点の要素3つ目は「入力条件(テストパラメータ)」です。

テスト観点を考慮する上で、

  • テスト対象にどの値・イベントが入力・発生され得るのか
  • テスト対象に何をインプットするか

といった各種要素(条件)も必要になります。

入力条件として考えられる例は以下のとおりです。

入力条件の例

  • どんな数値が入力され得るか
  • 文字列の場合、大文字小文字の区別
  • 空文字・スペース・ゼロ・NULL
  • うるう年など、イレギュラーな年月日
  • (アプリケーションの場合)音楽が再生終了直前に曲送りするなどのイベント など

出力結果

テスト観点の要素4つ目は「出力結果」です。

テスト観点を考慮する上で、「テスト対象の出力結果として、何を観察すれば良いのか」という要素(結果)も必要になります。

これらをふまえた上で、出力条件として考えられる例は以下のようになります。

出力条件の例

  • 異常値が入力された場合、エラーメッセージが出るか
  • 文字化け、文字切れをしていないか
  • 入力を意図しない文字種の区別がなされているか
  • 動画・音声の同期にズレはないか

単体テスト観点を設定する時のポイント

単体テスト 何を確認する?

つぎは「単体テスト観点を設定する時のポイント」についてご紹介します。
テスト観点を設定する時のポイントは以下の2つに大別されます。

テスト観点を設定する時のポイント

  • テスト観点が明確であること
  • テスト観点の網羅性

ここからは、この2つのポイントについて、ご紹介します。

単体テストはプログラム作成後、最初に行われる検証作業です。

そのテスト観点は仕様書の質だけでなく、
「テスト全体の網羅性・効率性」及び品質の成否を左右します。

上記ポイントをおさえ、より細部まで単体テストをスムーズに進められるよう以下の内容をチェックしておきましょう。

単体テスト観点が明確であること

まず1つ目に重要なポイントは、「単体テスト観点が明確であること」です。

テスト観点を設定する担当者(=仕様書作成者)が必ずしもテストを行うわけではありません。
このように担当者が異なる場合には、なおさら「テスト観点の明確さ」が大切になります。

では、テスト観点をわかりやすくするためにはどうすることが望ましいのでしょうか?
テスト観点設定時には、以下のポイントを最低限おさえておくとスムーズです。

テスト観点をわかりやすくするためのポイント

  • 認識の相違を防ぐため、曖昧な表現・記載は避ける
  • テスト観点に注釈をつける
  • テスト観点のカテゴリー分けは正確に
  • 難易度の高い専門用語を使い過ぎない など

テスト観点・記載NG
NG例:空白の場合の動作を確認 (何が正解かわからない)
OK例:空白の場合○○というメッセージが表示されるか確認(正解な例が明確に記載されている)

単体テスト観点の網羅性

2つ目に重要なポイントは、「単体テスト観点の網羅性」です。
網羅性が重要な理由として

  • テスト設計・テスト実行の双方における、観点の漏れ防止
  • 単体テストだけでなくテスト工程全体の改善&網羅性向上に寄与
  • 多角的な視点で不具合検出が可能
  • 結果として、製品・サービスの品質向上に繋がる

さらに、テスト観点の漏れ・作業の属人化防止には以下が有効です。

  • デシジョンテーブルの活用(論理関係をJIS規格の表形式で整理)
  • 要件定義書の作成者・関係者とともに各種レビュー
  • テスト観点リストの作成・活用
  • マインドマップ活用(情報整理&可視化のダイアグラム)

単体テスト観点を設定する際には、テスト対象となる個々の機能について、これらのポイントを意識することが大切です。

これらを正しく把握し、網羅性・効率性のバランス良く、単体テストを設計・実行しましょう。

テスト観点一覧表

単体テスト 何を確認する?

最後に、前述の「単体テスト観点の網羅性」にて言及した、テスト観点一覧表を説明します。

テスト観点一覧表とは、「対象となる各機能のテスト観点をまとめた一覧表」を指します。

テスト観点一覧表は単体テストを整理するだけでなく、業務効率化にも役立ちます。
項目の段階ごとにテスト観点を俯瞰できるため、抜け漏れのない問題抽出を可能にします。

単体テスト 何を確認する?

テスト観点一覧表の項目:
一般的に、項目を「大項目/中項目/小項目」に分けることが多いです。
上の図のように一覧表を2要素ずつに分けて整理すると、見やすくなります。

  • 機能要素・出力結果(チェック対象・チェック内容)
  • 入力条件・検証方法(種類・因子・水準)

ソフトウェア開発には、当然ながらリリースまでの納期があります。効率的にテストケースを進行していくためには、「テスト観点に関する情報共有」が必須となります。

テストの設計・実行に際して、テスト観点を的確かつ、効率的に共有できるよう、本記事を参考に「テスト観点一覧表の活用」もご検討いただければ幸いです。

まとめ

いかがでしょうか?
今回は「単体テストのテスト観点」について、概要~テスト観点の要素(機能要素/検証方法/入力条件/出力結果)、テスト観点の設定&一覧表までご紹介しました。

本記事を通して、「効率的なテスト観点の洗い出し」「単体テスト観点の設定」について正しく理解し、テスト観点一覧表などの活用を視野に、網羅性の高い単体テストへの改善に繋げていただければ幸いです。本記事を最後までお読みいただき、ありがとうございました。

同じカテゴリーの記事

  • 単体テスト 何を確認する?

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

    2022.01.06

  • 単体テスト 何を確認する?

    テスト自動化で何ができる?|メリットやデメリット・自動化の注意点を解説!

    2022.01.06

  • 単体テスト 何を確認する?

    テスト計画書の役割・目的とは|記載すべき要件や漏れを防ぐポイントを紹介!

    2022.01.06

ソフトウェアテスト/テスト自動化を行うテクバンとは

  • 単体テスト 何を確認する?

    ヒアリングコンサルティング

    当社在籍のコンサルタントが徹底したヒアリングを実施。現状の課題や製品特性を洗い出します。お客様の問題解決・品質向上へ向け。効果的なサービスをご提案します。

  • 単体テスト 何を確認する?

    システム開発・アプリ導入インフラ環境設備

    要件定義に基づき、1,000名ほどのエンジニアから案件に合った最適な人員をアサインします。開発からアプリ導入、インフラ設備、品質保証まで全てお任せください。

  • 単体テスト 何を確認する?

    運用・サポート

    サービス導⼊後に発⽣するシステム運⽤やサポートなども、専⾨企業ならではの⾼いスキルで安定運⽤を実現。お客様企業にて運⽤が定着化するまでご⽀援いたします。

保有資格
  • Adobe Partner Connection リセラープログラム レジスタード
  • Cisco認定
    プレミアパートナー
  • Oracle PartnerNetwork SELL /
    LICENSE & HARDWARE
  • Microsoft Gold
    コンピテンシーパートナー
  • VMware Partner Connect Principal

  • ソフトウェアテストの内容が知りたい
  • テスト自動化の仕組みが知りたい
資料ダウンロードソフトウェアテストやテスト自動化の最新情報をダウンロードできます
PDF資料にて当社のサービスメニュー、当社ご紹介資料もございます 資料ダウンロードはこちら

単体テスト仕様書の目的は?

単体テストで正常が確認できたモジュールも複数結合させた場合に正常に動作するのか、想定外の状況でも要件定義した通りシステム要件が満たされているか、を検証するのが目的となっています。

単体テスト仕様書 何を書く?

単体テスト仕様書には下記のような内容を記載します。.
テスト対象となるプログラムの範囲や、テストを実施する環境.
テスト対象プログラムに対して、どのような手法でテストを行うか(例:ホワイトボックステストなのか、ブラックボックステストなのか).
テストを実施するための操作手順.
テスト項目一覧.
期待する結果や、実行後の結果.

Unitテストの目的は?

単体テスト(ユニットテストと呼ばれることもあります)は、プログラムを構成する比較的小さな単位(ユニット)が個々の機能を正しく果たしているかどうかを検証するテストです。 通常、関数やメソッドが単体テストの単位(ユニット)となります。

単体テストのデメリットは?

単体テストデメリット 単体テストは開発工数への負担が大きいことから、工数が十分に確保できずテストが省略されたり不完全なテスト実施になりがちです。 しかし、開発の後工程で不具合が見つかるほどその修正にかかる工数とスケジュールへの影響が甚大になることから、単体テストを実施することには大きなメリットがあります。