静态代码分析

无需运行代码来提高代码质量

静态代码分析或者静态分析是一种通过分析代码,以质量、可靠性和安全性为目的软件验证活动。您可以识别危害您应用安全的缺陷和安全漏洞。基于形式化方法的深度语义静态代码分析可以帮您诊断例如溢出、除零、非法的指针释放等运行时错误。因为没有编写测试用例或者修改代码的额外负担,静态分析是一种衡量和跟踪软件质量信息的比较划算的手段。和其它的验证技术相比,静态代码分析是自动的,这意味着您无需执行代码或者开发测试用例即可进行代码分析。

基本的静态语义分析技术包括:

  • 产生代码质量度量信息,例如计算代码行数,确定注释密度,评估代码复杂度
  • 验证是否符合编码规范,如MISRA C®/C++ or JSF++ (Joint Strike Fighter Air Vehicle C++)

静态代码分析与形式化方法结合的高级技术。形式化方法将计算机科学基础理论用于解决软件中的难题,如证明软件不会因为运行时错误导致失败。

静态代码分析和形式化方法的结合可以让您:

  • 检查软件缺陷和安全漏洞
  • MISRA, CWE, CERT C, ISO/IEC 17961及其它标准和网络安全准则的合规性检查
  • 证明不存在特定的运行时错误

这种方法是综合全面的,因为代码中的每一个点都被识别为被证明是错误的,证明没有错误,可能永远不被执行(死代码)或者是未经证明的。这对安全尤其重要因为一个被忽略的缺陷能够危害到您的整个系统,导致灾难性后果。日益增加的对网络安全的关注带来了类似的挑战,一个软件漏洞足以就可导致您的应用被利用。

更多关于静态代码分析工具的详细信息,请参见Polyspace® products: Polyspace Bug Finder™, Polyspace Code Prover™, and Polyspace products for Ada.

另请参阅: 使用Polyspace产品进行静态分析, 验证、确认和测试, 嵌入式系统, 抽象解释, c代码检查, 圈复杂度, 形式化方法, 软件度量, 软件质量保证, 软件质量目标, 源代码分析, 静态代码分析视频