サンドボックス (ソフトウェア開発)

サンドボックス (英: sandbox)は、 Web開発やバージョン管理などのソフトウェア開発の文脈で、テストされていないコードの変更や完全な実験を本番環境またはリポジトリから分離するテスト環境のこと 。

サンドボックス化は、「ライブ」サーバーとそのデータ、精査されたソースコード配布、およびその他のコード、データ、コンテンツのコレクション（所有権または公開）を、ミッションクリティカルなシステムに損害を与える可能性のある変更から保護する。それらの変更の作成者の意図に関係なく元に戻す。サンドボックスは、少なくとも、開発中のプログラムまたは他のコードを正確にテストするために必要な最小限の機能を複製する（たとえば、変更を目的とした安定した以前の実装と同じ環境変数の使用、または同じデータベースへのアクセスなど、他にもコードやアプリケーションの性質により様々な特定の機能が必要なことがある）。

サンドボックスの概念（作業ディレクトリ、テストサーバー、開発サーバーとも呼ばれる）は、通常、 Git、CVS、Subversion（SVN）などのバージョン管理システムに組み込まれており、開発者は調査および作業するツリーまたはそのブランチのソースコードのコピーを「チェックアウト」する。開発者は自分のサンドボックスでコードの変更を完全にテストした後でのみ、変更をチェックインしてリポジトリにマージし、それによって他の開発者またはソフトウェアのエンドユーザーが利用できるようにすべきである。 

同様に、「サンドボックス」という用語は、コンピューティングやネットワーキングにおいて、セキュリティサンドボックスや検索エンジンサンドボックス（どちらも非常に具体的な意味を持つ）など、受信データが定義された要件または基準が満たされない限り、または満たされるまで、「ライブ」システムへのデータ流入を防止する一時的な分離エリアのことを指すことがある。

Webサービスでの活用 
サンドボックスという用語は、外部開発者が使用するミラー化された本番環境を指すWebサービスの開発に一般的に使用される。通常、サードパーティの開発者は、サンドボックスのWebサービスを使用するアプリケーションを開発および作成する。これは、サードパーティのチームがコードを本番環境に移行する前に検証できるようにするために使用される。 マイクロソフト 、 グーグル、Amazon.com、 Salesforce.com、 PayPal 、 eBay、Yahoo、などがこのようなサービスを提供している。

ウィキでの活用 
Wikiは通常、テストの共有サンドボックスモデルを採用しているが、これは主に、既存のコンテンツ（ソースコードのwikiアナログ）への変更のテストではなく、機能の学習と完全な実験を目的としている。通常、編集プレビューモードは、Wikiページのテキストまたはレイアウトに加えられた特定の変更をテストするために使用されます。

関連項目 

 OSレベルの仮想化
 Pastebin
 サンドボックス (セキュリティ)
 サンドボックス効果（検索エンジン）

脚注 

ソフトウェア開発工程
仮想化