Echidna 中基于属性的测试功能是使用 Hedgehog 实现的,Hedgehog 是 Jacob Stanley 开发的基于属性的测试库。Hedgehog 可以看作是基于 QuickCheck 的优化版。

测试方法

https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/basic/common-testing-approaches.md

配置文件

https://github.com/crytic/echidna/blob/master/tests/solidity/basic/default.yaml

# 指定配置文件:--config echidna_config.yaml
# 测试模式:
	# property 默认
	# assertion
	# overflow
	# exploration 允许echidna在没有属性时运行
	# optimization
testMode: "property"

Boolean properties

需要手动编写属性,属性必须符合:

基本原理

Untitled

示例