Static testing is a software testing methodology that involves reviewing code and documentation without executing the program, aimed at improving software quality early in development. The process involves various participants, including a moderator, author, scribe, reviewers, and managers, each with distinct roles during reviews using techniques such as informal and formal reviews, inspections, and static code reviews. Although static testing offers advantages like early defect detection and low rework costs, it is time-consuming, does not address runtime vulnerabilities, and depends on trained personnel for effective execution.