Static analysis tools examine code without executing it, looking for defects like coding standard violations, security vulnerabilities, unreachable code, and potential bugs. These tools are most useful to developers during coding and unit testing, as they provide immediate feedback on code quality and can prevent defects before dynamic testing begins.