Wikipedia:Articles for deletion/Deterministic simulation testing: Difference between revisions

Content deleted Content added
Mkubler (talk | contribs)
Added some more resources and a suggested page entry.
Tag: Reverted
 
(5 intermediate revisions by 4 users not shown)
Line 1:
<div class="boilerplate afd vfd xfd-closed archived mw-archivedtalk" style="background-color: var(--background-color-progressive-subtle, #F3F9FF); color: var(--color-base, inherit); margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid var(--border-color-subtle, #AAAAAA);">
:''The following discussion is an archived debate of the proposed deletion of the article below. <span style="color:var(--color-error, red);">'''Please do not modify it.'''</span> Subsequent comments should be made on the appropriate discussion page (such as the article's [[Help:Using talk pages|talk page]] or in a [[Wikipedia:Deletion review|deletion review]]). No further edits should be made to this page.''
<!--Template:Afd top
 
Note: If you are seeing this page as a result of an attempt to re-nominate an article for deletion, you must manually edit the AfD nomination links to create a new discussion page using the name format of [[Wikipedia:Articles for deletion/PAGENAME (2nd nomination)]]. When you create the new discussion page, please provide a link to this old discussion in your nomination. -->
 
The result was '''delete'''‎__EXPECTED_UNCONNECTED_PAGE__. <span style="font-family:Papyrus; color:#800080;">[[User:Liz|'''''L'''''iz]]</span> <sup style="font-family: Times New Roman; color: #006400;">[[Special:Contributions/Liz|'''''Read!''''']] [[User talk:Liz|'''''Talk!''''']]</sup> 05:43, 20 December 2024 (UTC)
===[[:Deterministic simulation testing]]===
{{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD|T}}
 
<noinclude>{{AFD help}}</noinclude>
:{{la|1=Deterministic simulation testing}} – (<includeonly>[[Wikipedia:Articles for deletion/Deterministic simulation testing|View AfD]]</includeonly><noinclude>[[Wikipedia:Articles for deletion/Log/2024 December 1118#{{anchorencode:Deterministic simulation testing}}|View log]]</noinclude> | [[Special:Diff/1261040913/cur|edits since nomination]])
:({{Find sources AFD|title=Deterministic simulation testing}})
This term seems to only be used by a fairly small group of companies, I'm not sure the methodology is currently notable enough to warrant an article. [[WP:BEFORE]] search turns up a fair amount of results, but they mostly seem to be primary sources or unreliable blogs. I think we need more reliable secondary sources covering this topic before it can be an article.
Line 10 ⟶ 15:
*<small class="delsort-notice">Note: This discussion has been included in the [[Wikipedia:WikiProject Deletion sorting/Computing|list of Computing-related deletion discussions]]. [[User:StereoFolic|StereoFolic]] ([[User talk:StereoFolic|talk]]) 01:38, 11 December 2024 (UTC)</small>
* '''Delete''': There are many Internet forums that can explain this better, even on [[Reddit]], it is explained well at the moment, not here. [[Special:Contributions/190.219.101.225|190.219.101.225]] ([[User talk:190.219.101.225|talk]]) 16:47, 13 December 2024 (UTC)
:<p class="xfd_relist" style="margin:0 0 0 -1em;border-top: 1px solid #AAA; border-bottom: 1px solid #AAA; padding: 0px 2em;"><span style="color: #FF6600;">'''{{resize|91%|[[Wikipedia:Deletion process#Relisting discussions|Relisted]] to generate a more thorough discussion and clearer consensus.}}'''</span><br />'''Relisting comment:''' The Delete "vote" is from a blocked editor so I'm relisting this discussion.<br /><small>Please add new comments below this notice. Thanks, <span style="font-family:Papyrus; color:#800080;">[[User:Liz|'''''L'''''iz]]</span> <sup style="font-family: Times New Roman; color: #006400;">[[Special:Contributions/Liz|'''''Read!''''']] [[User talk:Liz|'''''Talk!''''']]</sup> 02:15, 18 December 2024 (UTC)</small><!-- from Template:XfD relist --></p>
 
*'''Delete''': The article fails to establish general notability as per [[WP:GNG]] and requires improvement in formatting. Furthermore, the content appears to be more suitable for a blog or website rather than a Wikipedia article, as it can be commonly found on such platforms. As such, it does not meet Wikipedia's standards for inclusion see[https://devclass.com/2024/12/12/sqlite-re-implemented-in-rust-to-achieve-asynchronous-i-o-and-other-changes/ Dev Class]Thanks for your contributions to the sum of all knowledge. [[User:Royalesignature|Royalesignature]] ([[User talk:Royalesignature|talk]]). 02:44, 18 December 2024 (UTC)
[[User:Mkubler|Mkubler]] ([[User talk:Mkubler|talk]]) 18:12, 17 December 2024 (UTC)
*:<sub>Sorry, that last sentence kinda gave off a bit of snark, at the very least to me.</sub>
 
*:This article would make sense to merge into a greater article, but I'm not sure which, so I'll hold my vote until then. [[User:Madeline1805|Madeline1805]] ([[User talk:Madeline1805|talk]]) 14:22, 18 December 2024 (UTC)
Note: There's now more resources like
*'''Delete''': Until more companies and testing frameworks adopt this term to lock down "what is" and "what is not", this feels like marketing material put out by a few startups to sell the reliability of their product. --[[User:Voidvector|Voidvector]] ([[User talk:Voidvector|talk]]) 19:42, 18 December 2024 (UTC)
 
{{clear}}
* https://blog.resonatehq.io/deterministic-simulation-testing
:''The above discussion is preserved as an archive of the debate. <b style="color:red">Please do not modify it.</b> Subsequent comments should be made on the appropriate discussion page (such as the article's [[Help:Talk pages|talk page]] or in a [[Wikipedia:Deletion review|deletion review]]). No further edits should be made to this page.''<!--Template:Afd bottom--></div>
* https://www.warpstream.com/blog/deterministic-simulation-testing-for-our-entire-saas
* https://turso.tech/blog/introducing-limbo-a-complete-rewrite-of-sqlite-in-rust?ref=dailydev
 
As such it seems this should be expanded from a stub as especially the resonatehq blog post seems to explain the concept in detail and the Turso blog post talks about how they are using it for the SQL Lite rewrite in Rust.
 
 
Below is a Claude 3.5 Sonnet summary of the concept that could be used:
 
----------------
 
== Deterministic Simulation Testing ==
 
Deterministic Simulation Testing (DST) is a software testing methodology primarily used for testing distributed systems and concurrent programs. It enables developers to reproducibly test complex systems by controlling non-deterministic aspects such as timing, randomness, and component interactions within a simulated environment.
 
== Overview ==
 
Deterministic Simulation Testing works by running the system under test in a controlled environment where all sources of non-determinism are managed through a simulator. The simulator replaces real-world components like clocks, network connections, and disk operations with deterministic alternatives that can be controlled via a seed value. This approach allows developers to consistently reproduce specific execution scenarios, making it easier to identify and debug issues that might be difficult to catch with traditional testing methods.
 
== Key Concepts ==
 
=== Deterministic Execution ===
 
A system's execution is considered deterministic if, given the same initial state, it always produces the same sequence of external events. In DST, this is achieved by:
 
* Controlling random number generation through seeded pseudo-random number generators
* Managing time progression through virtual clocks
* Simulating network and disk operations with controlled alternatives
 
=== System Components ===
 
A DST implementation typically divides the system into two main parts:
 
1. Application: The core business logic being tested
2. Environment: The simulated infrastructure (network, disk, time) that the application interacts with
 
The interaction between these components occurs through well-defined protocols or APIs, allowing the testing framework to monitor and control all external interactions.
 
== Advantages ==
 
* '''Reproducibility''': Bugs can be consistently reproduced by using the same seed value that triggered the original failure
* '''Time Control''': Tests can simulate long periods of system operation in a fraction of the actual time
* '''Comprehensive Testing''': Enables testing of edge cases and failure scenarios that would be difficult to create in real environments
* '''Fault Injection''': Allows systematic testing of system behavior under various failure conditions
 
== Limitations ==
 
* '''Implementation Complexity''': Requires significant architectural changes to make systems deterministic
* '''Platform Constraints''': Some programming languages and frameworks make it challenging to control all sources of non-determinism
* '''External System Integration''': Cannot fully test interactions with external systems that must be mocked
* '''Testing Scope''': Only tests the deterministic core of the system, leaving some edge components untested
 
== Applications ==
 
Several notable distributed systems use Deterministic Simulation Testing:
 
* '''FoundationDB''': Pioneered the use of DST in distributed databases, spending 18 months developing their simulation framework before allowing the database to interact with physical storage
* '''TigerBeetle''': Employs DST for testing their financial transactions database
* '''WarpStream''': Uses DST to test their entire SaaS platform, including control plane and data plane components
 
== Tools and Implementations ==
 
=== Antithesis ===
 
Antithesis provides a commercial platform for Deterministic Simulation Testing that includes a custom hypervisor for deterministically simulating Docker containers and injecting faults. It can control thread scheduling, network behavior, and other system-level interactions.
 
=== TigerBeetle VOPR ===
 
The Viewstamped Operation Replicator (VOPR) is TigerBeetle's deterministic simulator, which focuses on testing consensus and cluster recovery mechanisms. It includes capabilities for fault injection and accelerated time simulation.
 
=== History ===
 
Deterministic Simulation Testing gained prominence through its successful implementation by FoundationDB in the early 2010s. The approach proved so effective that Kyle Kingsbury, known for the Jepsen distributed systems testing framework, declined to test FoundationDB because their deterministic simulator provided more comprehensive testing than Jepsen could achieve.
 
== See also ==
 
* Software testing
* Distributed systems
* Chaos engineering
* Formal verification
 
== References ==
 
@todo: Add the links