mev-commit-p2p icon indicating copy to clipboard operation
mev-commit-p2p copied to clipboard

Add model or property based e2e testing

Open shaspitz opened this issue 1 year ago • 0 comments

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

shaspitz avatar Oct 25 '23 05:10 shaspitz