代码检查(一)

发表于:2008-8-05 13:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:薛丽 崔烨    来源:51Testing投稿

  摘要:代码检查白盒测试的一种静态测试方法,是众多软件测试方法中发现软件缺陷最有效的方法之一。本文结合国内外学者在相关领域的研究情况,介绍代码检查相关的基本概念、过程和分析方法。
  关键字:白盒测试,代码检查,静态分析,检查规则
一、 引言
  按照测试时源代码是否可见,软件测试可以分为白盒测试和黑盒测试两类。
白盒测试(结构测试),即逻辑驱动的测试,是在了解程序内部结构的基础上,对程序的逻辑结构进行检查,从中获取测试数据。白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构的程度。白盒测试一般只应用于软件开发阶段。
白盒测试,又可按照是否需要运行程序,进一步细分为了静态测试和动态测试两种。通常情况下是按照先静态后动态测试顺序来实施。其中,静态测试包括代码检查、静态结构分析、代码质量度量等测试内容。静态测试既可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
  代码检查是一种对程序代码进行静态检查。传统的代码检查是通过人工阅读代码的方式,检查软件设计的正确性;用人脑模拟程序在计算机中的运行,仔细推敲、校验和核实程序每一步的执行结果,进而判断其执行逻辑、控制模型、算法和使用参数与数据的正确性。
  在实践中,代码检查比动态测试更有效率,能找到更多的缺陷,通常能发现30%~70%的逻辑设计和编码缺陷。代码检查非常耗费时间,而且需要专业知识和经验的积累。代码检查定位在编译之后和动态测试之前进行,在检查前,应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表等。
代码检查可以发现的软件问题包括:声明或引用错误、函数/方法参数错误、语句不可达错误、数组越界错误、控制流错误、界面错误和输入/输出错误等。

  1、代码检查
  代码检查包括桌面检查、代码走查和代码审查等方式,主要检查代码和设计的一致性,代码对标准地遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面;发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型检查、程序逻辑检查、程序语法检查和程序结构检查等内容。
下面对代码检查的三种具体方式进行介绍。
  桌面检查
  是一种传统的检查方法,由程序员检查自己编写的程序。程序员在程序通过编译之后对源代码代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。
  代码走查
  代码走查就是针对代码,在假想的输入情况下,逐行的浏览代码,走查代码中潜在的缺陷并记录结果的过程。
  代码走查以小组会议方式进行,每小组3-5人。与代码审查不同的是,走查要求与会者扮演计算机的角色让测试用例沿被测程序的逻辑运行,是在模拟动态测试;而代码审查更多的是静态测试。
  代码审查
  代码审查是由一组人通过阅读、讨论和争议对程序进行静态分析的过程,以小组会的方式进行。
  审查小组一般由若干程序员(包括程序代码的设计者)和代码检查人员组成。会前把设计规格说明书、控制流程图、程序文本以及要求、规范、错误检查清单交给与会者,开会时程序作者朗读解释程序,其他人则集中精力,捕捉程序在结构、功能、编码风格等方面的问题。
  2、代码检查项
  代码检查项即检查代码时,指定需要进行检查的内容。具体如:检查变量的交叉引用表;检查标号的交叉引用表;检查子程序、宏、函数;等价性检查;标准检查;风格检查;选择、激活路径;对照程序的规格说明,详细阅读代码,逐字逐句分析;补充文档。

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号