開発者ライフサイクルと Sandbox 環境
開発ライフサイクルの間は、複数のタスクが別々のチームによって実行されます。アプリケーションの開発からテスト、リリースに至るまで、タスクは特定のリリースプロセスに従う必要があります。開発およびテストタスクには、並行して行われるものもあれば、先に他のリリースが完了してから行われるものもあります。これらのタスク (開発、テスト、統合、ステージング) 用の環境を分けると、チーム開発が可能になり、高品質のリリースを行うことができます。
開発ライフサイクルで開発環境とテスト環境を別個に用意するには、Sandbox 組織を作成します。Sandbox には、組織のメタデータのコピーと、必要に応じてデータのコピーが含まれます。
Sandbox の種別
- Developer
- Developer Pro
- Partial Copy
- Full
開発とテストには、Developer Sandbox および Developer Pro Sandbox の使用をお勧めします。これらの Sandbox にデータ (標準およびカスタムデータオブジェクト) は含まれていません。Partial Copy Sandbox は通常、統合テストまたはユーザ受け入れテスト (UAT) 環境として使用され、メタデータに加えて、組織のデータのサブセットが含まれています。Full Sandbox は、組織のすべてのデータとメタデータのフルコピーです。Full Sandbox が本番組織の完全なレプリカであるのに対し、他の Sandbox は部分的なコピーです。
Sandbox データテンプレート
Partial Copy Sandbox および Full Sandbox で Sandbox テンプレートを使用すると、特定のオブジェクトとデータを選択して Sandbox にコピーできます。Sandbox テンプレートによって、各 Sandbox のサイズとコンテンツを制御できます。
プロジェクトチームが複数ある大規模な組織では、Partial Copy Sandbox とデータテンプレートを利用してテスト作業を分けることができます。たとえば、回帰テストを分割して (Full Sandbox ではなく) 更新サイクルの短い複数の Sandbox で実行することができます。
機能リリースのための推奨 Sandbox 環境
- 開発とテストには、次の Sandbox をお勧めします。
- 開発: 専用 Developer または Developer Pro Sandbox (エンジニア 1 人につき 1 個)
- 共有テスト: 共有 Developer または Developer Pro Sandbox
- 統合テストとユーザ受け入れテスト: 共有 Partial Copy Sandbox
- ステージング変更: Full Sandbox
共有 Sandbox にログインするユーザごとに Sandbox ユーザを作成します。各ユーザが個別のユーザアカウントを使用して Sandbox にログインします。
専用または共有の Sandbox を使用した開発
各開発者が専用の Sandbox を作成して作業することをお勧めします。開発者ごとに 1 つの Sandbox を用意することで、各開発者が作業を管理しやすくなります。つまり、いつ Sandbox をリポジトリにある最新の変更で更新するか、いつ変更をコミットするかを各開発者が決定できます。
チームメンバーが緊密に連携して作業し、主に Salesforce ユーザインターフェースのポイント & クリックツールを使用している場合は、チームメンバーで 1 つの Sandbox を共有できます。Sandbox は、ユーザごとにユーザアカウントを作成することで共有できます。Sandbox を共有すると、Sandbox を管理してソース制御と同期するプロセスは容易になりますが、開発プロセスは複雑になります。
次の図は、開発者用とテスト用の Sandbox 環境の位置付けを示しています。この概要図では、任意の人数 (n) の開発者と QA エンジニアのそれぞれに Sandbox があることを前提としています。

ユーザ受け入れテスト Sandbox
会社の従業員は、ユーザ受け入れテスト (UAT) Sandbox を使用して新機能を試したり、アドホックテストを実行したりできます。たとえば、製品マネージャは、アドホックテストを実行して機能が実装されていることを確認し、デモを準備することができます。また、トレーニング講師は、アプリケーションが本番組織に公開される前に、新しいアプリケーションを使用して正式なトレーニング教材を作成できます。
Partial Copy Sandbox または Full Sandbox は、本番組織のデータを使用したカスタマイズのテストにお勧めします。Partial Copy Sandbox には、組織のすべてのメタデータと、本番データの一部が含まれており、他方 Full Sandbox には本番のメタデータとデータがすべて含まれています。次の図は、前の図への追加として、使用される Partial Copy Sandbox を示します。

ステージング Sandbox
ステージング環境は、本番組織の前の、開発ライフサイクルの最後の環境です。ステージング Sandbox は、本番組織のデータとメタデータがすべて含まれる Full Sandbox です。本番の完全なレプリカであるため、実際の環境でテストを実行して、アプリケーションの動作に影響を与える、データに依存する問題を見つけることができます。ステージング環境を使用して、テストリリースと最後の回帰テストを実行します。つまり、すべてのテストを実行して、リリースが成功���ることを確認します。このタスクは、本番環境への検証のみのリリースに相当します。
また、ステージング環境は、ストレステストとパフォーマンステストにも使用します。Force.com プラットフォームの Sandbox 用ハードウェアは本番組織のハードウェアとは異なるため、Sandbox でのパフォーマンステストが本番環境と同じにならない可能性があります。それでも、ステージング Sandbox でパフォーマンステストを実行すると、パフォーマンス上の問題や、Apex ガバナ制限に起因するエラーを見つけるのに役立ちます。
アプリケーションの品質を高めるには、開発プロセスの早期に単体テストを継続して実行することをお勧めします。詳細は、「継続的インテグレーションプロセス」を参照してください。

機能リリースのアプリケーションライフサイクル全体図
次の図には、機能リリースを行う場合のアプリケーション開発ライフサイクルのすべてのフェーズが含まれています。
