Replies: 1 comment
-
Thanks for taking the time to post this discussion and share your insights, @mds1!
I wish we had known about this term when we wrote the tests! It seems like the perfect fit for what are out tests actually do.
TIL
Agree - I've opened an issue for tracking: #613
Only |
Beta Was this translation helpful? Give feedback.
-
The
basic/
subfolder in test folders refers to what I've (thanks to dapptools) always called "concrete" tests. Concrete tests are your standard deterministic unit test that take no inputs and run the exact same test every time (in contrast to fuzz/property/invariant tests which are not deterministic).The term concrete is commonly used in the context of symbolic execution. With symbolic execution program inputs are represented as generic symbols to test all execution paths, whereas with concrete execution inputs are fixed and test a specific path. You may have heard of concolic testing, where the name "concolic" is derived from concrete and symbolic
"Concrete" feels like a clear, unambiguous term to refer to deterministic unit tests, whereas "basic" is more vague. I'd suggest renaming "basic" to "concrete" everywhere both to make the architecture in this repo more clear, and to help the ecosystem standardize around a useful terminology
I know you've already gone through some audits and are likely deploying to production soon, so totally understand if you want to avoid a big rename since the codebase is likely largely frozen at this point. But still wanted to bring this up as a broader discussion and something to consider going forward.
Beta Was this translation helpful? Give feedback.
All reactions