Source
TranscriptMutation Testing (Bitcoin Core Dev Tech, May 2026)
Added to the wiki June 17, 2026 at 06:14 PM UTC · full text archived June 17, 2026 at 06:14 PM UTC
Mutation testing deliberately introduces small bugs ("mutants") into the code to check whether the test suite catches them; a surviving mutant means no test detected the injected bug. After about a year of work, contributors built bcoremutation, a mutation-testing tool tailored to Bitcoin Core (general C++/Rust tools existing but a project-specific tool being judged necessary), with weekly runs over a subset of files published on corecheck.
The goal is incremental mutation testing on the changes in each PR, though setup is still manual — deciding which tests to run is the open problem. Ideas discussed included using the fact that contributors often change tests alongside code as a signal for coverage, using LLMs to map tests to files and to propose fixes that kill surviving mutants, avoiding unproductive mutants (for example mutating log statements, filtered via the code's AST or regex on patterns like LogDebug), a dashboard for surviving mutants to avoid spammy PRs, and applying mutation testing to evaluate changes to fuzz targets.