60、软件质量保障:静态检查、同行评审、测试与问题跟踪

软件质量保障:静态检查、同行评审、测试与问题跟踪

1. 静态检查与编译器警告

1.1 静态检查的重要性

编译器在处理源代码时,会产生警告和错误两种消息。错误意味着代码存在严重缺陷,无法编译;而警告虽不影响生成可执行程序,但往往暗示代码可能存在问题。例如,桌面系统的编译器通常能给出较为全面的警告,而小型微控制器的编译器可能会遗漏一些潜在的警告。

忽略编译器警告会增加软件出现漏洞的风险,可能错过因“愚蠢”错误、语言规范歧义以及语言特性的危险使用而导致的漏洞。因此,每个程序都应通过一个优秀的静态检查器进行检查,消除所有警告源,以减少漏洞。

1.2 编译器警告的类型及示例

编译器警告可以帮助我们发现多种类型的问题,以下是一些常见的警告示例:
- 未初始化变量

int X, MyVar;
X = MyVar;   // MyVar doesn't have an initial value

在这个例子中,变量 MyVar 未被初始化,因此赋值给 X 的值是未定义的。这种警告几乎总是表示存在漏洞。
- 可疑的语言使用

if (x = y) { ... do this... }

在 C 语言中,这是一个经典的错误。通常,这里应该使用比较运算符 ==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值