读书笔记《软件测试的艺术》第三章 代码检查、走查与评审

之前软件界大多人认为编写程序仅是提供给机器执行,并不是给人们阅读的,而软件测试的方法就是在计算机上执行它,但其实研读程序代码是软件测试工作的一部分,这个观念已经得到了广泛的认同。

影响特定调试和人工研读程序的可能性:

  • 软件规模和复杂的度
  • 软件开发团队的规模
  • 软件开发的时限
  • 编程小组的技术背景和文化

由于人为因素在内,人工测试正规性要差于计算机执行的数学证明,但人工测试发现错误越早改正错误的成本越低,改正错误的可能性也更大;且由于编程人员心理压力的存在,修改基于计算机测试发现的错误时所犯失误将多于早期发现问题时所犯失误。

一、代码的检查与走查概述

1、人工测试的三种主要方法:

  • 代码走查
  • 代码检查
  • 可用性测试

这些方法可用于程序基本结束后,也可以用在一个模块编码结束后。
代码检查与走查通常要求组成一个小组来阅读或直观检查特定的程序,其中一人是代码的作者,但代码走查与检查主要由其他人来完成(“软件编写者往往不能有效地测试自己的软件”),其目的在于找出错误而不是找出更改错误的方法(即为测试而不是调试)。

2、代码走查与检查的优点:

  • 相对于提交测试前程序员自己阅读程序进行改进,代码走查与检查更为有效
  • 代码检查与走查通常能精确的定位错误,且能成批的发现错误,而不像计算机测试逐个发现错误

3、代码走查与检查的缺点:

  • 不能有效地找出高层次的设计错误(如软件需求分析阶段的错误)

二、代码检查

1、代码检查小组
通常由四人组成,其中一人发挥协调作用,协调人不能为程序的编写者,且需完成以下工作:

  • 为代码检查分发材料、安排进程
  • 在代码检查中起主导作用
  • 记录发现的所有错误
  • 确保所有错误最后的到改正
    代码检查小组中还应包含代码的作者、程序设计人员、测试专家

2、检查议程与注意事项

  • 由程序编码人员逐语句讲述程序的逻辑结构,其他人员提问,判断是否存在问题
  • 参考常见的错误编码错误列表分析
  • 整个代码检查过程注意力应集中在找出错误上二不是改正错误
  • 代码检查会议应避开所有外部干扰,理想会议时间在90-120分钟
  • 代码检查一般按照每小时大约阅读150行的速度进行
  • 大型项目应安排多个代码检查会议同时进行,分模块或子程序进行检查

3、对事不对人、和人有关的注意事项

  • 要使代码检查过程有成效就必须怀着非本位的态度来对待检查过程,整个过程采取积极和建设性的态度,代码检查的目标是发现程序中的错误,从而改进软件的质量。

4、代码检查的衍生功效

  • 程序员可以得到编程风格、算法选择、编程技术等方面的反馈
  • 其他参与者也可通过接触程序员的错误和编程风格而受益匪浅

5、用于代码检查的错误列表

  • 对照错误列表是代码检查过程的一个重要部分
  • 应注意错误列表应避免更多注重代码风格而不是错误本身
  • 还应避免错误检查过于模糊(如:“代码是否满足设计需求”)

6、数据引用错误

  • 是否引用的变量未赋值或初始化
  • 数组的引用每个下标的值是否在界限以内
  • 数组的下标是否都为整数
  • 通过指针或引用变量的引用,内存单元是否分配
  • 若一个内存区域具有不同的属性别名,通过别名引用时,内存区数据值是否具有正确的属性
  • 变量值的类型与属性是否与编译器预期的一致
  • 使用指针或变量引用的内存属性是否与编译器所预期的一致
  • 数据结构存在在多个过程中被引用,每个过程对该结构体定义是否一致

代码检查错误列表:数据引用错误、数据声明错误、运算错误、比较错误、控制流错误、接口错误、输入/输出错误、其他检查此处不再详细介绍(太多了-_-!)

二、代码走查

跟代码检查相似,但规程稍微不同,错误检查技术也不一样,代码走查会对一些书面用例进行人脑推演。

走查小组建议包括

  • 一个经验丰富的程序员
  • 一个程序设计语言专家
  • 一个程序员新手(可以给出新颖不带偏见的观点)
  • 最终维护程序的人员:
  • 一位来自其他不同项目的人员
  • 一位来自该软件编程小组的程序员。

三、桌面检查

一个人阅读程序,对照错误检查表检查程序,对程序推演测试数据。其效果优于没有检查但远远逊色于代码检查和代码走查

四、同行评审

同行评审是一种依据程序整体质量、可维护性、可扩展性、易用性、清晰性对匿名程序进行评价的技术。

  • 该技术的目的是让程序员对自身的编程技术进行自我评价
#读书笔记##测试##笔记#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务