当人们谈论静态分析时,他们通常会谈论质量指标和编程惯例。似乎代码审计是分开的,因为它发现的是错误和安全漏洞。从理论上讲,两者都是静态分析(代码审核是在不执行程序的情况下进行的,不是吗?使用Findbugs,Coverity等工具。)
那么,代码审核也是静态分析吗?
答案 0 :(得分:1)
Code audits主要由人类完成(工具提供一些帮助),就像任何其他类型的audits一样(例如financial audits)。 Code review通常在开发团队内部完成,但代码审核通常由外部人员完成。
静态source code analysis由软件code analysis tools完成,并且在实践中使用它们非常复杂(因此实际上分析软件工具需要其用户的帮助或专业知识和/或将提供{{3 }})。
false positives是源代码分析的一个基本限制:没有工具可以静态检测每个无限循环程序(只有它们)。
对于C或C ++代码的分析,您可以考虑使用halting problem自定义GCC编译器。或者使用MELT,可能通过在源代码中添加Frama-C注释(带有足够的注释,以及在某些有限类C程序上,主要用于嵌入式应用程序,该工具可能会能够证明你的代码表现得很好。)
但有ACSL。编程很难(即使使用工具)。