<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Testing on Alfonso Subiotto</title><link>http://asubiotto.com/tags/testing/</link><description>Recent content in Testing on Alfonso Subiotto</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 08 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="http://asubiotto.com/tags/testing/index.xml" rel="self" type="application/rss+xml"/><item><title>Deterministic Simulation Testing in Rust: A Theater Of State Machines</title><link>http://asubiotto.com/writing/deterministic-simulation-testing-rust/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>http://asubiotto.com/writing/deterministic-simulation-testing-rust/</guid><description>&lt;p&gt;At Polar Signals, we&amp;rsquo;re building a new Rust database using a state machine architecture for deterministic simulation testing (DST). This approach provides complete control over concurrency, time, randomness, and failure injection by implementing core components as single-threaded state machines that communicate through messages.&lt;/p&gt;
&lt;h2 id="the-theater-of-state-machines"&gt;The Theater of State Machines&lt;/h2&gt;
&lt;p&gt;Our architecture uses a &amp;ldquo;dimensionality reduction&amp;rdquo; technique by constraining all interactions to message passing. This allows us to centralize control of testing ingredients in a single message bus, which acts as the central director of the testing process.&lt;/p&gt;</description></item><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>