Open-source testing software
1069 open-source libraries, tools and applications tagged testing, ranked by how closely testing is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
1069 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| Behat Behat is a behavior-driven development (BDD) testing framework for PHP that lets teams write executable business expectations in Gherkin sy… | 98 | 3972 | stable |
| SpotBugs SpotBugs is a static analysis tool that finds bugs in Java bytecode, serving as the community-maintained successor to the abandoned FindBug… | 99 | 3954 | active |
| tox-dev/tox tox is a command-line tool that automates and standardizes testing in Python by creating isolated virtual environments and running test com… | 95 | 3943 | active |
| nakabonne/ali ali is a Go-based HTTP load testing CLI tool that generates HTTP traffic against a target URL and plots performance metrics in real time wi… | 54 | 3940 | active |
| hardkoded/puppeteer-sharp PuppeteerSharp is a .NET port of the official Node.js Puppeteer API for controlling headless or headful Chrome and Firefox. It supports nav… | 99 | 3928 | active |
| americanexpress/jest-image-snapshot A Jest matcher that performs image comparisons using pixelmatch, behaving like Jest snapshots. It is most commonly used for visual regressi… | 79 | 3917 | active |
| ArchUnit ArchUnit is a free, extensible Java library for checking the architecture of Java code by analyzing bytecode and asserting rules as plain u… | 93 | 3847 | stable |
| fluentassertions/fluentassertions Fluent Assertions is a .NET library providing an extensive set of extension methods for writing readable, fluent assertions in TDD and BDD-… | 98 | 3816 | active |
| FactoryBoy/factory_boy factory_boy is a Python test fixtures replacement inspired by Ruby's factory_bot. It lets developers define declarative factories for creat… | 56 | 3811 | stable |
| Sorbet Sorbet is a fast, gradual static type checker for Ruby, built in C++ at Stripe. It ships as a CLI (srb tc) plus a runtime gem for type anno… | 96 | 3806 | active |
| MailHog MailHog is an email testing tool that runs a fake SMTP server and exposes a web UI and JSON API for inspecting outgoing messages. It can op… | 23 | 16189 | maintenance |
| fortio/fortio Fortio is a Go-based load testing library, CLI tool, and web UI originally built for Istio. It generates load at a specified queries-per-se… | 99 | 3734 | stable |
| schemathesis/schemathesis Schemathesis is a Python-based API testing tool that automatically generates test cases from OpenAPI and GraphQL schemas using property-bas… | 96 | 3680 | active |
| Gauge Taiko is a free and open-source Node.js library for browser automation and end-to-end testing of modern web applications, supporting Chromi… | 90 | 3674 | active |
| menzi11/BullshitGenerator A JavaScript-based generator of nonsensical Chinese filler text ('BullshitGenerator') intended for testing GUI text rendering. It assembles… | 32 | 15496 | maintenance |
| auchenberg/volkswagen A satirical Node.js library that detects when tests are running on a CI server and forces them to pass, inspired by the Volkswagen emission… | 60 | 15464 | maintenance |
| Spock Spock is a testing and specification framework for JVM developers that combines BDD-style readable specifications with powerful built-in mo… | 71 | 3629 | active |
| alicebob/miniredis Miniredis is a pure Go implementation of (parts of) the Redis server designed for use in Go unit tests. It runs an in-memory Redis server w… | 87 | 3623 | stable |
| garden-io/garden Garden is a DevOps automation CLI for developing and testing Kubernetes applications faster. It spins up production-like environments on de… | 93 | 3620 | active |
| Shoulda A Ruby gem providing RSpec- and Minitest-compatible one-liner matchers for testing common Rails functionality like validations, association… | 80 | 3581 | stable |
| UIAutomation A Python 3 wrapper around Microsoft's UIAutomation API for automating and inspecting Windows desktop application GUIs. It supports controls… | 67 | 3581 | active |
| model-checking/kani Kani is a bit-precise model checker for Rust that formally verifies safety and correctness properties of Rust programs. It uses proof harne… | 94 | 3572 | active |
| millionco/expect Expect is a CLI tool and MCP skill that reads your git changes, generates a test plan, and runs it in a real browser using Playwright. It i… | 60 | 3561 | active |
| argos-ci/jest-puppeteer jest-puppeteer is a Jest preset that integrates Puppeteer for browser-based end-to-end testing. It manages browser lifecycle and exposes a … | 64 | 3543 | stable |
| AutoFixture/AutoFixture AutoFixture is an open-source .NET library that automates the creation of test data and object graphs, minimizing the 'Arrange' phase of un… | 81 | 3540 | stable |
| ctimmerm/axios-mock-adapter An axios adapter that intercepts and mocks HTTP requests made with the axios client. It lets developers define canned responses, delays, ne… | 49 | 3540 | stable |
| behave behave is a behavior-driven development (BDD) testing framework for Python that runs tests written in Gherkin natural-language syntax backe… | 78 | 3534 | active |
| grosser/parallel_tests A Ruby gem that speeds up test suites by splitting Minitest, RSpec, Cucumber, Spinach, and Turnip tests into balanced groups and running th… | 75 | 3524 | active |
| mxschmitt/playwright-go Playwright for Go is a Go library that automates Chromium, Firefox, and WebKit browsers through a single API, supporting both headless and … | 90 | 3510 | active |
| whitesmith/rubycritic RubyCritic is a Ruby gem that wraps static analysis tools like Reek, Flay, and Flog to generate a quality report of Ruby code. It provides … | 76 | 3503 | active |
| VerifyTests/Verify Verify is a .NET snapshot (approval) testing library that serializes test results and compares them against stored snapshot files. It integ… | 95 | 3472 | active |
| qawolf/cli QA Wolf CLI is a TypeScript command-line tool for running and managing QA Wolf end-to-end test flows locally or in CI, built on Playwright … | 96 | 3457 | active |
| json-schema-faker/json-schema-faker A JavaScript library that generates valid, realistic fake JSON data from JSON Schema definitions, supporting JSON Schema 2019-09 and 2020-1… | 86 | 3447 | active |
| travisjeffery/timecop Timecop is a Ruby gem that provides time travel, time freezing, and time acceleration capabilities for testing time-dependent code. It offe… | 75 | 3426 | stable |
| coveragepy/coveragepy Coverage.py is the standard code coverage measurement tool for Python, tracking which lines of code execute during test runs. It uses Pytho… | 99 | 3423 | stable |
| callstack/react-native-testing-library React Native Testing Library is a TypeScript library providing simple and complete testing utilities for React Native components, built on … | 98 | 3420 | active |
| uber-go/mock GoMock (go.uber.org/mock) is a mocking framework for Go that generates mock implementations of interfaces via the mockgen code-generation t… | 69 | 3416 | active |
| minitest Minitest is a small, fast, and readable testing suite for Ruby supporting TDD, BDD, spec-style expectations, and benchmarking. It ships as … | 70 | 3414 | stable |
| shouldly/shouldly Shouldly is a .NET assertion library for unit tests that focuses on clear, expressive failure messages by embedding the asserted source exp… | 66 | 3414 | active |
| google/honggfuzz Honggfuzz is a security-oriented, feedback-driven evolutionary fuzzer that uses software and hardware code coverage to discover bugs in bin… | 66 | 3397 | active |
| bojand/ghz ghz is a command-line utility and Go package for benchmarking and load testing gRPC services. It supports unary, streaming, and duplex call… | 71 | 3358 | active |
| pester/Pester Pester is the ubiquitous test and mock framework for PowerShell, providing a Describe/Context/It DSL with Should assertions and powerful co… | 96 | 3346 | active |
| ChangemakerStudios/Papercut-SMTP Papercut SMTP is a desktop application that runs a local SMTP server and displays every email your application sends, so nothing is ever de… | 90 | 3339 | active |
| testing-library/dom-testing-library DOM Testing Library is a lightweight JavaScript library providing utilities for querying and interacting with DOM nodes in tests, in a way … | 84 | 3335 | active |
| STF Smartphone Test Farm (STF) is a self-hosted web application for remotely controlling and debugging Android smartphones, smartwatches, and o… | 23 | 13948 | maintenance |
| nextest-rs/nextest cargo-nextest is a next-generation test runner for Rust, running tests up to 3x faster than cargo test with per-test process isolation. It … | 94 | 3323 | active |
| minitap-ai/mobile-use An open-source Python AI agent framework that controls real Android and iOS devices using natural language commands, built on LangGraph. It… | 71 | 3298 | active |
| open-policy-agent/conftest Conftest is a CLI utility for writing tests against structured configuration data using the Open Policy Agent Rego language. It validates f… | 98 | 3274 | active |
| postmanlabs/httpbin httpbin is a simple HTTP request and response service written in Python with Flask that echoes back request details as JSON. It is used for… | 23 | 13625 | maintenance |
| shivammathur/setup-php A GitHub Action that installs PHP with specified extensions, php.ini configuration, coverage drivers (Xdebug, PCOV), and tools like Compose… | 91 | 3260 | active |
| inducer/pudb PuDB is a full-screen, console-based visual debugger for Python built on urwid. It provides GUI-like debugging features such as syntax-high… | 95 | 3250 | active |
| dmtrKovalenko/odiff ODiff is a very fast pixel-by-pixel image comparison library and CLI tool written in Zig with SIMD optimizations (SSE2, AVX2, AVX512, NEON)… | 91 | 3235 | active |
| lackeyjb/playwright-skill An Agent Skill and Claude Code plugin that lets coding agents write and execute Playwright automation scripts on the fly, from simple page … | 80 | 3221 | active |
| Wisser/Jailer Jailer is a Java-based tool for database subsetting and relational data browsing. It extracts small, referentially intact slices of product… | 98 | 3205 | active |
| alexei-led/pumba Pumba is a chaos testing and network emulation CLI tool for Docker, containerd, and Podman containers. It can kill, stop, pause, or remove … | 95 | 3177 | active |
| coverlet-coverage/coverlet Coverlet is a cross-platform code coverage framework for .NET that supports line, branch, and method coverage. It integrates via multiple d… | 93 | 3174 | active |
| FlaUI/FlaUI FlaUI is a .NET library for automated UI testing of Windows applications (Win32, WinForms, WPF, Store Apps), wrapping Microsoft's native UI… | 63 | 3171 | active |
| laravel/pint Laravel Pint is an opinionated PHP code style fixer built on top of PHP-CS-Fixer. It provides a zero-configuration CLI for keeping PHP code… | 97 | 3169 | active |
| vim-test/vim-test A Vim/Neovim plugin that wraps many test runners so you can run tests at different granularities (file, nearest test, suite) directly from … | 90 | 3164 | active |
| Chachamaru127/claude-code-harness A development harness plugin for Claude Code (and Codex CLI, Cursor, Grok) that enforces a disciplined Plan→Work→Review→Release loop with s… | 77 | 3160 | active |
| Stryker Stryker is a mutation testing tool family that measures the effectiveness of your unit tests by automatically inserting bugs (mutants) into… | 95 | 3156 | active |
| Phoronix Test Suite The Phoronix Test Suite is an open-source, cross-platform automated benchmarking and testing platform written in PHP. It provides an extens… | 66 | 3145 | stable |
| thoughtbot/factory_bot_rails factory_bot_rails provides Rails integration for Factory Bot, a fixtures replacement library for defining test data with a straightforward … | 64 | 3139 | stable |
| wolfcw/libfaketime libfaketime is an LD_PRELOAD library that intercepts system calls retrieving the current date and time, reporting faked times to a single a… | 85 | 3122 | active |
| neotest Neotest is an extensible framework for interacting with tests inside NeoVim, providing test running, result display, diagnostics, and summa… | 90 | 3114 | active |
| Selenium Selenium IDE is an open-source record-and-playback test automation tool for the web, available as a Chrome/Firefox browser extension and an… | 49 | 3111 | active |
| opengrep/opengrep Opengrep is an open-source static application security testing (SAST) engine forked from Semgrep under LGPL-2.1, supporting pattern-based c… | 81 | 3106 | active |
| ReportGenerator ReportGenerator is a command-line tool that converts code coverage reports from tools like coverlet, OpenCover, dotCover, Cobertura, JaCoCo… | 95 | 3097 | active |
| InSpec Chef InSpec is an open-source testing framework for infrastructure that expresses compliance, security, and policy requirements as human- a… | 89 | 3097 | active |
| rewire rewire is a Node.js library that adds special setter and getter methods to CommonJS modules so tests can inject mocks, override private var… | 51 | 3089 | active |
| symfony/panther Symfony Panther is a PHP library for browser testing and web scraping that drives real browsers (Chrome, Firefox) via the W3C WebDriver pro… | 66 | 3067 | active |
| Sonobuoy Sonobuoy is a Go CLI diagnostic tool that runs Kubernetes conformance tests and custom plugins against a cluster to generate informative, n… | 77 | 3051 | active |
| chromium/badssl.com badssl.com is a hosted collection of test subdomains, each deliberately configured with a broken or unusual TLS/SSL setup (expired certific… | 67 | 3051 | active |
| jbogard/Respawn Respawn is a .NET library that intelligently resets test databases to a clean state between integration tests. It analyzes foreign key rela… | 51 | 3027 | active |
| xd009642/tarpaulin Tarpaulin is a code coverage reporting tool for Rust projects built on the Cargo build system. It runs a project's tests and reports line c… | 97 | 3023 | active |
| microsoft/playwright-dotnet The official .NET port of Playwright, a library for automating Chromium, Firefox, and WebKit browsers through a single API. It supports end… | 96 | 3023 | active |
| kevin1024/vcrpy VCR.py is a Python library that records HTTP interactions to cassette files and replays them in later test runs, eliminating real network t… | 94 | 3020 | active |
| symfony/browser-kit Symfony BrowserKit is a PHP component that simulates the behavior of a web browser, enabling programmatic requests, link clicks, and form s… | 92 | 3008 | stable |
| software-mansion/argent Argent is an agentic toolkit by Software Mansion that gives AI assistants (via an MCP server and skills) direct control of iOS simulators, … | 82 | 3003 | active |
| klee/klee KLEE is a dynamic symbolic execution engine and symbolic virtual machine built on LLVM, which executes programs with symbolic inputs to aut… | 88 | 2985 | active |
| nsubstitute/NSubstitute NSubstitute is a mocking library for .NET that generates substitute instances for interfaces and virtual members with a succinct, natural s… | 94 | 2978 | stable |
| mitsuhiko/insta Insta is a snapshot (approval) testing library for Rust that asserts values against managed reference snapshots. It includes a companion ca… | 98 | 2971 | stable |
| Database Cleaner A set of Ruby gems providing strategies for cleaning databases, primarily to ensure a clean state during tests. It supports multiple ORMs a… | 67 | 2967 | active |
| microsoft/restler-fuzzer RESTler is the first stateful REST API fuzzing tool, automatically testing cloud services through their REST APIs to find security and reli… | 67 | 2957 | active |
| softwaremill/elasticmq ElasticMQ is an in-memory message queue system that implements an Amazon SQS-compatible REST interface. It can run stand-alone (including v… | 86 | 2950 | active |
| VibiumDev/vibium Vibium is a browser automation tool built on WebDriver BiDi that gives AI coding agents a way to verify their work by driving a real browse… | 80 | 2935 | active |
| Karma Karma is a JavaScript test runner that executes tests in multiple real browsers, originally built to make test-driven development easy and … | 58 | 11952 | maintenance |
| testem/testem Testem is a JavaScript test runner that executes tests in real desktop browsers (Chrome, Firefox, Safari, Edge), Node, or custom launchers.… | 98 | 2918 | active |
| wemake-services/wemake-python-styleguide wemake-python-styleguide is the strictest and most opinionated Python linter, implemented as a flake8 plugin. It enforces a comprehensive s… | 93 | 2918 | active |
| jest-community/vscode-jest A VS Code extension that integrates Jest testing directly into the editor, providing TestExplorer integration, watch mode, coverage display… | 54 | 2889 | active |
| mc1arke/sonarqube-community-branch-plugin A community plugin for SonarQube Community Edition that enables branch analysis and pull request decoration, features normally reserved for… | 89 | 2883 | active |
| cashapp/turbine Turbine is a small Kotlin testing library for kotlinx.coroutines Flow. It wraps flows in a Turbine channel-based API with awaitItem/awaitCo… | 67 | 2864 | active |
| DotNetAnalyzers/StyleCopAnalyzers StyleCop.Analyzers implements StyleCop style rules as Roslyn analyzers for C#, distributed as a NuGet package. It includes code fixes for m… | 86 | 2860 | active |
| typegoose/mongodb-memory-server A Node.js library that programmatically downloads and spins up real MongoDB server binaries for testing, holding data in memory with zero o… | 97 | 2852 | active |
| doctrine/data-fixtures Doctrine Data Fixtures is a PHP library for managing and loading data fixtures into databases via the Doctrine ORM or ODM. It provides a fi… | 84 | 2851 | stable |
| nut.js nut.js is a cross-platform native UI automation and testing library for Node.js/TypeScript that controls mouse, keyboard, screen, and windo… | 23 | 2851 | active |
| AssertJ AssertJ is a Java library providing a rich set of strongly-typed, fluent assertions for unit testing with JUnit, TestNG, or any other test … | 85 | 2849 | stable |
| pexpect/pexpect Pexpect is a pure Python, Expect-like module for spawning and controlling interactive child applications in a pseudo-terminal. It lets scri… | 26 | 2849 | stable |
| tokio-rs/loom Loom is a testing tool for concurrent Rust code that exhaustively explores possible interleavings of concurrent executions under the C11 me… | 50 | 2834 | active |
| sorry-cypress/sorry-cypress Sorry Cypress is an open-source, self-hosted alternative to the Cypress Dashboard that provides unlimited test parallelization, screenshots… | 38 | 2808 | active |