Static analysis involves examining program code without executing it to find defects, vulnerabilities, or violations of coding standards. It uses automated tools or manual review to analyze source code structure, logic, and potential errors. Batch programs and test plans are not analyzed, and black box testing is dynamic (requires execution) rather than static.