5 代码检查与走查_第1页
5 代码检查与走查_第2页
5 代码检查与走查_第3页
5 代码检查与走查_第4页
5 代码检查与走查_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

代码检查 走查与评审 在执行程序之前的人工测试 静态测试和动态测试 静态测试 人工测试 不运行程序进行测试 即检查和审阅静态黑盒测试 检查产品说明书静态白盒测试 检查代码 在不执行的条件下有条理地仔细审查软件设计 体系结构和代码 从而找出软件缺陷的过程 有时称为结构分析 动态测试 基于计算机的测试 运行和使用软件以发现错误 即通常意义上的测试 人工测试 人工测试方法的正规性 精确性不如基于计算机测试 但并不妨碍测试取得成功 相反可以提高测试的功效和可靠性错误发现得越早 改正错误成本越低 正确改正错误可能性越大程序员在开始基于计算机的测试时要经历一个心理上的转变 改正早期发现的错误比改正后期计算机执行发现的错误时失误更少更容易定位以及发现由该错误引发的其他缺陷 如连锁错误或类似错误 降低调试成本通常会有效地查找出30 70 的逻辑设计和编码错误 代码检查 实施过程协调人在代码检查前几天分发程序清单和设计规范编码人员讲述程序的逻辑结构 其他人员提问题并判断是否存在错误 对照历来常见的编码错误列表 注意力集中在发现错误而非纠正错误上 非调试 会议结束后 程序员会得到一份已发现错误的清单代码检查的其他作用程序员会得到编程风格 算法选择及编程技术等方面的反馈信息其他参与者也可以同样受益 代码检查的错误列表 1 数据引用错误变量使用前是否赋值或初始化 例1 2 容易引起变量使用错误 特别是对于引用变量 在java中要求局部变量在使用前必须初始化 数组下标的范围和类型 例3 是否存在下标越界错误 下标类型是否为整型 被引用的变量或内存的属性是否与编译器预期的一致 例4 如A类型的引用是否指向的是非A类型对象 代码检查的错误列表 cont 2 数据声明错误是否所有变量都已声明 例5绝大多数编程语言要求变量先定义后使用 可保证变量使用的安全性 变量的初始化是否正确 变量的初始化是否与其存储空间的类型一致 例6是否每个变量都有正确的长度 类型和存储类别 是否存在相似名称的变量 3 运算错误 例7 是否存在非算术变量之间的算数运算 是否存在混合模式或不同字长变量之间的运算 int与float类型 目标变量大小是否小于所赋值的大小 精度损失或越界错误 中间结果是否上溢或下溢 是否存在除0错误 操作符的优先顺序是否正确 整数除法是否正确 精度问题 如2 i 2 i 代码检查的错误列表 cont 代码检查的错误列表 cont 4 比较错误是否有不同类型数据的比较运算 如日期与数字 例8 是否有混合模式或不同长度数据的比较运算 比较运算符是否正确 如至多 至少 不小于 布尔表达式 与 或 非 是否正确 比较运算符是否与布尔表达式相混合 如2 i 10对吗 是否存在浮点数的比较 例9 优先顺序是否正确 布尔表达式的计算方式 5 控制流程错误是否所有循环都能终止 循环结束条件是否能满足以及递归的终止条件是否能满足 例10 是否存在由于入口条件不满足而跳过循环体 while循环 for循环 是否存在仅差一个的循环错误 如for inti 0 i 10 i 程序结构中括号是否匹配 if else是否匹配 do while是否匹配 try catch是否匹配等 代码检查的错误列表 cont 代码检查的错误列表 cont 6 接口错误形参和实参的数量是否相等 形参的类型是否与实参的类型相匹配 形参的属性是否与实参的顺序相匹配 形参的单位是否和实参匹配 属逻辑错误 7 输入输出错误 例11 文件属性是否正确 缓冲区 内存大小是否足够来保留程序将读取的文件 文件在使用前是否打开 文件在使用后是否关闭了 是否处理了IO错误 输出结果是否正确 代码检查的错误列表 cont 代码检查的错误列表 cont 8 其他检查是否存在未引用过的变量 编译通过的程序是否存在 警告 或 提示 信息 程序或模块是否对输入的合法性进行了检查 如第一章中三角形例 程序是否遗漏了某个功能 代码走查 代码走查和代码检查类似 都是以小组为单位进行代码阅读 是一系列规程和错误检查技术的集合 二者的过程大致相同 不同之处在于规程稍微不同走查会议期间 每个测试用例都在人们脑中推演 即把测试的数据沿着程序的逻辑结构走一遍 记录程序的状态供监视 很多错误是在向程序员提问的过程中发现的 其他与代码检查相同的地方参与者所持的态度同样非常关键代码走查也会带来同样的附带作用 桌面检查 桌面检查桌面检查可视为由单人进行的代码检查或代码走查由一个人阅读程序 对照错误列表检查程序 对程序推演的过程 桌面检查的缺点桌面检查的效率低是一个完全没有约束的过程 缺少互相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论