Jump to content

Sandbox (software development): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎See also: Remove spam link
m Reverted edit by 36.82.169.133 (talk) to last version by Tule-hog
 
(40 intermediate revisions by 31 users not shown)
Line 1: Line 1:
The purpose of this program is make every user eligible to create the articles without any hassle, keeping the guidelines in mind{{short description|Testing environment for software development}yes}}
{{short description|Testing environment for software development}}
{{Distinguish|Sandbox (computer security)|Sandbox game}}
{{Self reference|For the Wikipedia feature, where newcomers can experiment with editing, see [[Wikipedia:Sandbox]].}}
A '''sandbox''' is a [[testing environment]] that isolates untested [[source code|code]] changes and outright experimentation from the [[production environment]] or repository<ref name="techtarget">{{cite web |url=https://www.techtarget.com/searchsecurity/definition/sandbox |title=Sandbox |publisher=TechTarget |access-date=15 July 2024}}</ref> in the context of [[software development]], including [[web development]], [[automation]], [[revision control]], [[configuration management]] (see also [[change management]]), and [[patch management]].

A '''sandbox''' is a testing environment that isolates untested [[source code|code]] changes and outright experimentation from the production environment or repository,<ref name="techtarget">{{cite web|url=http://searchsecurity.techtarget.com/definition/sandbox|title=Sandbox Definition|author=Margaret Rouse|publisher=TechTarget}}</ref> in the context of [[software development]] including [[Web development]] and [[revision control]].


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 [[Reversion (software development)|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 (e.g. usage of the same [[environment variable]]s as, or access to an identical database to that used by, the stable prior implementation intended to be modified; there are many other possibilities, as the specific functionality needs vary widely with the nature of the code and the application&#91;s&#93; for which it is intended).
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 [[Reversion (software development)|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 (e.g. usage of the same [[environment variable]]s as, or access to an identical database to that used by, the stable prior implementation intended to be modified; there are many other possibilities, as the specific functionality needs vary widely with the nature of the code and the application&#91;s&#93; for which it is intended).


The concept of sandbox (sometimes also called a '''working directory''', a '''test server''' or '''development server''') is typically built into [[revision control software]] such as [[Git]], [[Concurrent Versions System|CVS]] and [[Subversion (software)|Subversion (SVN)]], in which developers "check out" a ''copy'' of the source code tree, or a branch thereof, to examine and work on. Only after the developer has (hopefully) 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.<ref name="CVSBP4">Vivek Venugopalan, "[http://www.sanchivi.com/cm/cvs-best/ar01s04.html Developer Sandbox]" chapter 4, ''CVS Best Practices'', The Linux Documentation Project, 2005. ''(See also [http://www.google.ca/search?q=CVS+sandbox Google] for numerous other examples from the CVS FAQ, SourceForge, etc.)''</ref>
The concept of sandboxing is built into [[revision control software]] such as [[Git]], [[Concurrent Versions System|CVS]] and [[Subversion (software)|Subversion (SVN)]], 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.<ref name="CVSBP4">Vivek Venugopalan, "[http://www.sanchivi.com/cm/cvs-best/ar01s04.html Developer Sandbox]" chapter 4, ''CVS Best Practices'', The Linux Documentation Project, 2005.</ref>


By further analogy, the term "sandbox" can also be applied in computing and networking to other temporary or indefinite isolation areas, such as [[sandbox (computer security)|security sandboxes]] and [[Sandbox effect|search engine sandboxes]] (both of which have highly specific meanings), that prevent incoming data from affecting a "live" system (or aspects thereof) unless/until defined requirements or criteria have been met.
By further analogy, the term "sandbox" can also be applied in computing and networking to other temporary or indefinite isolation areas, such as [[sandbox (computer security)|security sandboxes]] and [[Sandbox effect|search engine sandboxes]] (both of which have highly specific meanings), that prevent incoming data from affecting a "live" system (or aspects thereof) unless/until defined requirements or criteria have been met.


Sandboxing (see also '[[soft launch | soft launching]]') 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.<ref>{{cite web |url=https://www.intel.com/content/www/us/en/business/enterprise-computers/resources/patch-management.html |title=What Is Patch Management? |access-date=15 July 2024}}</ref>
Regulatory sandboxes enable eligible applicants to test their technology-enabled financial solutions for a certain period of time (subject to conditions the regulator imposes). As such, these instruments allow innovation while preventing severe instability in financial markets caused by systemic risk<ref>{{Cite journal|last=Alaassar|first=A.|last2=Mention|first2=A. L.|last3=Aas|first3=T. H.|date=2021|title=Exploring a new incubation model for FinTechs: Regulatory sandboxes|url=https://www.sciencedirect.com/science/article/pii/S0166497221000183|journal=Technovation|language=en|pages=102237|doi=10.1016/j.technovation.2021.102237|issn=0166-4972|doi-access=free}}</ref>


== In web services ==
== In web services ==


The term sandbox is commonly used for the development of [[Web service]]s to refer, to a [[mirror website|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]],<ref>{{cite web |url=http://test.uddi.microsoft.com/default.aspx |title=Microsoft UDDI Business Registry (UBR) node |url-status=dead |archive-url=https://web.archive.org/web/20051107090936/http://test.uddi.microsoft.com/default.aspx |archive-date=2005-11-07 |access-date=27 July 2012}}</ref>
The term sandbox is commonly used for the development of [[web services]] to refer to a [[mirror website|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]],<ref>{{cite web |url=http://test.uddi.microsoft.com/default.aspx |title=Microsoft UDDI Business Registry (UBR) node |url-status=dead |archive-url=https://web.archive.org/web/20051107090936/http://test.uddi.microsoft.com/default.aspx |archive-date=2005-11-07 |access-date=27 July 2012}}</ref>
[[Google]], [[Amazon.com]],<ref>{{cite web |url=http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=25&externalID=775 |title=Amazon Mechanical Turk Developer Sandbox |access-date=27 July 2012}}</ref>
[[Google]], [[Amazon (company)|Amazon]],<ref>{{cite web |url=http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=25&externalID=775 |title=Amazon Mechanical Turk Developer Sandbox |access-date=27 July 2012}}</ref>
[[Salesforce.com]],<ref>{{cite web |url=https://help.salesforce.com/apex/HTViewHelpDoc?id=create_test_instance.htm |title=Salesforce Sandboxes |publisher=salesforce.com |access-date=29 August 2016}}</ref>
[[Salesforce]],<ref>{{cite web |url=https://help.salesforce.com/apex/HTViewHelpDoc?id=create_test_instance.htm |title=Salesforce Sandboxes |publisher=salesforce.com |access-date=29 August 2016}}</ref>
[[PayPal]],<ref>{{cite web |url=https://developer.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf |title=PayPal Sandbox User Guide |publisher=paypal.com |url-status=dead |access-date=27 July 2012 |archive-url=https://web.archive.org/web/20070128140333/http://developer.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf |archive-date=28 January 2007 }}</ref>
[[PayPal]],<ref>{{cite web |url=https://developer.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf |title=PayPal Sandbox User Guide |publisher=paypal.com |url-status=dead |access-date=27 July 2012 |archive-url=https://web.archive.org/web/20070128140333/http://developer.paypal.com/en_US/pdf/PP_Sandbox_UserGuide.pdf |archive-date=28 January 2007 }}</ref>
[[eBay]]<ref>{{cite web |url=http://sandbox.ebay.com/ |title=eBay Developer's Sandbox |publisher=ebay.com |access-date=27 July 2012}}</ref> and
[[eBay]],<ref>{{cite web |url=http://sandbox.ebay.com/ |title=eBay Developer's Sandbox |publisher=ebay.com |access-date=27 July 2012}}</ref> and
[[Yahoo!|Yahoo]],<ref>{{cite web |url=http://searchmarketing.yahoo.com/developer/docs/V2/sandbox/index.php |title=Enterprise Web Services: Sandbox |publisher=yahoo.com |url-status=dead |archive-url=https://web.archive.org/web/20080119195143/http://searchmarketing.yahoo.com/developer/docs/V2/sandbox/index.php |archive-date=2008-01-19 |access-date=27 July 2012 }}</ref> among others, provide such services.
[[Yahoo!|Yahoo]],<ref>{{cite web |url=http://searchmarketing.yahoo.com/developer/docs/V2/sandbox/index.php |title=Enterprise Web Services: Sandbox |publisher=yahoo.com |url-status=dead |archive-url=https://web.archive.org/web/20080119195143/http://searchmarketing.yahoo.com/developer/docs/V2/sandbox/index.php |archive-date=2008-01-19 |access-date=27 July 2012 }}</ref> among others, provide such services.


Line 39: Line 38:
{{Reflist}}
{{Reflist}}


[[Category:Virtualization software]]
[[Category:Virtualization]]
[[Category:Software development process|Sdp]]
[[Category:Software development process|Sdp]]

Latest revision as of 08:58, 15 August 2024

A sandbox is a testing environment that isolates untested code changes and outright experimentation from the production environment or repository[1] in the context of software development, including web development, automation, revision control, configuration management (see also change 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 (e.g. usage of the same environment variables as, or access to an identical database to that used by, the stable prior implementation intended to be modified; there are many other possibilities, as the specific functionality needs vary widely with the nature of the code and the application[s] for which it is intended).

The concept of sandboxing is built into revision control software such as Git, CVS and Subversion (SVN), 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.[2]

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 (both of which have highly specific meanings), that prevent incoming data from affecting a "live" system (or aspects thereof) unless/until defined requirements or criteria have been met.

Sandboxing (see also ' soft launching') 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.[3]

In web services

[edit]

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,[4] Google, Amazon,[5] Salesforce,[6] PayPal,[7] eBay,[8] and Yahoo,[9] among others, provide such services.

In wikis

[edit]

Wikis 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 (the wiki analog of source code). An edit preview mode is usually used instead to test specific changes made to the texts or layout of wiki pages.

See also

[edit]

References

[edit]
  1. ^ "Sandbox". TechTarget. Retrieved 15 July 2024.
  2. ^ Vivek Venugopalan, "Developer Sandbox" chapter 4, CVS Best Practices, The Linux Documentation Project, 2005.
  3. ^ "What Is Patch Management?". Retrieved 15 July 2024.
  4. ^ "Microsoft UDDI Business Registry (UBR) node". Archived from the original on 2005-11-07. Retrieved 27 July 2012.
  5. ^ "Amazon Mechanical Turk Developer Sandbox". Retrieved 27 July 2012.
  6. ^ "Salesforce Sandboxes". salesforce.com. Retrieved 29 August 2016.
  7. ^ "PayPal Sandbox User Guide" (PDF). paypal.com. Archived from the original (PDF) on 28 January 2007. Retrieved 27 July 2012.
  8. ^ "eBay Developer's Sandbox". ebay.com. Retrieved 27 July 2012.
  9. ^ "Enterprise Web Services: Sandbox". yahoo.com. Archived from the original on 2008-01-19. Retrieved 27 July 2012.