メインコンテンツへ
開発技術開発実践

テスト環境管理のベストプラクティスとして、最も適切なものはどれか。

ア.テスト環境は本番環境と共用することで、最も正確なテスト結果が得られるため、コスト削減のために本番でテストを実施することが推奨される。
イ.開発・ステージング・本番の各環境を分離し、本番と同等のデータ・設定をステージングで再現することで、リリース前の動作確認の精度を高める。環境差異はInfrastructure as Codeで管理する。正解
ウ.ステージング環境には本番の実際の顧客データをそのままコピーして使用することが、最も精度の高いテストになるため、個人情報の保護よりテスト精度を優先すべきである。
エ.開発環境・ステージング環境・本番環境はすべて同一の設定ファイルとデータを共有する必要があり、環境ごとに設定を変えることは非推奨である。

解説

環境管理は「リハーサル舞台と本番舞台の分離」。本番でいきなりリハーサルをやれば客に迷惑がかかる。ステージング環境は「できるだけ本番に近い裏の舞台」で完璧にリハーサルする場所。設定の差異はコードで管理してドリフト(設定のズレ)を防ぐ。

なぜ イ が正解か

イが正解。環境は dev→staging→production と段階的に分離するのが標準。ステージングは本番データの匿名化コピー・同等のインフラ構成で「本番に一番近い状態」を作る。IaC(Terraform・Pulumi等)で環境定義をコード化することで「本番だけ違う設定」という事故(設定ドリフト)を防ぐ。

なぜ ア は間違いか

本番でのテスト実施は顧客影響・データ汚染・コンプライアンス違反のリスクが高く、絶対に避けるべきプラクティス。

なぜ ウ は間違いか

実際の顧客データをそのままテスト環境にコピーすることはGDPR・個人情報保護法違反になる可能性がある。テスト用データは匿名化・マスキングが必須。

なぜ エ は間違いか

環境ごとに接続先DB・API鍵・ログレベル等を変えることは必須。12 Factor Appなどでも環境変数で設定を外部化することが推奨されている。同一設定の共有は危険。

出典: AI生成問題(学習用)