四、代码审查中的常见问题

  如果软件测试人员熟悉常见的软件代码审查问题,对代码审查效率是很有帮助的。笔者根据自己的应验,列举部分常见软件代码审查问题如下(仅供参考):

  (1)浮点数相等比较:可能造成程序未按设计的路径执行;

  (2)因设计原因导致某些代码不能执行:如逻辑表达式永远为真(或假)造成某分支不能执行、代码前面有return语句、某模块从未被调用等;

  (3)switch语句没有break语句(有意如此设计时除外);

  (4)数组越界使用:数组越界容易发生在数组下标是计算得到的情况下,而且审查时很难发现这种代码缺陷,应加以重视;

  (5)变量未初始化使用或者是条件赋值使用;

  (6)程序中存在未使用的多余变量;

  (7)复合逻辑表达式没有使用括号造成运算顺序错误;

  (8)有返回值的函数中return没有带返回值;

  (9)逻辑判别的表达式不是逻辑表达式;

  (10)动态分配的内存没有及时释放:忘记写内存释放代码或由于其它逻辑缺陷导致内存释放代码未得到执行;

  (11)没有对缓冲区溢出进行必要的防护;

  (12)访问空指针,即指针未初始化使用;

  (13)指针指向的内存释放后,未将指针置为NULL:其它函数访问该指针时,判断指针不为空,当作有效指针使用,会造成内存访问错误;

  (14)注释说明与程序代码实现不一致,甚至相反;

  (15)循环存在不能跳出的可能,程序中没有相应的保护机制。

  五、结束语

  软件代码审查是重要的软件测试方法之一,软件测试单位应建立完善的代码审查规程,规范代码审查过程。代码审查人员应善于使用软件静态分析工具,善于总结代码审查经验。软件代码审查工作做得扎实,可以发现很多软件编码隐含的缺陷,提高软件的可靠性,为后续的动态测试打下良好的基础。