「テスト環境」と「ステージング環境」の違い
予備知識
| 用語 | 意味 |
|---|---|
| 環境 | 何かをするための「場」 |
| 開発環境 | 開発するときの作業場所 |
| 本番環境 | できあがったシステムやサービスが実際に動く環境 |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| テスト環境 | 作った物を実際に動かす場所を再現した、テストをやるための場所 |
| ステージング環境 | リハーサル会場みたいなもの。できるだけ本番環境に似せて作ったテスト環境 |
似ているところ
どちらもテスト環境です。
できるだけ本番環境に似せて作った、テストをやるための場です。

違うところ
テスト環境とステージング環境が両方ある場合は
ステージング環境の方が、より本番環境に近い
のが一般的です。
また、それに伴い、やるテストの内容も変わってきます。
流れとして、開発環境で作ったシステムをテスト環境に移してテストをします。
このときのシステムの状態は「まだ不具合があるかもね」です。
テスト環境でいろいろなテストをやって、見つかった不具合を直して、不具合がない状態(ちゃんと完成している状態)を目指します。

テスト環境で「もう不具合はなさそうだね。完成したと思って良いんじゃないかな」になるまでテストをしたら、ステージング環境に移してテストをします。
このときのシステムの状態は「バッチリ完成しているはず!」です。
「多分、本番環境に移しても大丈夫だけど、念のため、テスト環境よりも本番環境に近い環境を作って、そこで動かしてみますわ」です。
そのため、ステージング環境でやるテストは本番環境で動かす前のリハーサルみたいな内容になります。
「こんなことをしても不具合が出ないかな?」ではなく「本番でもこんな感じで動くはずだけど、ちゃんと動くよね?」を確認します。

備考
一般的には、まず開発環境でシステムを作り、テスト環境でテストをやり、(ステージング環境があれば)ステージング環境で本番前のリハーサルをやり、本番環境に導入する、という流れになります。

ここまでの説明を読んで「どうせだったら最初から本番環境に近いステージング環境でテストをやれば良いのでは?」と思う人もいるでしょう。
確かに、その通りです。
ですが、本番環境と同じ環境を用意するのが大変だったり、ステージング環境や本番環境は使う度に費用がかかったりして「本番環境と同じ環境でテストをするのは難しいよ」な場合が多々あります。
そんなときに「ちょっと本番環境とは違うけど、テストをやる分には問題ないかな」なテスト環境を用意してテストをやり、最終的な確認だけ本番環境とそっくりなステージング環境でやったりするのです。
そばを水洗いするときに基本的には水道水を使うけど仕上げのときだけ天然水を使うようなイメージですかね。違うか。
あと、規模が大きくないシステム開発の場合はステージング環境がないことも少なくありません。
その場合は、テスト環境でテストをした後は、そのまま本番環境に移します。
さらに規模が小さいとテスト環境すらない場合もあったりします。
その場合は開発環境でテストをやり、それが終わったら、そのまま本番環境に移すことになります。
あまり大きな声では言えませんが、物ができたらすぐに本番環境において本番環境でテストをやる場合も あります。






