この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

開発者ライフサイクルと Sandbox 環境

開発ライフサイクルの間は、複数のタスクが別々のチームによって実行されます。アプリケーションの開発からテスト、リリースに至るまで、タスクは特定のリリースプロセスに従う必要があります。開発およびテストタスクには、並行して行われるものもあれば、先に他のリリースが完了してから行われるものもあります。これらのタスク (開発、テスト、統合、ステージング) 用の環境を分けると、チーム開発が可能になり、高品質のリリースを行うことができます。

開発ライフサイクルで開発環境とテスト環境を別個に用意するには、Sandbox 組織を作成します。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 環境を次に示します。
  • 開発とテストには、次の 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 環境

ユーザ受け入れテスト Sandbox

会社の従業員は、ユーザ受け入れテスト (UAT) Sandbox を使用して新機能を試したり、アドホックテストを実行したりできます。たとえば、製品マネージャは、アドホックテストを実行して機能が実装されていることを確認し、デモを準備することができます。また、トレーニング講師は、アプリケーションが本番組織にロールアウトされる前に、新しいアプリケーションを使用して正式なトレーニング教材を作成できます。

Partial Copy Sandbox または Full Sandbox は、本番組織のデータを使用したカスタマイズのテストにお勧めします。Partial Copy Sandbox には、組織のすべてのメタデータと、本番データの一部が含まれており、他方 Full Sandbox には本番のメタデータとデータがすべて含まれています。次の図は、前の図への追加として、使用される Partial Copy Sandbox を示します。

ユーザ受け入れテスト用の Partial Data Sandbox

ステージング Sandbox

ステージング環境は、本番組織の前の、開発ライフサイクルの最後の環境です。ステージング Sandbox は、本番組織のデータとメタデータがすべて含まれる Full Sandbox です。本番の完全なレプリカであるため、実際の環境でテストを実行して、アプリケーションの動作に影響を与える、データに依存する問題を見つけることができます。ステージング環境を使用して、テストリリースと最後の回帰テストを実行します。つまり、すべてのテストを実行して、リリースが成���することを確認します。このタスクは、本番環境への検証のみのリリースに相当します。

  • Force.com 移行ツールバージョン 34.0 以降の場合、ステージング Sandbox でローカルテストを実行するには、testLevel="RunLocalTests" パラメータをリリースターゲットに追加します。このパラメータは、必要に応じて、Sandbox で実行されるテストが本番組織でデフォルトで実行されるテストと同じになるようにします。
  • Force.com 移行ツールバージョン 33.0 以前の場合、ステージング Sandbox で Force.com 移行ツールを使用してすべてのテスト (インストール済みの管理パッケージからのテストを含む) を実行するには、runAllTests パラメータを true に設定します。管理パッケージテストは、runAllTests パラメータを使用している場合は除外できません。それに対し、本番組織で自動的に実行されるテストは、インストール済みの管理パッケージからのものを除く (名前空間のない) ローカルテストのみです。「Force.com 移行ツールを設定してテストを実行する場合のヒント」を参照してください。

メモ

また、ステージング環境は、ストレステストとパフォーマンステストにも使用します。Force.com プラットフォームの Sandbox 用ハードウェアは本番組織のハードウェアとは異なるため、Sandbox でのパフォーマンステストが本番環境と同じにならない可能性があります。それでも、ステージング Sandbox でパフォーマンステストを実行すると、パフォーマンス上の問題や、Apex ガバナ制限に起因するエラーを見つけるのに役立ちます。

アプリケーションの品質を高めるには、開発プロセスの早期に単体テストを継続して実行することをお勧めします。詳細は、「継続的インテグレーションプロセス」を参照してください。

ステージング Sandbox と本番環境

変更は通常、一方向 (ソース制御システムから本番組織) にのみ移行されます。ただし、本番組織を手動で変更した場合、それらの変更が次回のリリースで失われないように、変更を複製してソース制御リポジトリに戻す必要があります。これを行うには、Developer Sandbox でそれらの変更を手動で行い、ソース制御に変更をコミットします。

メモ

機能リリースのアプリケーションライフサイクル全体図

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

機能リリースのアプリケーションライフサイクル全体図