Freeze observables
Define the exact return, revert, state, and event-log behavior that counts as equivalent before generating cases.
Oracle and comparison schema reviewed
A public test plan, a reproducible historical defect, and an execution matrix that shows how I define, calibrate, test, and report software behavior.
Sample test plan
The plan starts with behavior and calibration, not tool names. Every phase has a concrete exit condition and an explicit limit.
Define the exact return, revert, state, and event-log behavior that counts as equivalent before generating cases.
Oracle and comparison schema reviewed
Run a public, historically fixed Vyper defect as a positive control before treating clean campaign results as meaningful.
v0.4.1 fails; v0.4.3 passes
Execute each eligible case on REVM and Py-EVM under none, gas, and codesize optimizer modes.
Six observations captured per case
Separate harness defects, backend differences, known issues, and compiler candidates before making any claim.
Reproduction survives duplicate review
Publish exact counts, exclusions, commands, and negative evidence. A clean result is never described as proof of absence.
Result is rerunnable and scoped
This publicly fixed Vyper defect is used only to prove the lab can detect a real semantic mismatch. It is not presented as an original finding or bounty submission.
test() evaluates the side-effectful expression and increments counter from 0 to 1.counter remains 0 because the side effect is elided.When the spec is thin
This is the same structure I use for manual product QA: clarify invariants, exercise state transitions, preserve evidence, and make a release recommendation.
Start with what must remain true for users, permissions, data, and failure recovery—not with the current happy path.
Test interruption, retry, refresh, empty, boundary, and unusual-order sequences around each important state change.
Record environment, prerequisites, exact steps, expected versus actual behavior, severity, and evidence.
Separate release blockers from improvements and state what remains untested so the decision is honest.
The live CSV cleaner demonstrates conservative transforms, protected identifiers, ambiguous-data review, and an auditable export path—all without uploading data to a server.