1.下面哪些属于静态分析()
a编码规则检查
b程序结构分析
c程序复杂度分析
d内存泄露
选A、B、C。静态分析不涉及被测软件的动态执行,并且可以在运行程序之前的早期阶段检测可能的缺陷。内存泄漏是在程序运行之后才能得出来。所以D错误。
静态分析可以由机器完成,以自动“遍历”源代码并检测不合规规则。经典的例子是一个编译器,它可以找到词汇,句法甚至一些语义错误。静态分析也可以由审查代码的人执行,以确保使用正确的编码标准和约定来构建程序。这通常称为代码审查,由同行开发人员(编写代码的开发人员以外的人)完成。所以A正确。
当开发人员分析代码时,分析代码行、适当的嵌套、函数调用次数、循环复杂性……所以B、C正确。