There are large number of approaches of software testing.
Reviews & inspections are called as static testing, whereas actually executing programmed code with a given set of test case is referred to as dynamic testing.
Static testing can be omitted, and in practice often is.
Dynamic testing takes place with the program itself used. Dynamic testing begin before the program is complete its execution in order to particular sections of code are applied to discrete function or modules. Typically techniques for this are using stubs / drivers or execution from a debugger environment.
A static testing involves verification whereas dynamic testing involves validation. Together they help to improve software quality.
Other methods of software testing:
Chat with our AI personalities