<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Simulation on Alfonso Subiotto</title><link>http://asubiotto.com/tags/simulation/</link><description>Recent content in Simulation on Alfonso Subiotto</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 28 May 2024 00:00:00 +0000</lastBuildDate><atom:link href="http://asubiotto.com/tags/simulation/index.xml" rel="self" type="application/rss+xml"/><item><title>(Mostly) Deterministic Simulation Testing in Go</title><link>http://asubiotto.com/writing/deterministic-simulation-testing-go/</link><pubDate>Tue, 28 May 2024 00:00:00 +0000</pubDate><guid>http://asubiotto.com/writing/deterministic-simulation-testing-go/</guid><description>&lt;p&gt;Deterministic simulation testing (DST) is a testing approach that has gained popularity lately with &lt;a href="https://antithesis.com/blog/is_something_bugging_you/"&gt;Antithesis coming out of stealth mode&lt;/a&gt;. They do a much better job than I could ever do explaining what DST is and why it’s an extremely powerful tool in your testing arsenal, so I encourage you to read their blog posts and listen to Antithesis’ founder &lt;a href="https://www.youtube.com/watch?v=4fFDFbi3toc"&gt;Will Wilson&amp;rsquo;s talk at StrangeLoop 2014&lt;/a&gt; to get a general understanding of DST and its benefits. In a nutshell, however, DST’s core differentiator from other testing methods is determinism. Similar to randomized testing, each test run starts with a random seed and explores a random program execution path. However, if this execution path fails, the developer can deterministically reproduce the failure using the random seed used to generate the test run. Simulation further enhances the execution path exploration by randomly injecting faults in software layers and seeing how the program behaves. This idea is not new (think of mocking), but paired with deterministic test failure reproductions, is a very powerful tool.&lt;/p&gt;</description></item></channel></rss>