Sandbox (software development)


A sandbox is a testing environment that isolates untested code changes and outright experimentation from the production environment or repository in the context of software development, including web development, automation, revision control, configuration management, and patch management.
Sandboxing protects "live" servers and their data, vetted source code distributions, and other collections of code, data and/or content, proprietary or public, from changes that could be damaging to a mission-critical system or which could simply be difficult to revert, regardless of the intent of the author of those changes. Sandboxes replicate at least the minimal functionality needed to accurately test the programs or other code under development.
The concept of sandboxing is built into revision control software such as Git, CVS and Subversion, in which developers "check out" a copy of the source code tree, or a branch thereof, to examine and work on. After the developer has fully tested the code changes in their own sandbox, the changes would be checked back into and merged with the repository and thereby made available to other developers or end users of the software.
By further analogy, the term "sandbox" can also be applied in computing and networking to other temporary or indefinite isolation areas, such as security sandboxes and search engine sandboxes, that prevent incoming data from affecting a "live" system unless/until defined requirements or criteria have been met.
Sandboxing is often considered a best practice when making any changes to a system, regardless of whether that change is considered 'development', a modification of configuration state, or updating the system.

In web services

The term sandbox is commonly used for the development of web services to refer to a mirrored production environment for use by external developers. Typically, a third-party developer will develop and create an application that will use a web service from the sandbox, which is used to allow a third-party team to validate their code before migrating it to the production environment. Microsoft,
Google, Amazon,
Salesforce,
PayPal,
eBay, and
Yahoo, among others, provide such services.

In wikis

s also typically employ a shared sandbox model of testing, though it is intended principally for learning and outright experimentation with features rather than for testing of alterations to existing content. An edit preview mode is usually used instead to test specific changes made to the texts or layout of wiki pages.