Open-source testing software
1682 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.
1682 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| eykrehbein/strest Strest is a CLI tool for testing REST APIs using declarative YAML test files. It supports chaining requests (e.g., reusing auth tokens from… | 10 | 1719 | maintenance |
| n7olkachev/imgdiff imgdiff is a fast command-line tool written in Go that compares two images pixel-by-pixel and optionally renders a visual diff output image… | 23 | 1706 | maintenance |
| Midje Midje is a testing framework for Clojure that offers a readable, fact-based style of writing tests and a migration path from clojure.test. … | 32 | 1698 | maintenance |
| crossbario/autobahn-testsuite A fully automated test suite for verifying WebSocket client and server implementations against RFC 6455 specification conformance and robus… | 77 | 1690 | maintenance |
| AdevintaSpain/Barista Barista is a Kotlin/Java library built on top of Espresso that simplifies writing Android UI instrumentation tests with a clean, discoverab… | 23 | 1690 | maintenance |
| facebookarchive/planout PlanOut is a framework and domain-specific language for online field experimentation, letting developers define how units (e.g., users) are… | 10 | 1681 | maintenance |
| lost-pixel/lost-pixel Lost Pixel is an open-source visual regression testing tool and GitHub Action that compares screenshots from Storybook, Ladle, Histoire, pa… | 10 | 1679 | maintenance |
| hamelsmu/evals-skills A collection of skills (prompts/instructions) that guide AI coding agents like Claude Code through building and auditing LLM evaluation pip… | 10 | 1677 | maintenance |
| githublitao/api_automation_test A self-hosted API automation testing platform built with Django REST framework on the backend and Vue + ElementUI on the frontend. It provi… | 62 | 1670 | maintenance |
| jsverify/jsverify JSVerify is a property-based testing library for JavaScript, inspired by Haskell's QuickCheck. It generates random test inputs, verifies us… | 23 | 1659 | maintenance |
| aosp-mirror/platform_frameworks_support The AOSP Android Support Library (the predecessor to AndroidX/Jetpack), a set of Java libraries providing backward-compatible UI components… | 10 | 1655 | maintenance |
| j-easy/easy-random Easy Random is a Java library that generates random instances of arbitrary Java beans and records via an EasyRandom API extending java.util… | 89 | 1652 | maintenance |
| json-schema-validator A pure Java implementation of JSON Schema validation supporting draft v4 (with hyperschema) and draft v3, focused on correctness and perfor… | 23 | 1641 | maintenance |
| andywer/leakage Leakage is a Node.js library for detecting memory leaks by running a function repeatedly and analyzing V8 heap snapshot diffs. It integrate… | 23 | 1588 | maintenance |
| specta/expecta Expecta is a matcher (assertion) framework for Objective-C and Cocoa that provides a readable, type-agnostic expect() syntax for test asser… | 23 | 1580 | maintenance |
| re_data re_data is an open-source data reliability framework built as a dbt package for the modern data stack. It computes data quality metrics, de… | 23 | 1572 | maintenance |
| github/lightcrawler Lightcrawler is a Node.js CLI tool that crawls a website by following links and runs each discovered page through Google Lighthouse audits.… | 10 | 1569 | maintenance |
| vowsjs/vows Vows is a behavior-driven development (BDD) testing framework for Node.js, built specifically for testing asynchronous code. It organizes t… | 59 | 1556 | maintenance |
| assaf/vanity Vanity is an A/B testing (split testing) framework for Ruby on Rails that lets developers define experiments, present variants to users, an… | 10 | 1526 | maintenance |
| admc/wd WD.js is a Node.js client library for the WebDriver/Selenium 2 protocol, supporting multiple programming styles including promises, chainin… | 32 | 1521 | maintenance |
| fossasia/pslab-test-jig Design files and documentation for the PSLab Test Jig, a hardware fixture used in production to test Pocket Science Lab open-hardware board… | 32 | 1519 | maintenance |
| mhevery/jasmine-node jasmine-node integrates the Jasmine BDD spec framework (version 1) with Node.js, letting you run describe/it specs from the command line. I… | 32 | 1509 | maintenance |
| MTHawkeye MTHawkeye is a plugin-based profiling and debugging library for iOS apps, developed at Meitu, covering memory leaks, main-thread stalls, ne… | 23 | 1506 | maintenance |
| google/gofuzz A Go library for populating Go objects with random values, useful for fuzz-style testing of serialization and panic robustness. It also int… | 10 | 1493 | maintenance |
| patrick-kidger/torchtyping A Python library providing type annotations for PyTorch tensors' shape, dtype, layout, and dimension names, with optional runtime checking … | 37 | 1485 | maintenance |
| kylef/Mockingjay Mockingjay is a Swift library for stubbing HTTP/HTTPS requests made via NSURLConnection or NSURLSession, including requests from libraries … | 23 | 1484 | maintenance |
| microsoft/pict PICT is a command-line tool from Microsoft that generates compact pairwise (combinatorial) test cases from a model file of parameters and v… | 67 | 1478 | maintenance |
| egonSchiele/contracts.ruby contracts.ruby is a Ruby library for design-by-contract programming, letting you declare one-line contracts above methods that validate arg… | 76 | 1457 | maintenance |
| nvzqz/RandomKit RandomKit is a Swift framework that simplifies random data generation across Swift and Foundation types using protocol-oriented design. It … | 23 | 1454 | maintenance |
| wummel/linkchecker LinkChecker is a GPL-licensed Python tool that checks links in web documents or crawls entire websites to find broken links. It supports re… | 32 | 1434 | maintenance |
| typelift/SwiftCheck SwiftCheck is a property-based testing library for Swift, porting the Haskell QuickCheck approach. It automatically generates random test d… | 23 | 1427 | maintenance |
| testdouble.js testdouble.js (td.js) is a minimal, opinionated test double library for JavaScript that provides stubbing, spying, and verification for tes… | 76 | 1425 | maintenance |
| jonnnnyw/php-phantomjs A PHP library that wraps the PhantomJS headless browser, letting PHP applications load web pages with full JavaScript support and inspect t… | 10 | 1425 | maintenance |
| testdouble/suture Suture is a Ruby gem that makes it safer to refactor or fully reimplement poorly-understood legacy code. It supports the whole refactor lif… | 75 | 1418 | maintenance |
| jejacks0n/teaspoon Teaspoon is a JavaScript test runner built as a Ruby gem for Rails applications. It runs tests in the browser or headlessly via PhantomJS o… | 23 | 1418 | maintenance |
| Hermit Hermit is a Rust CLI tool that runs unmodified x86-64 Linux programs inside a hermetic sandbox, controlling sources of nondeterminism such … | 77 | 1417 | maintenance |
| galenframework/galen Galen Framework is an open-source tool for testing the layout and responsive design of web applications, using a human-readable spec langua… | 23 | 1416 | maintenance |
| google/firing-range Firing Range is a deliberately vulnerable Java web application that serves as a test bed for web application security scanners. It provides… | 10 | 1411 | maintenance |
| kr/pretty A small Go library that provides pretty-printing for Go values, including a fmt-compatible Formatter and convenience wrappers around fmt an… | 32 | 1410 | maintenance |
| safety-research/bloom Bloom is a Python tool that automatically generates behavioral evaluation suites for LLMs, probing target models for behaviors like sycopha… | 52 | 1408 | maintenance |
| rakyll/gotest gotest is a Go CLI wrapper around `go test` that adds colored output for pass/fail results. It accepts all standard `go test` flags and sup… | 53 | 1394 | maintenance |
| Tencent/GAutomator GAutomator is an open-source UI automation testing framework for mobile games, modeled after Android's uiautomator. It interacts with game … | 23 | 1380 | maintenance |
| HashNuke/hound Hound is an Elixir library for browser automation and writing integration tests, implementing the WebDriver Wire Protocol. It supports mult… | 23 | 1368 | maintenance |
| acoomans/SimulatorRemoteNotifications An Objective-C library that extends UIApplication to receive mock remote notifications on the iOS simulator via a mini UDP server. It inclu… | 32 | 1366 | maintenance |
| pixielabs/cavy Cavy is a cross-platform integration and end-to-end testing framework for React Native apps, written in pure JavaScript. It lets tests inte… | 32 | 1365 | maintenance |
| vivo/MoonBox Moonbox is a noninvasive server-side traffic capture and replay platform built on the JVM-Sandbox ecosystem (jvm-sandbox-repeater). It reco… | 57 | 1345 | maintenance |
| go-validator/validator A Go library that validates struct fields via struct tags, with built-in validators like min, max, len, nonzero, nonnil, and regexp, plus s… | 23 | 1334 | maintenance |
| TokenMarket Security Token Toolkit A collection of audited Ethereum smart contracts plus a Python command-line toolchain for launching and managing token sales (crowdsales/IC… | 32 | 1325 | maintenance |
| OpenCover/opencover OpenCover is a code coverage tool for .NET 2 and above on Windows, supporting 32 and 64-bit processes with both branch and sequence point c… | 10 | 1323 | maintenance |
| Takin Takin is a Java-based open-source full-link performance testing platform for online and test environments, especially for microservices arc… | 23 | 1321 | maintenance |
| basecamp/mail_view MailView is a Ruby gem that lets Rails developers preview plain text and HTML email templates in a browser without actually sending mail. I… | 10 | 1321 | maintenance |
| clojure/core.typed core.typed is an optional (gradual) type system for Clojure, provided as a library with a static type checker and runtime dependencies. It … | 56 | 1314 | maintenance |
| square/cane Cane is a Ruby CLI tool that fails your build if code quality thresholds (ABC complexity, style, documentation coverage) are not met. It is… | 32 | 1305 | maintenance |
| aoh/radamsa Radamsa is a general-purpose fuzzer that mutates input data to test software robustness against malformed input. This GitHub repository is … | 23 | 1297 | maintenance |
| devxoul/RxTodo RxTodo is an open-source iOS todo application built with RxSwift and ReactorKit, serving as a reference example for reactive iOS architectu… | 32 | 1286 | maintenance |
| joealcorn/laboratory A Python library inspired by GitHub's Scientist for safely refactoring critical code paths by running experiments in production. It execute… | 55 | 1282 | maintenance |
| gabrielfalcao/lettuce Lettuce is a behavior-driven development (BDD) testing framework for Python, inspired by Cucumber for Ruby. It lets teams write acceptance … | 32 | 1275 | maintenance |
| csmith-project/csmith Csmith is a random generator of C programs whose primary purpose is finding compiler bugs via differential testing. It emits C programs fre… | 60 | 1249 | maintenance |
| jfairbank/redux-saga-test-plan A JavaScript testing library for Redux Saga that provides chainable assertion APIs for both unit and integration testing of sagas. It offer… | 56 | 1242 | maintenance |
| venantius/ultra Ultra is a Leiningen plugin that enhances the Clojure development environment with a colorized REPL, syntax-highlighted source, clearer tes… | 23 | 1233 | maintenance |
| calogica/dbt-expectations A dbt extension package that ports Great Expectations-style data quality tests as dbt test macros. It lets data teams run expectation tests… | 23 | 1232 | maintenance |
| google/google-toolbox-for-mac A collection of reusable Objective-C source code from various Google projects for iOS and macOS developers. It provides utilities, testing … | 87 | 1228 | maintenance |
| zertosh/invariant A tiny JavaScript library mirroring Facebook's `invariant` helper that throws descriptive errors in development and generic errors in produ… | 32 | 1228 | maintenance |
| darrenburns/ward Ward is a modern Python testing framework focused on productivity and readability, featuring descriptive string-based test names, modular f… | 10 | 1209 | maintenance |
| c8r/kit Compositor Kit is a set of tools including a zero-config CLI dev server and React utility components for developing, documenting, and testi… | 32 | 1208 | maintenance |
| yahoo/blink-diff Blink-Diff is a lightweight JavaScript image comparison tool by Yahoo, usable both as a command-line utility and as an npm library. It comp… | 10 | 1204 | maintenance |
| kevinburke/hamms Hamms is a Python library and CLI tool that runs a set of deliberately broken HTTP servers on ports 5500-5600 to elicit failures in HTTP cl… | 32 | 1201 | maintenance |
| mikeerickson/phpunit-pretty-result-printer A PHPUnit result printer plugin that replaces the default test output with a modern, colorful, prettier format. It installs via Composer an… | 23 | 1195 | maintenance |
| riscv-software-src/riscv-tools A meta-repository of RISC-V development tools that bundles the Spike ISA simulator, riscv-tests, riscv-opcodes, and the riscv-pk proxy kern… | 10 | 1195 | maintenance |
| mkoehnke/WKZombie WKZombie is a Swift headless browser framework for iOS and macOS that navigates websites and collects data without a user interface or API,… | 23 | 1186 | maintenance |
| cedarbdd/cedar Cedar is a BDD-style testing framework for Objective-C featuring an expressive matcher DSL and built-in test doubles. It integrates with Xc… | 23 | 1182 | maintenance |
| leebyron/testcheck-js TestCheck.js is a generative (property-based) testing library for JavaScript, inspired by QuickCheck. It runs properties against many rando… | 23 | 1170 | maintenance |
| linemanjs/lineman Lineman is a Grunt-based project scaffold and build tool for fat-client JavaScript web apps, handling asset compilation, server mocking, an… | 23 | 1167 | maintenance |
| svanoort/pyresttest PyRestTest is a Python-based REST API testing and microbenchmarking tool where tests are defined declaratively in YAML or JSON files withou… | 23 | 1164 | maintenance |
| developit/karmatic Karmatic is a zero-configuration test runner that runs browser tests in headless Chrome using Karma, Webpack (or Rollup), and Jasmine, whil… | 23 | 1160 | maintenance |
| JuliusBrussee/cavekit Cavekit is a frozen (August 2026) Claude Code plugin that implements compressed spec-driven development via a single SPEC.md file and a sma… | 68 | 1156 | maintenance |
| didi/rdebug Rdebug is a tool chain for recording real production traffic and replaying it against non-production environments to test and debug PHP mic… | 10 | 1156 | maintenance |
| fabioCollini/DaggerMock DaggerMock is a JUnit rule that makes it easy to override Dagger 2 provided objects with Mockito mocks in Java or Kotlin tests. It scans @M… | 32 | 1154 | maintenance |
| squizlabs/HTML_CodeSniffer HTML_CodeSniffer is a client-side JavaScript library that checks HTML documents or source code for violations of defined coding and accessi… | 23 | 1145 | maintenance |
| google/intermock Intermock is a Google open-source mocking library that generates mock objects and JSON with fake data from TypeScript interfaces using Fake… | 10 | 1141 | maintenance |
| brooklynDev/airborne Airborne is an RSpec-driven API testing framework for Ruby that provides matchers for validating JSON API responses. It lets developers wri… | 32 | 1138 | maintenance |
| stephanenicolas/toothpick Toothpick is a scope tree based dependency injection library for Java, Kotlin, and Android. It is a runtime-based but reflection-free imple… | 32 | 1138 | maintenance |
| myhdl/myhdl MyHDL is a pure Python package that turns Python into a hardware description and verification language (HDL). Designs written in MyHDL can … | 75 | 1131 | maintenance |
| LLMPerf LLMPerf is a Python library for benchmarking and validating the performance of LLM APIs. It runs load tests measuring inter-token latency a… | 10 | 1123 | maintenance |
| testing-library/vue-testing-library Vue Testing Library is a lightweight adapter on top of DOM Testing Library and @vue/test-utils that provides simple utilities for testing V… | 23 | 1122 | maintenance |
| emmericp/MoonGen MoonGen is a scriptable high-speed packet generator built on DPDK and LuaJIT that can saturate 10 Gbit/s Ethernet links with 64-byte packet… | 53 | 1118 | maintenance |
| Damn Vulnerable iOS App (DVIA) Damn Vulnerable iOS App (DVIA-v2) is a deliberately vulnerable iOS application written in Swift for practicing iOS penetration testing. It … | 23 | 1113 | maintenance |
| notahat/machinist Machinist is a Ruby library for generating test data through 'blueprints' that replace traditional fixtures in Rails tests. It automaticall… | 32 | 1112 | maintenance |
| tonerdo/pose Pose is a .NET isolation/mocking library that lets you replace any method—including static, non-virtual, and constructors—with a delegate a… | 23 | 1105 | maintenance |
| flickr/yakbak yakbak is a Node.js library that records and replays HTTP responses, inspired by Ruby's VCR. It proxies requests to a target host, saving r… | 23 | 1100 | maintenance |
| agoda-com/Kakao Kakao is a Kotlin DSL wrapper around Google's Espresso that makes Android UI test code more readable and reusable. The original Agoda repos… | 10 | 1097 | maintenance |
| mfncooper/mockery A Node.js library that intercepts require() calls so mocks or substitutes can be injected in place of real modules during unit testing. It … | 10 | 1093 | maintenance |
| google/cmockery Cmockery is a lightweight C library for writing unit tests, compiled into standalone test executables linked with the code under test. It e… | 10 | 1085 | maintenance |
| mattkersley/Responsive-Design-Testing A simple self-hostable HTML/JavaScript page that displays a website in multiple iframe widths to test responsive web design. It supports pe… | 32 | 1083 | maintenance |
| etcd-io/zetcd zetcd is a ZooKeeper 'personality' proxy for etcd that serves the Apache ZooKeeper API backed by an etcd cluster. It lets existing ZooKeepe… | 10 | 1079 | maintenance |
| wintests/pytestDemo A Python API automation testing framework combining Requests, Pytest, YAML-managed test data, and Allure reports. It layers HTTP interfaces… | 32 | 1077 | maintenance |
| google/quiver-dart Quiver is a set of utility libraries for Dart that complements the standard library with helpers for async streams, caching, collections, i… | 53 | 1064 | maintenance |
| skyscreamer/JSONassert A Java library for writing JSON unit tests with minimal code, comparing JSON strings by logical structure and data. It integrates with JUni… | 23 | 1059 | maintenance |
| linkedin/test-butler Test Butler is an Android testing library plus companion emulator app that stabilizes the Android emulator for automated UI tests. It disab… | 47 | 1047 | maintenance |
| fortytw2/leaktest A small Go testing library that detects goroutine leaks by snapshotting running goroutines at the start and end of a test and comparing the… | 23 | 1043 | maintenance |