Property-Based Test Generator from Contract Interface
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This tool connects to your EVM wallet and generates property-based test templates from smart contract ABIs. It reads contract function signatures, parameter types, and state mutability to understand the contract interface. The tool creates test scenarios for each function, identifies state-changing vs. read-only functions, and suggests properties that should hold—such as return type correctness, state modification behavior, and parameter validation. It also generates sample test code in Solidity/Foundry format that you can extend with concrete assertions.
HOW TO USE
Connect your Web3 wallet using the Connect button. Enter the contract ABI in JSON array format in the ABI Input field—this should include all functions you want to test. Enter the contract name in the Contract Name field (optional). Click "Generate Tests" to produce test scenarios, property definitions, and sample test code. Click "Load Sample ABI" to populate fields with example data. Results appear in the Results card with a summary of functions found, scenarios generated, and properties identified, followed by detailed test code you can copy and adapt for your testing framework.
TECHNICAL MECHANISM: ABI-DRIVEN TEST SCENARIO GENERATION
The tool parses the contract ABI to extract function definitions, including function names, input types, output types, and state mutability (view, pure, nonpayable, payable). For each function, it generates test scenarios based on the function's characteristics—view/pure functions generate return value tests, while nonpayable/payable functions generate state modification tests. Functions with parameters generate parameter validation scenarios. The tool also identifies properties such as "function returns correct type" and "function validates input parameters." The sample test code is generated in a Solidity/Foundry test format with setUp() and individual test functions for each contract function, complete with TODO comments for developers to fill in assertions.
WHAT IT CANNOT SEE
This tool cannot verify test correctness or completeness—it only generates templates and cannot determine if tests adequately cover all scenarios. It cannot generate tests that cover all edge cases without human guidance—the tool does not understand contract semantics beyond the ABI. It cannot understand contract semantics or invariants beyond what is expressed in the ABI—complex invariants require human input. It relies on ABI parsing and may fail for complex or custom types—non-standard types may not be handled. It cannot generate tests for contracts with non-standard patterns or external dependencies—the tool does not simulate external interactions.
PLEASE NOTE
This is a read-only tool—it never signs transactions. All data is processed in-memory and never persists. The tool supports EVM chains only—Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base, and Fantom. The generated tests are templates and must be customized with concrete assertions, expected values, and edge cases. The tool does not replace careful test design—use the generated templates as a starting point for comprehensive test suites.