Take your tests to the next level

Gambit is an open source Solidity mutation testing tool to evaluate and strengthen your testing suite.

View on GitHub

Build confidence in your test suite

Gambit introduces faults, called mutants, to the contract you choose to test and measures your test suite’s ability to detect these mutants. The more mutants a test suite detects, or kills, the better the test suite is.

Solidity

/app/contracts/BallGame.sol

// Solidity function that multiples two numbers and returns the result contract Multiply { function mul(uint a, uint b) public returns (uint c) { c = a * b; } }

Solidity Mutation

/mutations/BallGame.sol

// This mutant changes the `*` operator to `+` contract MultiplyMutation { function mul(uint a, uint b) public returns (uint c) { - c = a * b; + /// BinaryOpMutation(`*` |==> `+`) of: `c = a * b;` + c = a + b; } }

Visualize your results

Gambit Dashboard

Learn about some of the features that Gambit has to offer

Open Source
Fast, extensible, and open-source mutation generator for Solidity.
Easy Integration
Easy to integrate with both verification tools and testing tools. Already integrated with the certora prover!
Adaptive Mutations
Traverses the abstract syntax tree of the solidity program to identify valid mutation points.
Scored Results
User friendly UI that summarizes the results of verifying the mutants and computes a score to evaluate the specification.
High Variability
Generates unique mutants that are unlikely to be redundant or equivalent to the original program.
Targeted Muations
Allows users to customize and localize mutants to focus on specific program parts using a simple declarative configuration language.
Certora Logo
logologo
Terms of UsePrivacy Policy