Tools

Generated inputs

Property tests and fuzzers that find the inputs nobody thought to write down.

An agent that writes its own examples tends to pick ones that pass. A property says what must hold for every input, and the tool goes hunting for the input that breaks it. When it finds one, it shrinks the failure to the smallest case it can. Rule 28 says that case belongs in the Contract.

Property-based testing

  • Start here

    Bombadil

    Property-based testing for web and terminal UIs that explores the interface and checks stated properties.

    State rules a UI must always hold, then let it hunt for click paths that break them with no scripted flows.

    Pre-1.0, with v0.7.8 the latest release.

    Web Open source, MIT1.5k starsLatest release Oct 2026Source

  • Start here

    Eris

    Property-based testing for PHP that plugs into PHPUnit with generators and shrinking.

    The one credible property library for PHP, and it runs inside PHPUnit so the existing gate picks it up.

    PHP Open source, MIT440 starsLatest release Sep 2026

  • Start here

    fast-check

    Property-based testing for JavaScript and TypeScript with shrinking, model-based and race-condition testing.

    Works inside Jest and Vitest, so properties join an existing suite and the CI gate runs them unchanged.

    JavaScript/TypeScript Open source, MIT5.2k starsLatest release Sep 2026Source

  • Start here

    FsCheck

    QuickCheck for .NET with generators, shrinking and integration with xUnit, NUnit and Expecto.

    The long-standing default for .NET properties, usable from both F# and C#.

    .NET Open source, BSD-3-Clause1.3k starsLatest release Aug 2026Source

  • Start here

    Hedgehog

    Property testing with integrated shrinking that keeps the shrink rules inside each generator.

    Hand-written shrinkers disappear, so generators an agent writes still give clean minimal failures.

    Haskell/OCaml Open source, BSD-3-Clause701 starsSource

  • Start here

    Hypothesis

    Generates inputs from a description of valid data and shrinks failures to the smallest case.

    A property states a rule for all inputs, which makes a stronger Contract than the few examples an agent picked.

    Python Open source, MPL-2.09.1k starsLatest release Oct 2026Source

  • Start here

    jqwik

    A JUnit Platform engine for property-based tests with shrinking, stateful testing and edge-case injection.

    Runs under the JUnit runner the build already uses, so properties join the gate with no new pipeline.

    Java/JVM Open source, EPL-2.0852 starsLatest release May 2026Source

  • Start here

    prop_check

    Hypothesis-style property testing for Ruby with generators, shrinking and RSpec and Minitest hooks.

    Shrinking and composable generators suit properties on Rails domain logic.

    Ruby Open source, MIT110 stars

  • Start here

    PropEr

    QuickCheck-inspired property testing for Erlang with type-based generators and stateful testing.

    Stateful testing finds ordering bugs in processes and servers that example tests rarely reach.

    Licensed GPL-3.0, which matters for some commercial users.

    Elixir/Erlang Open source, GPL-3.0919 starsLatest release Mar 2025Source

  • Start here

    proptest

    Hypothesis-style property testing for Rust with strategies, shrinking and saved failure cases.

    Saved regression seeds turn every failure into a permanent test, which feeds bugs back into the Contract.

    Rust Open source, Apache-2.02.3k starsLatest release Apr 2020Source

  • Start here

    rapid

    Property-based testing for Go with generators, automatic shrinking and stateful model tests.

    State machine tests check a whole API against a simple model, which pins behavior better than examples do.

    Go Open source, MPL-2.0894 starsLatest release Apr 2026Source

  • Start here

    ScalaCheck

    Property-based testing for Scala and Java with generators, shrinking and commands for stateful systems.

    Integrates with ScalaTest, specs2 and munit, so properties run in the existing Scala CI.

    Java/JVM Open source, BSD-3-Clause2k starsLatest release Aug 2026Source

  • Start here

    StreamData

    Data generation and property-based testing for Elixir, built on lazy streams.

    Works with ExUnit, so properties sit next to ordinary tests.

    Elixir/Erlang Open source, Apache-2.0948 starsSource

  • Start here

    test.check

    QuickCheck-style generative testing for Clojure with shrinking, maintained as a core contrib library.

    Clojure's data-first style makes generators easy to compose, and spec can derive them automatically.

    Java/JVM Open source, EPL-1.01.2k stars

  • CsCheck

    Random testing library for C# with fast shrinking and model-based tests.

    A failure reproduces from one short seed string that can go straight into a regression test.

    .NET Open source, Apache-2.0251 stars

  • Hegel

    Property-based testing libraries for many languages that use Hypothesis as the generation engine.

    Brings Hypothesis-quality generation and shrinking to other stacks, and plugs into Antithesis for deeper exploration.

    Developer preview announced 2026-03-24 and built on Hypothesis, so it needs Python installed for now.

    JavaScript/TypeScript, Go, Rust, C/C++, Haskell/OCaml Open source, MITSource

  • Kotest property testing

    Generators, shrinking and property checks built into the Kotest framework.

    Kotlin syntax matches the rest of the suite, so agent-written properties look familiar to reviewers.

    Java/JVM Open source, Apache-2.0Part of KotestLatest release Sep 2026Source

  • quickcheck (Rust)

    A small Rust port of Haskell's QuickCheck that checks properties on random inputs.

    Quick to adopt for simple properties, with weaker shrinking than proptest.

    In maintenance mode but still receiving commits.

    Rust Open source, Unlicense2.8k starsSource

  • Rantly

    A Ruby generator library for random test data with a simple property check helper.

    Easy to start with. It shrinks less well than prop_check, so failures come back larger.

    Ruby Open source, MIT294 starsLatest release Oct 2024

  • RapidCheck

    QuickCheck-style property testing for C++ with shrinking and integration with Google Test and Catch.

    Stateful tests of C++ classes against a model prove behavior in code where bugs are expensive.

    C/C++ Open source, BSD-2-Clause1.1k stars

Fuzzing

  • Start here

    AFL++

    Community fork of AFL with better scheduling and mutators for coverage-guided fuzzing.

    The default fuzzer for native code. An agent can add a harness and let it run in CI.

    Relicensed from Apache-2.0 to AGPL-3.0-or-later on 2026-06-03, with many files still Apache-2.0 and an optional commercial license.

    C/C++ Open source, AGPL-3.0-or-later (some files Apache-2.0); relicensed from Apache-2.0 on 2026-06-036.8k starsLatest release Sep 2026Source

  • Start here

    Echidna

    Property-based fuzzer for smart contracts that checks invariants written in Solidity.

    Invariants written as code give money-moving contract logic a hard bar that agent changes must clear.

    Any language Open source, AGPL-3.03.2k starsLatest release Jul 2026

  • Atheris

    Coverage-guided fuzzer for Python code and native extensions, built on libFuzzer.

    Finds crashes in parsers and C extensions, and Hypothesis can drive it for structured inputs.

    Python Open source, Apache-2.01.7k stars

  • cargo-fuzz

    Cargo subcommand that runs libFuzzer against Rust fuzz targets.

    One command adds and runs a target, so a parser change can ship with its own fuzz run.

    Rust Open source, Apache-2.01.9k starsLatest release Jun 2026Source

  • ClusterFuzzLite

    Runs fuzzers on pull requests inside CI such as GitHub Actions.

    It fires on every change, which turns fuzzing into a gate.

    Python, Go, Rust, Java/JVM, C/C++ Open source, Apache-2.0538 starsSource

  • Code Intelligence (CI Fuzz)

    Commercial continuous fuzzing platform built around the open source Jazzer and Jazzer.js.

    Adds triage and CI reporting to fuzz tests that live in the codebase.

    JavaScript/TypeScript, Go, Java/JVM, C/C++ PaidSource

  • EvoMaster

    Evolutionary fuzzer that writes system-level tests for web service APIs.

    Produces runnable regression tests from a service's API, a starting suite for legacy endpoints an agent will touch.

    Research-grade, strongest on JVM backends.

    JavaScript/TypeScript, Java/JVM, .NET Open source, LGPL-3.0790 starsLatest release Sep 2026Source

  • Fuzzilli

    Mutation-based fuzzer for JavaScript engines that works on an intermediate language.

    Niche. It suits teams building engines or interpreters.

    JavaScript/TypeScript Open source, Apache-2.02.3k starsLatest release Feb 2023

  • Go native fuzzing

    Coverage-guided fuzzing built into go test through FuzzXxx functions and a saved corpus.

    Needs no extra tool, and failing inputs land in testdata as regression tests the agent must keep green.

    Go Open source, BSD-3-ClausePart of Go toolchainSource

  • honggfuzz

    Multi-process, feedback-driven fuzzer with hardware-based coverage on some platforms.

    A second engine to run beside AFL++ on the same harness, finding different bugs.

    C/C++ Open source, Apache-2.03.4k starsLatest release Jul 2024

  • Jazzer

    Coverage-guided fuzzer for the JVM built on libFuzzer, with JUnit integration.

    Fuzz tests run as ordinary JUnit tests, so the Java build's gate runs them.

    Java/JVM Open source, Apache-2.01.3k starsLatest release Feb 2026

  • Jazzer.js

    Coverage-guided fuzzer for Node.js with Jest integration.

    Fuzz targets sit in the Jest suite, next to the tests agents already write.

    JavaScript/TypeScript Open source, Apache-2.0361 starsLatest release Apr 2026

  • JQF + Zest

    Feedback-guided fuzzing for Java that mixes QuickCheck-style generators with coverage guidance.

    The generator knows the input structure and coverage steers it into deep branches.

    Java/JVM Open source, BSD-2-Clause744 starsLatest release Jul 2026

  • LibAFL

    A Rust library for building custom fuzzers with swappable parts.

    Build a structure-aware fuzzer for an unusual target when stock engines do not fit.

    Rust, C/C++ Open source, MIT OR Apache-2.02.6k starsLatest release Aug 2026

  • libFuzzer

    In-process, coverage-guided fuzzing engine built into LLVM.

    Harness functions are small enough for an agent to write quickly. It also powers cargo-fuzz, Jazzer and OSS-Fuzz.

    In maintenance mode, and LLVM says new features go elsewhere.

    Rust, Swift/iOS, C/C++ Open source, Apache-2.0 WITH LLVM-exceptionPart of LLVMLatest release Oct 2026Source

  • Mayhem

    Commercial fuzzing and API testing platform that combines fuzzing with symbolic execution.

    Managed fuzzing with CI hooks for teams that want no part in running engines.

    Formerly ForAllSecure. Bugcrowd acquired Mayhem Security, announced 2025-11-04.

    Go, Rust, Java/JVM, C/C++ Paid

  • OSS-Fuzz

    Free continuous fuzzing service from Google for qualifying open source projects.

    Always-on fuzzing for open source code, with harnesses an agent can help write and keep current.

    Open source projects only.

    Python, JavaScript/TypeScript, Go, Rust, Java/JVM, C/C++ Open source, Apache-2.013k starsSource

  • PHP-Fuzzer

    Coverage-guided fuzzer for PHP libraries, written in PHP.

    A rare option for PHP, good for parsers and validators.

    PHP Open source, MIT445 starsLatest release May 2025

  • RESTler

    Stateful REST API fuzzer from Microsoft that infers request sequences from an OpenAPI spec.

    Finds bugs that need several calls in order, which single-request checks miss.

    Any language Open source, MIT3k stars

  • Ruzzy

    Coverage-guided fuzzer for pure Ruby code and Ruby C extensions, from Trail of Bits.

    The one serious Ruby fuzzer, handy for parsers and gems with native code.

    Licensed AGPL-3.0 since its first commit, which matters for some commercial users.

    Ruby Open source, AGPL-3.0119 stars

  • SharpFuzz

    AFL and libFuzzer instrumentation for .NET assemblies.

    Points standard fuzz engines at C# parsers.

    .NET Open source, MIT475 starsLatest release Jan 2025

  • syzkaller

    Coverage-guided kernel fuzzer that generates system call programs.

    Matters to the few teams where agents write kernel or driver code.

    C/C++ Open source, Apache-2.06.3k stars

Deterministic simulation

  • Start here

    Antithesis

    Runs your whole system in a deterministic simulator with fault injection and replayable bug reports.

    Exposes the rare timing bugs that agent-written distributed code produces, and every failure replays exactly so the agent can fix it.

    Agent skills and the Snouty CLI are available, and Snouty is under active development and likely to change.

    Any language Paid

  • FoundationDB simulation

    The deterministic simulation framework behind FoundationDB, which popularized the method.

    The proof that simulation catches bugs unit tests cannot, and the design reference for the other tools here.

    Reusable only inside FoundationDB's codebase.

    C/C++ Open source, Apache-2.0Part of FoundationDBLatest release Apr 2026Source

  • Fray

    Controlled concurrency testing for the JVM that explores thread schedules and replays failures.

    Found real bugs in Kafka, Lucene and Guava, and it fits JVM tests with no rewrite.

    Java/JVM Open source, Apache-2.0494 starsLatest release Jul 2026

  • gosim

    Simulation testing for Go that controls goroutines, time, network and disk deterministically.

    The closest Go equivalent of FoundationDB-style simulation, though development has stalled.

    No push since December 2024.

    Go Open source, MIT81 stars

  • Hermit

    Runs Linux programs in a deterministic sandbox and can explore thread schedules to find races.

    Makes a flaky test reproducible with no code changes, so an agent can chase down intermittent failures.

    Experimental, from Meta.

    Any language Open source, BSD-3-Clause1.4k stars

  • Jepsen

    Framework for testing distributed databases under partitions and clock faults, then checking histories for consistency.

    The standard for finding out what consistency a store delivers, which an agent's own tests cannot show.

    Java/JVM Open source, EPL-1.07.5k starsLatest release Sep 2026Source

  • loom

    Exhaustive permutation testing of concurrent Rust code under the C11 memory model.

    Checks every legal ordering for small concurrent pieces, a proof-like result for lock-free code.

    Rust Open source, MIT2.8k starsLatest release Aug 2025

  • madsim

    Deterministic simulator for Rust async code that replaces tokio's runtime, network and clock.

    Distributed Rust code gets tested against injected failures with a seed that always replays.

    Rust Open source, Apache-2.01.2k stars

  • Maelstrom

    A workbench for toy distributed systems in any language that talk over JSON on stdin and stdout.

    A quick way to check an agent's protocol implementation against a checker before building anything bigger.

    Any language Open source, EPL-1.03.7k starsLatest release Dec 2024

  • Microsoft Coyote

    Systematic testing of .NET async code that explores task interleavings and injects failures.

    The main option for deterministic testing of C# services written with async and tasks.

    .NET Open source, MIT1.6k starsSource

  • Shadow

    Runs real unmodified Linux programs in a simulated network and clock.

    Tests unchanged binaries under controlled network conditions, useful when agents write networked services in any language.

    Any language Open source, GPL-3.01.7k starsLatest release Oct 2025Source

  • Shuttle

    Randomized scheduler testing for concurrent Rust code from AWS.

    Explores thread interleavings at scale, which suits concurrent code that agents tend to get subtly wrong.

    Rust Open source, Apache-2.01.1k starsLatest release Oct 2026

  • TigerBeetle VOPR

    The simulator inside TigerBeetle that replays a whole cluster with injected faults from a seed.

    A model for how a spec-first system tests itself, worth copying when agents write storage or consensus code.

    The simulator is part of the database repo and ships as no separate library.

    Any language Open source, Apache-2.0Part of TigerBeetleLatest release Jul 2026Source

  • turmoil

    Tokio's test framework that simulates hosts and a faulty network inside one process.

    Network partitions and message loss become ordinary unit tests an agent can write and rerun.

    Rust Open source, MIT1.3k starsLatest release Apr 2026

Gone quiet 2

These tools are archived or shut down, or nobody has released or committed to them in two years. Some still work fine. Read the note before you adopt one.

  • go-fuzz

    Early coverage-guided fuzzer for Go that predates the built-in one.

    Only matters on old Go versions.

    Superseded by Go native fuzzing (go test -fuzz).

    Go Open source, Apache-2.04.8k starsLast change Sep 2024

  • SwiftCheck

    QuickCheck for Swift with generators, shrinking and XCTest integration.

    The only established property library for Swift. Check that it builds with current toolchains.

    No activity since 2022.

    Swift/iOS Open source, MIT1.4k starsLast change Apr 2022

Missing a tool that belongs here? Suggest it.

Every tool here was checked against its GitHub repository or its own site on 6 October 2026. Stars and dates come from GitHub on that day.