1. Dynamic testing
2. Other Dynamic analysis approaches (Mini-simulation + Fault Injection)
3. Compiler-based dynamic Prevention tools
4. Language-base tools
5. Dynamic/static hybrid
6. Operating System approaches
7. Static source code analysis