ソフトウェア開発では、開発のフェーズごとに目的の異なるテストが実施されます。今回は、その中から「受け入れテスト(UAT:User Acceptance Testing)」について、その目的や具体的な手法などをご紹介します。

受け入れテスト(UAT)とは?

受け入れテストは、ウォーターフォール型ソフトウェア開発のV字モデルで「要求分析」に対して行われるテストです。単体テスト、結合テスト、システムテストが終了した後に実施されます。
なお、V字モデルとは、ソフトウェアやシステムの開発において、開発、リリース、実装といった段階における開発工程とテスト工程の関係を表したモデルです。

V字モデル

要求分析は、顧客(発注元)を含むステークホルダーの要求・要望を元に作成されるため、「受け入れテスト」は一般的に、発注元が主体となって行われます。機能の正常系・異常系といった観点でのテストではなく、想定する業務シナリオが問題なく動作し、支障なく業務が遂行できるかという観点でテストを行います。

受け入れテスト(UAT)の具体的な内容

受け入れテストは、開発したソフトウェア・システムが実際の使用に耐えうるかを確認する最終段階のテストで、以下のような要点をおさえて実施します。

本番と同等のテスト環境、テストデータで行う

システムテスト以前の開発主導のテストは様々なデータを使って行いますが、実データは開発側に提供できない可能性が高く、受け入れテストの際に初めて実データでの動きを確認するというケースが少なくありません。システム・ソフトウェアは「実データ形式」で問題なく稼働するかどうかが最も重要となるため、受け入れテストで実データでの動きをしっかりと確認する必要があります。

ユーザー視点での業務シナリオをベースにテストを行う

受け入れテストでは主要機能の確認も行いますが、最も重視されるのは実際に想定される     シナリオに沿ったテストです。システムテストの段階でもシナリオテストが行われる場合があります。しかし、システムテストで実際のユースケースがすべて満たされているとは限らないため、受け入れテストの際にユースケースを網羅したテストケースを作成し、業務シナリオに沿った使用が問題なく行えることを確実に確認します。

社内外システム・サービスとの連携確認、旧システムとの互換性・移植性確認

社内、および社外のシステムやサービスとの連携動作、旧システムとの移植性・互換性などのテストは、システムテスト段階で行われます。しかし、システムテスト段階では実際に連携する対象との間での挙動確認がテストできないことも多く、その場合は受け入れテストでこれらの確認を行います。

受け入れテスト(UAT)の第三者検証

前述のとおり、受け入れテストは、顧客(発注元)が主体となって行うテストと定義されていますが、発注元が受け入れテスト体制をととのえられないケースも少なくありません。また、B to Cシステムの場合は、正式版をリリースする前に実施するβテストを行う場合を除き、エンドユーザーによる受け入れテストを行うこと自体が困難です。
そういった場合は、以下のような手段で受け入れテストを実施することが考えられます。

  • ベンダー側のシステムテストに受け入れテストを統合させる
  • 受け入れテストとして、ベンダー側に第三者検証の実施を要求する
  • 受け入れテストとして、第三者検証を外部に委託する

第三者検証とは、ソフトウェアやシステムを開発した人以外の第三者の視点から、対象となるシステムの検証や評価を行うことを指します。このように、受け入れテストは必ずしも発注元が自社内で対応しなければならないわけではありません。また、B to Cシステムの場合などは、第三者検証を行う人が使用者にヒアリングを行ったうえで、シナリオを作成してテストするといった形態も考えられます。    
仮に、受け入れテストを外部にアウトソーシングすることが難しい場合であっても、委託・派遣などで外部の第三者検証に長けた人材を自社内でのテストに参画させ、受け入れテストを実施するといった対応を検討すると良いでしょう。

受け入れテスト(UAT)におけるユーザビリティテストの扱い

受け入れテストでは、「機能としては正常だが、使用性を上げるために●●のように改修したほうが良い」といったユーザビリティ(目的のために正しく使えること。使い勝手)観点での要求があげられることがあります。しかし、システムテストを終えた後の最終段階で行われる受け入れテストの段階では、機能改修による影響が大きいと判断されて対応見送り(次回アップデート時に検討など)となることがよくあります。  

ユーザビリティと第三者検証
開発者視点では、ユーザビリティの観点に不足や漏れがでることがあります。そのような懸念の払しょくには、第三者によるユーザー視点でのテストが有効です。ユーザビリティを受け入れテスト段階で初めて確認するのではなく、各テストフェーズで第三者検証を行い使用性の問題を早めに発見することが、致命的なユーザビリティの問題をなくすには重要です。

安心してソフトウェア・システムをリリースするために

受け入れテストは、開発したソフトウェア・システムをリリース後に問題なく稼働させられるかを確認するとても重要なテストです。しかし、発注元では十分なテスト体制が取れない場合もあり、またユーザビリティの致命的な問題が受け入れテストで見つかると大きな手戻りが発生します。
受け入れテストを十分に行うため、また受け入れテスト段階で大きな不具合が初めて露呈するようなことをなくすために、各テストフェーズでソフトウェアテストに長けたテスト専門会社によるテストの検討をお勧めします。

SHARE

  • facebook
  • twitter

SQRIPTER

Sqripts編集部

記事一覧

Sqripts編集部がお役立ち情報を発信しています。

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST