Trace Specifications & Chaos Engineering | Dmitrii Fedoseev | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Trace Specifications and Chaos Engineering: Advanced Testing with Snabbkaffe | Dmitrii Fedoseev - Software Developer ABSTRACT Testing distributed eventually consistent fault-tolerant Erlang applications is challenging: their state is difficult to inspect and model and supervisors can hide crashes. Fault tolerance is rarely checked by automatic tests. We solved these problems using a new elegant approach to testing. Snabbkaffe is a test framework that relies on offline inspection of the execution trace of the system. It makes verifying a distributed application recovering from the injected crashes as easy as writing a pure function. OBJECTIVES The trace-based approach to program verification is widely in academia, however, it remains relatively obscure in engineering circles. We have successfully adopted it for the practical applications running in production, and this is what the talk is about. Trace-based testing allows us to verify more complex scenarios, so we believe that sharing it with a wider audience will improve the overall quality of the Erlang ecosystem in the long term. AUDIENCE Software engineers and QA • Timecodes 00:00 - 01:05 - Intro 01:06 - 02:38 - What is EMQX and Challenges 02:39 - 10:25 - Theory of flaky testcases 10:26 - 16:56 - Concurrency 16:56 - 17:52 - Trace-based vs. State-based Approach 17:53 - 25:52 - Stages of the Test 25:53 - 27:51 - Fault Injection and Scenarios 27:52 - 30:00 - Case Study 30:01 - 34:57 - Challenges 34:58 - 39:35 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global