ethereum / ethereum/execution-specs

Property-based testing as an additional validation layer for executable specs?

Open
#1,891 2 comments 0 reactions 0 assignees View on GitHub
stale
Dominant language
Python
Stars
1.2k
Forks
505
Avg merge
2d 14h
Merged PRs (30d)
116

Description

I was exploring the executable execution specs and did not find property-based or invariant-oriented tests. I wanted to ask whether this approach has been considered or tried before.

**Context**

The current structure of the executable specs appears compatible with property-based testing:

* deterministic, mostly pure transition functions,
* explicit fork parameterization,
* separation between spec logic and fixture generation.

**Potential value**

A property-based testing layer could serve as an additional validation mechanism during spec development by:

1. Generating randomized but constrained states and transactions,
2. Checking basic invariants and internal consistency,
3. Exercising behavior across fork transitions,
4. Reducing failures to minimal, readable examples,
5. Optionally converting those cases into deterministic EEST fixtures.

This would be a tool for spec authors only. It would not define client compliance requirements and would not replace the existing fixture-based workflow.

**Question**

Is there any existing property-based testing infrastructure for the executable specs? If not, would a small proof of concept under `execution-specs` be useful to evaluate the potential value of this approach?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.