WebFuzzing/EvoMaster

The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).

What it solves

EvoMaster is an AI-driven tool designed to automatically generate system-level test cases for web and enterprise applications. It specifically targets the challenge of creating effective test suites for APIs (REST, GraphQL, and RPC) to find program crashes, reveal faults, and provide regression testing suites.

How it works

The tool uses an Evolutionary Algorithm combined with Dynamic Program Analysis to evolve test cases from an initial population of random ones. It aims to maximize code coverage and fault detection.

It operates in two modes:

  • Black-Box Testing: Runs on any API regardless of the programming language, though with lower effectiveness due to the lack of code analysis.
  • White-Box Testing: Specifically for JVM-based APIs (Java and Kotlin). It analyzes bytecode, uses taint analysis and testability transformations to generate more effective tests.

Who it’s for

Software testers and developers who need to automatically generate test suites for their web APIs, particularly those using JVM languages like Java or Kotlin for higher precision testing.

Highlights

  • Multi-API Support: Supports REST (via OpenAPI schemas), GraphQL, and RPC (gRPC and Thrift).
  • Automated Test Generation: Produces executable test suites in Python, JavaScript, and Java/Kotlin JUnit formats.
  • White-Box Capabilities: For JVM apps, it can intercept SQL and MongoDB communications to improve coverage and generate database initialization data.
  • Fault Detection: Identifies bugs by checking for 500 status codes, schema mismatches, and access policy violations.
  • Privacy-Focused: Runs in-house with no telemetry or requirement for external LLM APIs.

Related

  • Project
  • Project
  • Project
  • Project
  • Project