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

受け入れテストとは、ウォーターフォールモデルでのシステム開発の最終段階で、システムを実際の環境で使用して問題ないか確認するテストです。UAT(User Acceptance Test)とも呼ばれます。
機能的な部分だけでなく、業務シナリオに基づいた検証も行うため、開発者側ではなく発注者側が実施するケースが多いです。
受け入れテストが重要な理由
システムは、受け入れテストを通して以下のような内容をきちんと確認することで、初めて納品できます。
・ユーザーが求める要件を満たしているか
・迷わずに操作ができるか
・システム障害時に迅速に対応ができるか
中には仕様書にミスがあったり、開発期間中に利用環境が変わったりするケースもあります。
実際の利用環境で正常に動作しなければ、開発にかかった期間や費用が無駄になりますし、リリース後も不具合への対応で費用がかさむ可能性が高いです。
依頼者の視点で本当に良いシステムを納品するためには、受け入れテストを通して、実際の利用環境で問題なく機能するか・ユーザーが心地よく利用できるかなどを確認することが大切です。
受け入れテストと他のテストとの違い
システム開発の際にはたくさんの工程があるため「それぞれの工程の違いが分からない」と混乱される方も多いことでしょう。ここでは、受け入れテストと、混合されがちな他テストとの違いを紹介します。
受け入れテストと結合テスト
受け入れテスト | ・実際の利用環境でも正常に動作するかを確認する・ユーザーが迷わず操作できるかを確認する・ユーザーがテストを行う |
結合テスト | ・モジュール/プログラムを組み合わせ、意図した通りに動作するかを確認する・開発者側がテストを行う |
受け入れテストと結合テストの大きな違いは、実施する目的です。
結合テストでは「1つ1つのプログラム/モジュールを組み合わせた時に正しく動作するか」を確認するのに対して、受け入れテストは「実際の利用環境に実装した時に正しく動作するか」を確認します。
受け入れテストとシステムテスト
受け入れテスト | ・実際の利用環境でも正常に動作するかを確認する・ユーザーが迷わず操作できるかを確認する・ユーザーがテストを行う |
システムテスト | ・開発当初の要件を満たせているかを確認する・開発者側がテストを行う |
受け入れテストとシステムテストの大きな違いは、視点です。
システムテストでは、SEが開発者の視点で当初の要件を振り返り「ユーザーが求める条件を満たす機能を搭載できているか」を確認するのに対して、受け入れテストはユーザーの視点から「正常かつ心地よく操作できるか」を確認します。
受け入れテストの流れ
ここからは、受け入れテストを進めていく際の流れを紹介します。
1. 目的・方法・スケジュールなどの計画立案
最初に、テストを実施する目的を定めて、目的に即したテストの全体計画を立てていきます。
受け入れテストは、大きく分けると機能適合テスト・性能効率性テスト・互換性テスト・ユーザビリティテスト・信頼性テスト・セキュリティテストの6種類。
前のテストレベルで完了している項目・内容も中にはありますが、業務的な観点やユーザーの視点で確認を行う必要があれば受け入れテストの実施項目に盛り込んでいきます。
テストタイプ | 概要 |
---|---|
機能適合テスト | 実装された機能が、開発前の要件定義/顧客のニーズを満たしているかを確認するテスト |
性能効率性テスト | アクセス数・利用者数・データ量を予想した結果、性能上問題なく運用できるかを確認するテスト |
互換性テスト | 他の製品/システムとの機能の連携・共有ができるかや、連携時にシステムへ影響が出ないかを確認するテスト |
ユーザビリティテスト | ユーザーが迷わず操作できるかを確認するテスト |
信頼性テスト | システム異常時に迅速に復旧できるかなどを含め、効果的に保守が行えるかを確認するテスト |
セキュリティテスト | 運用者とユーザーが安全に利用できるセキュリティ対策が施されているかを確認するテスト |
2. テスト環境の構築
計画立案が完了したら、作成した計画書・仕様書をもとにテスト環境を用意します。あわせて、参加者・テストに使用する端末・実施場所などについても、事前に確認します。
テスト参加者を選定する際は、実際に該当業務を行なっている方を選出しましょう。
受け入れテストは実際の利用環境で業務を行う際に不具合が発生しないかを確認するテストなので、業務内容が分からない方が参加すると、テストの意味がなくなってしまいます。
3. テストの実施
環境の用意ができたら、受け入れテストを実施します。
受け入れテストを実施する際は、作成したスケジュールを活用してテスト状況を管理します。検証結果が分かりやすいよう、一覧にまとめられていることが多いです。
トラブルが発生した場合は開発側が修正し、再度受け入れテストを実施します。テストを繰り返し、要件をクリアできれば納品完了です。
受け入れテストを行う際のポイント
受け入れテストを行う際に抑えておくべきポイントは、3つあります。主にリスク管理の視点ですが、受け入れテストをスムーズに完了させるために大切なことです。
ここからは、受け入れテストを行う際のポイントを詳しく見ていきましょう。
重要な機能を優先的にテストすること
1つめは、主に行う業務をいくつかリストアップし、優先度が高いところからテストに取り組んでいくことです。
特に業務効率化のために開発しているシステムだと、早く実装をする必要があるため、タイトな開発スケジュールであることが多いです。
全ての機能をテストできることが理想ではありますが、実際には難しいケースも多いため、特に重要な機能をいくつかリストアップし、優先的に取り組むようにしましょう。
仕様変更した箇所は優先的にテストすること
2つめは、受け入れテスト内で仕様変更を行なった場合に、修正箇所と連携する機能の挙動を優先的に確認することです。
開発途中で仕様変更を行なった場合、開発者の意識が修正箇所に強く向き、その周辺機能への対策に抜け漏れが出てしまうことがあります。
受け入れテストの前後に仕様変更があった場合は、その周辺機能の挙動に不具合が発生していないか、優先的に確認すると良いでしょう。
実環境と実データでテストすること
3つめは、実環境・実データを揃えてテストをすることです。
実際の利用環境とデータを揃えてテストを行うことで、開発中には気づかなかった不具合が発覚するケースも多いです。
システム開発中に使われる擬似データは本番のデータとは少し異なり、データ量が少ないことも多いです。
実際の利用環境に実装すると、データの特性が異なることで不具合が発生したり、データ量が多く処理落ちししたりする可能性があります。
このようなトラブルを避けるためにも、受け入れテストの際は、実際の利用環境とデータを揃え、実施することが大切です。
システム開発時は、必ず受け入れテストを行いましょう
ここまで、システム開発の際に行う「受け入れテスト」の重要性や実施の流れについて紹介してきました。
システム開発で重要なことは、画面のデザインやコーディングだけではありません。
「実際の利用環境・実データで運用した際も不具合が発生しないか」「ユーザーが迷わず操作することができるか」まできちんと確認することが、良いシステムを開発する上で非常に大切なことです。
しかし、こういったテストも含めた開発費用は決して安くはありませんので「安心して依頼できる、できるだけ安価な企業に依頼したい」というお声もよく伺います。
弊社BLUEWIND ASIAなら、オフショア開発により、安価にシステム開発を行うことが可能です。日本の大手企業さまとのお取引実績も50件以上あるため、信頼度も高いと好評をいただいております。
一般的に、オフショア開発では「海外人材が窓口になので細かなコミュニケーションを取りにくい」などの問題も散見されますが、弊社では必ず窓口に日本人の担当者を配置しておりますので、
「オフショア開発においてネックになる言語・文化の障壁なく、さらに国内で開発を行うよりも安価にプロジェクトを進行できる」と高い評価をいただいております。
自社の体制にオフショア開発は向いているか?予算や納期の目安は?など、小さなことからでも構いません。
日本人スタッフが丁寧にお話しを伺いますので、まずはお気軽にお問い合わせください。