Too Long; Didn't Read
Security Tooling Guide for Smart Contracts is published by ConsenSys Diligence. It details 22 security tools from across web3 available at each stage of smart contract development. This includes documentation, linting, and writing reusable code. Unit tests and property-based testing are a vital part of testing for smart contracts. Linting can find stylistic errors, violations of programming conventions, and unsafe constructs in your code. Reusing battle-tested code is another proven way to reduce the risk of vulnerabilities in your smart contract.