Many people, even some testers, don’t realize that testing can and should start before a line of code is ever written. Static testing is that process, and it continues even after coding has started, but execution of the code isn’t necessary in static testing. By thoroughly reviewing requirements, design documents, design specifications, and prototypes, static testing can unearth defects early in the SDLC where it’s more cost effective to fix them. Missing or incomplete requirements, poor design, or inconsistent interface specifications are contenders for the first round of issues. Even code reviews are considered a form of static testing, as they can reveal inconsistencies or lack of adherence to coding standards.
The primary objective of all static testing is to find errors as early as possible in the SDLC and thereby improve the quality of the end-product with the least amount of cost. Both formal and informal reviews of documentation, prototypes, code, or test cases are generally performed for thoroughness and appropriateness of the end goal of the product. Nearly half of production defects could have been found during proper static testing cycles.