Fuzzing and Dynamic Analysis for High-Integrity Software with Paul Butcher

The Pragmatic Embedded Podcast · 13 May 2026 · 48m

What this episode covers

Paul Butcher, Unit Director of Dynamic Analysis at AdaCore, explains how dynamic analysis techniques like fuzzing find corner-case bugs that traditional unit testing misses in high-integrity software. He details the mechanics of fuzzing, including mutation engines and anomaly detection, and discusses challenges with timing and concurrency in embedded systems, citing success with the NH90 avionics MIL bus. Butcher also describes combining static analysis with targeted fuzzing to automatically triage false positives and generate reproducers, while touching on formal verification using SPARK for the London Underground's Victoria line and the cautious role of LLMs in verification workflows.

Other shows on the same ground, closest first.

  • Oxide and Friends · 1h 21m

    Software Verificationpalooza

    Greg Colombo and Rain Paharia from Oxide Computer Company discuss rigorous software verification methods, specifically TLA+ for model checking distributed systems and the proptest Rust crate for property-based testing. Greg explains how he used TLA+ to verify the orchestration of live VM migration, uncovering race conditions and bugs in the control plane that were difficult to reproduce with standard integration tests. Rain details his use of proptest to validate complex data structures like 'buff-list' and 'Guppy' by comparing them against oracles like the standard library and Cargo, finding numerous bugs in both his code and upstream dependencies. The episode highlights how formal methods and property-based testing serve as complementary tools for ensuring correctness in high-concurrency, distributed environments.

  • Embedded.fm · 1h 06m

    158: Programming Is Too Difficult for Humans

    Fabien Chouteau, a software engineer at AdaCore, discusses the Ada programming language and its suitability for safety-critical embedded systems. He explains Ada's design philosophy, including its formal requirements document (the Steelman document), strong typing, and the SPARK tool for formal verification. Chouteau also promotes the 'Make with Ada' competition, highlighting supported platforms like the STM32 and Crazyflie nanodrone, and demonstrates how Ada improves code reliability through contract-based programming.

  • Embedded.fm · 1h 13m

    290: Rule of Thumbs

    Phillip Johnston, founder of Embedded Artistry, discusses embedded software consulting, the importance of upfront design to avoid costly rewrites, and best practices for code reviews and testing. He analyzes the Boeing 737 MAX crashes as a systemic failure driven by business pressures and poor risk analysis, and explains the challenges of retargeting C++ standard libraries like libc++ to RTOS environments such as FreeRTOS and ThreadX.

  • Embedded.fm · 1h 08m

    183: Robots Having Nervous Breakdowns

    Professor Philip Koopman of Carnegie Mellon University and co-founder of Edge Case Research discusses the critical importance of formal peer reviews in embedded software development. He argues that while informal reviews are insufficient, structured Fagan-style inspections find the majority of bugs for a fraction of the total project cost, effectively making high quality 'free' by preventing expensive late-stage fixes. Koopman explains that cultural resistance often stems from a misunderstanding of progress, where managers equate 'code complete' with actual completion, leading to dangerous shortcuts in safety-critical and mission-critical systems.

  • Embedded.fm · 1h 10m

    270: Broccoli Is Good Too

    James Grenning, author of 'Test Driven Development for Embedded C' and founder of Wingman Software, discusses the philosophy and practice of Test Driven Development (TDD) for embedded systems. He explains how TDD reduces debugging time by enforcing small, verifiable steps and using techniques like 'ZOMBIES' to defer complex decisions. Grenning also shares insights from a recent side project involving a Synapse Wireless mesh network for industrial water pressure monitoring, illustrating how to handle hardware uncertainty through experimentation and loose coupling.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by The Pragmatic Embedded Podcast. The episode itself belongs to its publisher.