Yesterday I read some interesting comparison between static and dynamic testing, so I decided to share it on my blog.
Software testing is a process of analyzing or operating software for the purpose of finding bugs.According to the definition testing can involve either analyzing or operating software. Test activities that are associated with analyzing the products of software development are called static testing. Static testing includes code inspections walkthroughs and desk checks. In contrast test activities that involve operating the software are called dynamic testing.
- Static testing is about prevention, dynamic testing is about cure.
- The static tools offer greater marginal benefits .
- Static testing is many times more cost-effective than dynamic testing.
- Static testing beats dynamic testing by a wide margin.
- Static testing is more effective.
- Static testing gives you comprehensive diagnostics for your code.
- Static testing achieves 100% statement coverage in a relatively short time, while dynamic testing often often achieves less than 50% statement coverage, because dynamic testing finds bugs only in parts of the code that are actually executed.
- Dynamic testing usually takes longer than static testing. Dynamic testing may involve running several test cases, each of which may take longer than compilation.
- Dynamic testing finds fewer bugs than static testing. Static testing can be done before compilation, while dynamic testing can take place only after compilation and linking.
- Static testing can find all of the followings that dynamic testing cannot find: syntax errors, code that is hard to maintain, code that is hard to test, code that does not conform to coding standards, and ANSI violations.
You can read more about static testing from here.