@leolara
Five Ethereum consensus clients must agree on every state transition, or the chain splits. So how complete are the tests for the functions that define those transitions?
Today that question is answered by expert judgment, case by case. No systematic process stands behind it, so the gaps stay invisible. I wanted a number.
The consensus specs are executable Python, so you can read each function as a model and list every input scenario it treats differently. Every `assert` is a partition boundary. Every branch is a dimension of variation. Map the existing tests onto that list and the gaps become visible.
The technique is old. Category-partition testing dates to the 1980s. What is new is applying it to executable specs that are themselves the protocol.