Static testing is reviewing the program code without executing it. Its focus is mostly the following: - Code maintainability, ie making code more readable by humans; - Finding out typos and other silly mistakes in code (like typos in variable names, off-by-one errors, etc); - Reviewing algorithms used by programmer. While static testing only is insufficient, it is a great technique to prevent bugs early in development cycle.