この記事は何か?
本記事では、QAエンジニア目線でソフトウェア開発の各環境の違いと使い分けについて説明する。
なお、本記事で説明する環境の呼び方や構成は組織によって異なる場合がある。
目次
ソフトウェア開発における4つの主要環境
ソフトウェア開発では、開発中のコードが実際のサービスに影響を与えてしまわないように、開発からリリースまでの各段階で適切な環境を使い分けている。
開発環境、Dev環境(Development Environment)
- 主な利用者: 開発者
- 主な用途:
- 開発者による新機能の実装や修正
- 開発者自身による動作確認とテスト
検証環境、QA環境(Quality Assurance Environment)
- 主な利用者: 開発者、QAエンジニア
- 主な用途:
- QAエンジニアによる機能テストの実施
- バグを発見した場合は報告し、修正後に再テスト
- リグレッションテストで既存機能への影響がないか確認する
ステージング環境、STG環境(Staging Environment)
- 主な利用者: 開発者、QAエンジニア、業務部門など
- 主な用途:
- 本番と同等の環境での最終動作確認する
- 本番デプロイ手順のリハーサルを行う
本番環境、Prod環境(Production Environment)
- 主な利用者: エンドユーザー
- 主な用途:
- ユーザーが実際に利用するサービスを提供する
各環境で実施されるテスト
各環境で段階的にテストを実施することで品質を担保している。
| 環境 | 実施されるテスト |
|---|---|
| 開発環境 | 単体テスト、結合テストなど |
| QA環境 | 総合テスト、リグレッションテスト、バグの修正確認など |
| ステージング環境 | 受入テスト、性能テスト、本番環境で発生したバグの検証など |
| 本番環境 | スモークテスト(リリース直後の基本動作確認) |
開発における各環境での流れ
1. 開発環境(Dev)
開発者が実装
単体テストや結合テスト完了
↓
2. 検証環境(QA)
QAエンジニアが機能テスト・バグ修正確認
テスト完了して品質基準をクリア
↓
3. ステージング環境(STG)
業務部門などが最終確認・受入テスト
リリース承認
↓
4. 本番環境(Prod)
デプロイ
スモークテスト実施
↓
ユーザーへ提供開始