什么是动态代码分析?
它与静态代码分析有什么不同(即,它能捕获哪些不能被静态捕获)?
我听说过检查和记忆分析 - 这些是什么?
使用动态分析检查哪些其他内容?
-亚当
简而言之,静态分析基于源代码收集信息,动态分析基于系统执行,通常使用仪器.
能够检测静态分析中无法检测的依赖关系.例如:使用反射,依赖注入,多态的动态依赖.
可以收集时间信息.
处理实际输入数据.在静态分析期间,很难不知道哪些文件将作为输入传递,哪些WEB请求将来,用户将点击什么等.
可能会对应用程序的性能产生负面影响.
无法保证源代码的完整覆盖,因为它的运行基于用户交互或自动测试.
市场上有许多动态分析工具,调试器是最臭名昭着的工具.另一方面,它仍然是一个学术研究领域.有许多研究人员在研究如何使用动态分析来更好地理解软件系统.每年都有一个专门讨论依赖性分析的研讨会.