浅谈软件静态测试中的代码审查

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈软件静态测试中的代码审查

摘要:本文描述了软件代码审查的作用、代码审查内容、代码审查过程,并列举一些常见代码审查问题。

关键词:软件代码审查;代码审查过程;代码审查问题discussion on the code review of software static testing yuan zhengjiang

(jiangnan institute of electrical and mechanical

design,guiyang550009,china)

abstract:this paper describes the software code to examine the role,content,code review process,and lists some common problems of code review.

keywords:software code review;code review process;code review problem

一、引言

软件测试常用方法可分为动态测试和静态测试,只有动态测试和静态测试有效结合,才能更好的完成软件测试工作。代码审查是软件静态测试中常用的软件测试方法之一,代码审查时,只要测试人员方法得当、足够细心,往往能够产生意想不到的效果。

二、代码审查的作用

代码审查是在不执行软件的条件下有条理的仔细审查软件代码,从而找出软件缺陷的过程。

代码审查可以找出动态测试难以发现或隔离的软件缺陷。在开发过程初期让测试人员集中精力进行软件代码审查非常有价值:可以提高代码质量;在项目的早期发现缺陷,将损失降至最低;促进团队沟通、促进知识共享、共同提高。

代码审查还可以为动态测试时设计和执行测试用例提供思路。通过代码审查,可以确定有问题或者容易产生软件缺陷的特性范围。

三、代码审查的过程

代码审查过程可分为:代码审查策划阶段、代码审查实施阶段以及代码审查总结阶段。

(一)代码审查策划阶段

1.项目负责人分配代码审查任务;

2.确定代码审查策略:依据软件开发文档,确定软件关键模块,作为代码审查重点;将复杂度高的模块也作为代码审查的重点;

3.项目负责人确定代码审查单,审查内容一般可包括:

(1)可追溯性:

——代码是否遵循详细设计?

——代码是否与需求一致?

(2)逻辑:

——表示优先级的括号用法是否正确?

——代码是否依赖赋值顺序?

——“if…else”和“switch”使用是否正确清晰?

——循环能否结束?

——复合语句是否正确地被花括号括起来?

——case语句是否所有可能出现的情况均已考虑?——“goto”是否使用?

(3)数据:

——变量在使用前是否已初始化?

——变量的声明是否按组划分为外部的和内部的?

——除最明显的声明外,是否所有声明都有注释?

——每个命名是否仅用于一个用途?

——常量名是否都大写?

——常量是否都是通过“#define”定义的?

——用于多个文件中的常量是否在一个头文件中定义?

——头文件中是否存在可执行的代码?

——定义为指针的变量是否作为指针使用(而不是作为整数)?——指针是否初始化?

——释放内存后是否将指针立即设置为null(或0)?

——传递指针到另一个函数的代码是否首先检查了指针的有效性?

——通过指针写入动态分配内存的代码是否首先检查了指针的有效性?

——宏的命名是否都大写?

——数组是否越界?

(4)接口:

——在所有的函数及过程调用中,参数的个数都正确吗?——形参与实参类型匹配吗?

——参数顺序正确吗?

——如果访问共享内存,是否具有相同的共享内存结构模式?(5)文档:

——软件文档是否与代码一致?

(6)注释:

——注释与代码是否一致?

——用于理解代码的注释是否提供了必要的信息?

——是否对数组和变量的作用进行了描述?

(7)异常处理:

——是否所有可能的错误都已加以考虑?

(8)内存:

——在向动态分配的内存写入之前是否检查了内存申请是否成功?

——若采用动态分配内存,内存空间分配是否正确?

——当内存空间不再需要时,是否被明确的释放?

(9)其它:

——是否检查了函数调用返回值?

——所有的输入变量都用到了吗?

——所有的输出变量在输出前都已赋值了吗?

4.确定代码审查进度安排,项目负责人负责安排代码审查的进度。(二)代码审查实施阶段

1.代码讲解:软件开发人员详细向测试人员讲解如何以及为何这样实现,测试人员提出问题和建议。通过代码讲解,测试人员对被审查的软件有了一个全面的认识,为后续代码审查打下良好的基础。

2.静态分析:一般采用静态分析工具进行,主要分析软件的代码规模、模块数、模块调用关系、扇入、扇出、圈复杂度、注释率等软件质量度量元。静态分析在代码审查时应优先进行,有利于软件测试人员在后续代码审查时对软件建立宏观上认识,在审查中容易做到有的放矢,更易于发现软件代码中的缺陷。

3.规则检查:采用静态分析工具对源程序进行编码规则检查,对于工具报出的问题再由人工进行进一步的分析以确认软件问题,是一种比较有效的方法。

4.正式代码审查:代码审查可分两步进行:独立审查和会议审查。根据情况,这两步可以反复进行多次。

(1)独立审查:测试人员根据项目负责人的工作分配,独自对自己负责的软件模块进行代码审查。测试人员根据代码审查单,对相关代码进行阅读、理解和分析后,记录发现的错误和疑问。

相关文档
最新文档