受け入れテストとは?実施方法・確認するべきポイント・注意点を解説
COLUMN
最終更新日:2023年06月05日 / 投稿日:2022年10月27日
システム・ソフトウェア開発において、品質を担保するためのテスト実施は必須です。テストには段階や確認対象によってもさまざまな種類・レベルがあり、その中でも最終段階で必要となるのが「受け入れテスト」です。
受け入れテストは、ほかのテストと異なり、システム開発側で行うものではありません。そのため、受け入れテストの概要や実施方法、確認されるポイントについて詳しく把握している人も少ないのではないでしょうか。
そこで今回は、受け入れテストの概要や重要性から、実施方法、確認するべきポイント・注意点までを詳しく説明します。システム開発の現場で働いている人はもちろん、受け入れテストを担当する人もぜひ参考にしてください。
目次
1.受け入れテストとは?
受け入れテストとは、開発を外注したシステムの最終納品時において、発注者の要求通りに動作するのかなどを確認するテストのことです。各単語は、それぞれ下記のような意味をもっています。主に、システムが受け入れ基準や要件を満たしているかを判定するために実施されるものであり、英語で「User Acceptance Test」と記載されます。会社によっては「UAT」と略称されたり、「検収テスト・承認テスト」と呼ばれたりしますが、テストシステムや手法などに違いがあるわけではありません。
受け入れテストの大きな特徴は、ユーザー目線で行われる点です。システム開発における一般的なテストはシステム開発を行う受注者側が実施しますが、受け入れテストにおいては受注者側ではなく、システム開発を外注した発注者側が実施することとなっています。
なお、必ずしも受注者側が実施しなければならないというわけではありません。受注者側のリソースが十分になく、作業工数を削減したい場合や、より精度の高いテストを実施したい場合は、第三者である外部専門業者に委託するケースもあります。
受け入れテストは実際に運用を始める前の最後のテストでもあるため、小さな不具合や疑問点などもすべて洗い出すことが基本です。不具合や疑問に関する問い合わせを受けた受注者は、スムーズかつ適切な対応をとらなければなりません。
1-1.受け入れテストの重要性と実施のタイミング
受け入れテストは、システム開発に必要となるテストの工程において、最後に実施されるものとなっています。完成の形に近いシステムやソフトウェアを、実務での活用にほど近い環境で使用・検証するため、実際に運用を始めたのちに何らかの不具合やトラブルに見舞われることを最大限防ぐことが可能です。
また、受け入れテストの実施タイミングは、基本的にソフトウェア導入・リリースの直前となります。最後に実施するテストとしても知られていますが、必ずしも最後に実施しなければならないというわけではありません。すでに導入しているソフトウェアや並行して開発しているソフトウェアを統合するときなど、場合によってはソフトウェアの導入・リリース直前でなくても受け入れテストを実施するケースは多々あります。
また、システムの開発工程とテスト工程の対応関係を表した「V字モデル」を参考にすることもおすすめです。システム開発プロジェクトをV字モデルに当てはめることで、受け入れテストの適切な実施タイミングを明確にできるだけでなく、抜け漏れも減らせます。
1-2.受け入れテストの種類
受け入れテストには、さらにいくつかの種類があります。種類によって実施の観点や目的が異なるため、各種類について理解を深めておきましょう。
● 運用受け入れテスト
バックアップ・リストア・ユーザー管理が問題なく行えるか、災害時復旧やセキュリティに問題がないかといったさまざまな観点から運用性を検証するためのテストです。「運用テスト」と呼ばれることもあります。
● マニュアルテスト
システム・ソフトウェア運用に関して作成されたマニュアル内の文章が、正確なものとなっているかどうかを検証するためのテストです。
● 契約による受け入れテスト
契約書に記載されている内容を満たしているかどうかを検証するためのテストです。
● 規定による受け入れテスト
ユーザーがソフトウェアを実際に利用するにあたって、法律や安全基準といった観点から問題がないかどうかを検証するためのテストです。取扱分野によって、具体的なチェック項目は異なります。
● 現新比較テスト
現行のシステムと発注している新たなシステムを同じ条件で稼働させ、出力データ結果が一致するかどうかを検証するためのテストです。新たなソフトウェアへ移行する場合は必須かつ最も重要な種類となります。
テスト自動化ツールならATgo
1か月トライアル無料:詳細はこちら
2. 受け入れテストの実施方法6つ
受け入れテストは、「テストの計画」→「テスト環境の構築」→「テスト実施」の流れで実施することが基本です。特に重要なのが初期段階のテスト計画であり、受け入れテストの目的や実施方法だけでなく、具体的なスケジュールやメンバーなどもこの時点で決定しておくことがベストと言えるでしょう。
また、受け入れテストの実施方法は、テストタイプによってもやや異なることが特徴です。ここからは、6つのテストタイプに分けて、受け入れテストの実施方法を詳しく紹介します。
2-1.機能テスト
機能テストとは、システム・ソフトウェアの機能が、本番環境においても定められている仕様通りに問題なく動作するかを検証するためのテストです。
機能テストを実施する際は、実際に利用する際の流れや情報を使用し、ソフトウェアを操作することとなります。ソフトウェアによっても規模は大きく異なるためテストを実施する機能も異なりますが、主に新たに開発・改修した機能やその他関連システムに対して行われます。
2-2.疎通テスト
疎通テストとは、システム間でリクエスト・レスポンスが問題なく成立するかを検証するためのテストです。
いわゆる、異なるシステム同士を連携させられるかどうかを判断するテストであり、主にシステムA・システムBでデータを共有させられるか、またその所要時間はどれくらいになるかを重点的にチェックされます。
2-3.性能テスト
性能テストとは、導入・リリースをして実際に多くのユーザーが利用しても耐えられるかを検証するためのテストです。
性能テストを実施する際は、基本的にサーバーへのアクセスに負荷を意図的にかけることとなります。万一の場合を考慮し、想定される負荷以上の負荷をかけても問題がなければ、性能テストをクリアできます。受け入れテストに入る前のシステムテストですでに確認が済んでいるケースも多いため、受け入れテストにおいては優先順位の低い種類と言えるでしょう。
2-4.回帰テスト
回帰テストとは、開発工程において特に改修のなかった部分に不具合が生じていないかを検証するためのテストです。「リグレッションテスト」や「退行テスト」とも呼ばれます。
開発工程において一部システムの修正を行った際、特に触れていなかった既存の機能部分も何らかの影響によってバグやエラーが生じている可能性があります。回帰テストは、実際にソフトウェアを操作して実施されます。
2-5.セキュリティテスト
セキュリティテストとは、悪意ある第三者によってシステム攻撃を受けても問題がないか・攻撃されづらくなっているかを検証するためのテストです。
セキュリティテストを実施する際は、ユーザーによる実際の利用範囲で不正な値を入力します。本番で使用するデータや環境から切り離された状態でテスト実行をしなければならない点に注意が必要です。
2-6.ユーザビリティテスト
ユーザビリティテストとは、開発したシステム・ソフトウェアで実際の業務を行ったり、特定のシナリオを想定したりした上で、ユーザーの使用感・操作感を検証するためのテストです。
ユーザビリティテストを実施する際に欠かせないシナリオは、毎日行う業務から週末・月末のみ行う業務など、稼働時に想定できるものを網羅する必要があります。シナリオが抜けると実際に利用してから大きな不具合を発見してしまう可能性があるため、考えられるすべてのシナリオを想定できているかどうかに注意しなければなりません。
3. 受け入れテストで確認するべきポイント
前述の通り、受け入れテスト自体は発注元が実施するものですが、なるべくテストを問題なくクリアするためにも、受注者側はあらかじめいくつかのポイントを確認することがおすすめです。受け入れテストを実施する際に確認するべきポイントには、下記2つがあります。
● 各機能の動作
受け入れテストでは、発注者の求める機能・仕様となっているかどうかや、本番環境でも問題なく動作するかを主にチェックされます。機能や使用、動作性におけるテストは受け入れテストの前の各テストですでに最終確認が完了しているケースも多いものの、改めて「発注者のニーズを満たせているか」といった観点からくまなくチェックすることがおすすめです。
● 変更箇所
受け入れテストでは、新たに作成したシステムのテストだけでなく、すでに運用していた既存のシステムを改修してテストを実施するケースもあります。この場合、新たに機能を追加した箇所や既存機能を改修した箇所、さらに既存機能の削除箇所など、あらゆる変更箇所にテストが実施されます。抜け漏れによる万が一の不具合が発生しないよう、変更箇所は必ず確認しておくようにしましょう。
3-1. 受け入れテストの注意点
最後に、受け入れテストを実施する際の注意点を2つ紹介します。
● 受け入れテストの定義を明確にする
受け入れテストを行う発注者側は、テストに多大な時間をかけられないことも多く、効率が重視される傾向にあります。そのため、必要最低限のポイントに焦点をあてることが大切です。受注者側となる開発者の定めた要求定義ではなく、発注側の要求定義に基づいてテスト設計・実行を進めるとよいでしょう。
● スケジュールに余裕を持たせる
前述の通り、受け入れテストはシステム開発プロジェクトにおいて最終工程にあたるため、時間のしわ寄せが生じやすい傾向にあります。受け入れテストが疎かになると、受け入れテストのレベルが大きく下がり、リリース後に大きな不具合を検知してしまうなど、双方にとって望まない結果となる可能性が高まるでしょう。
現実的なスケジュールをきちんと立てることはもちろん、一つひとつの工程において効率的に進めつつ、常にスケジュールに余裕を持たせておくようにすることが重要です。
4. まとめ
システム開発プロジェクトにおいて、品質を担保するための各テストは欠かせません。その中でも、システムの導入・リリース直前、つまり最終工程で行うテストが「受け入れテスト」です。
受け入れテストは、開発を外注したシステムの最終納品時において、発注者の要望通りに動作するのか・使い勝手がよいかなどのポイントを、本番環境に近い環境であらゆる視点から確認するためのテストを指します。ユーザー目線のテストである点が特徴で、システム開発を外注した発注者側によって実施されます。
受け入れテストをスムーズに、かつ問題なくクリアするためには、受注者側も事前に各機能の動作や変更箇所を確認したり、定義を明確にした上で余裕を持ったスケジュールを建てたりすることが大切と言えるでしょう。