code-analysis - 什么是动态代码分析?

标签 code-analysis dynamic-analysis

什么是动态代码分析?

Static Code Analysis 有何不同? (即,它可以捕捉到静态无法捕捉到的东西)?

我听说过边界检查和内存分析——这些是什么?

使用动态分析还检查了哪些其他事项?

-亚当

最佳答案

简单来说,静态分析基于收集信息源代码动态分析基于系统执行 ,经常使用仪器。
动态分析的优点

  • 能够检测在静态分析中无法检测到的依赖关系。例如:使用反射、依赖注入(inject)、多态的动态依赖。
  • 可以收集时间信息。
  • 处理真实的输入数据。在静态分析过程中,很难知道哪些文件将作为输入传递,哪些 WEB 请求将到来,用户将点击什么等。

  • 动态分析的缺点
  • 可能会对应用程序的性能产生负面影响。
  • 无法保证源代码的完全覆盖,因为它的运行是基于用户交互或自动测试。

  • 资源
    市场上有很多动态分析工具,其中最臭名昭著的是调试器。另一方面,它仍然是一个学术研究领域。有许多研究人员正在研究如何使用动态分析来更好地理解软件系统。有一个专门为 dependency analysis. 举办的年度研讨会

    关于code-analysis - 什么是动态代码分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937/

    相关文章:

    javascript - 有关 Javascript 变量类型预测的资源?

    c++ - 检测单元测试中的特定函数调用

    c++ - 是否可以使用 Dtrace 探测 C++ 类中的条目?

    asp.net-core - 为.Net Core 2.0项目启用代码分析结果出现CA0055和CA0052错误

    code-analysis - 将 BCI(字节码索引)转换为源代码行号

    c# - 将 foreach 与 Enum.GetValues() 一起使用时如何修复代码分析警告 CS8605?

    java - 随时间绘制方法调用图的工具

    c++ - 一个 C++ 源代码分析器

    c++ - Jenkins 上的 Coverity 有什么替代品吗?

    code-analysis - 实际存在哪些程序切片工具?