mev-commit-p2p
mev-commit-p2p copied to clipboard
Add model or property based e2e testing
Following integration of settlement layer devnet, an e2e testing framework should be introduced. There's a lot of flavors as to how this idea could be implemented. General idea is to apply high level actions to a system, and test the outcome of such actions against an expected system state. Few Different options:
- System inputs w/ expected outputs can be encoded manually
- Model based testing can be used to generate input/expected output traces that must satisfy a simplified model of the system (compatible with fuzz testing)
- Property based testing can be used to generate i/o traces from properties/invariants defined for the system (compatible with fuzz testing)
Inspiration which I am familiar with:
- https://github.com/flyingmutant/rapid
- https://github.com/cosmos/interchain-security/tree/main/tests/e2e
- https://github.com/ethereum-optimism/optimism/tree/develop/op-e2e
- https://github.com/informalsystems/quint