crytic / echidna

Ethereum smart contract fuzzer
https://secure-contracts.com/program-analysis/echidna/index.html
GNU Affero General Public License v3.0
2.71k stars 359 forks source link

Improve Echidna coverage documentation #1001

Open tarunbhm opened 1 year ago

tarunbhm commented 1 year ago

Describe the desired feature

Echidna corpus shows code coverage which can be used to get a sense of the system states explored by echidna. The documentation on coverage can be improved to make it more clear and guide users with common steps to increase coverage.

ggrieco-tob commented 1 year ago

I think we will expand this section: https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/advanced/collecting-a-corpus.md#collecting-a-corpus

What do you think we should include?

tarunbhm commented 1 year ago

I also found https://github.com/crytic/echidna/tree/master#collecting-and-visualizing-coverage, which explains the meaning of coverage markers in the coverage report.

Currently, the collecting corpus document focuses only on the corpus. It briefly discusses the coverage report, but that is just to verify the effect of corpus seeding. I think we can include a section describing how users can use the coverage report to verify that Echidna is able to run all code paths while testing invariants. We can also create another doc in the advanced or basic category for coverage analysis. It will make Echidna much more effective with full code coverage.