web-dev-qa-db-ja.com

ステージング環境とUAT環境の違いは何ですか?

ソリューションの開発中は、少なくとも3つの異なる環境が必要です。

  • 開発:プログラマはいつでも自由に変更を加え、変更をプッシュすることで、コードをすばやくテストし、他の変更と統合します。何も壊す恐れはありません。 -これはTESTデータベースとサービスに接続されています。
  • [〜#〜] uat [〜#〜]:「できるだけ良い」ものを含める必要があるため、開発者は敬意を持って扱う必要がありますハードウェアに関する本番環境のコピー。ただし、この環境は本番データの編集可能なコピーを使用してUATデータベースに接続されている点が異なります。Q&Aチームとユーザーの両方が本番環境への変更を検証するために使用します。
  • Production:実際の取引。

私は SoftwareEngineeringでのこの質問ServerFaultでのこの質問 を調査しましたが、ステージング環境の意味が異なるようです。また、件名についての Wikipediaページ は次のように述べています。

ステージング環境の主な用途は、本番環境に適用する前に、すべてのインストール/構成/移行スクリプトと手順をテストすることです。これにより、本番環境へのすべてのメジャーおよびマイナーアップグレードが、最小限の時間でエラーなく確実に完了します。

私にとって、ステージングは​​UATと同じです。UATでは、現実の世界に移行する前に、アプリケーションと展開の手順をテストする必要があります。したがって、UATに変更を加えたパッケージを本番にプッシュするのと同じ方法で、完全に自動化して、本番環境で必要なすべてのセレモニーを行います。

とはいえ、UAT環境とステージング環境の適切な違いは何ですか?

-

編集:明確にするために、私はそれがインターネットWebサイトであろうとイントラネットWebサイトであろうと、Webアプリケーションの観点から考えています。 「フォーム」アプリやモバイルアプリはありません。

9
Machado

違いはデータです。

UAT環境は、新機能の「ユーザー承認」用に設定されています。その機能をテストするために、QAまたは利害関係者は、特定の機能を実行するために特定の方法でユーザープロファイルを設定するか、すべての製品を確認するために模擬製品または構成を設定します。

多くの場合、ステージング環境は、匿名化された運用データのコピーでセットアップされます。一部の企業では、運用スナップショットからステージングデータベースを定期的に「更新」しています。主な焦点は、アプリケーションがUATで機能していたのと同じ方法で本番環境で機能するようにすることです。テスターは、データを新たに設定する代わりに、データベースを検索して、重要な一連のテストケースに一致するプロファイルと製品を探します。多くの場合、「実際の」データには、UAT中に見落とされた予期しないEdgeケースを引き起こす癖があります。また、データ移行テストはすべてステージング環境で行う必要があります。

9
John Wu
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

ここでの使用法の定義は非常に広範であり、エンドユーザーによる構成の変更からUAT環境では利用できないコストのかかるインフラストラクチャ機能まで、あらゆる種類のものが含まれる場合があります。重要なのは、ステージング上のソフトウェア製品のバージョンは、新しいバージョンまたは現在のバージョンのいずれかですが、常に受け入れ済みのバージョンです。

言い換えると:

  • [〜#〜] uat [〜#〜]は、現在のバージョンと同じように使用すればソフトウェア製品の新しいバージョンが機能することを証明するために存在します。
  • ステージングは、ソフトウェア製品の新しい使用方法が、ソフトウェア製品の現在のバージョンが現在使用されている方法と同じように機能することを証明するために存在します。

注:質問自体に描かれているように、「ステージング環境」についての理解はさまざまであり、会社/環境で使用されるものは異なる場合があります。

1
Vlad

これらの異なる環境の使用は、本当に、本当にあなたのニーズに依存しています。 「ステージング== UAT」というコメントから、QAチームがなく、開発者が数人しかいない非常に小さなアプリケーションがあるかのように聞こえます。

大規模なアプリケーション環境には、統合テスト環境とQA環境があり、前者は統合テストを実行し、後者はQAチームがテストを実行します。各トレーニングセッションの前に復元されるストックデータを含むトレーニング環境がある場合があります。ステージング環境は運用チームの管理下にあり、展開が適切に行われるようにします。ユーザー受け入れテスト(UAT)環境は、顧客チームによって使用されます。また、顧客の問題を再現するための本番環境のスナップショット環境がある場合もあります。

私のポイントは、必要な環境を決定するときに単一の視点に注意することです。

0
BobDalgleish