第3章 代码检查、走查与评审

代码检查与走查

代码检查、走查以及可用性测试是三种主要的人工测试方法。人工测试技术在查找错误方面非常有效,应该在程序开始编码之后基于计算机的测试开始之前使用这些方法。本章主要介绍的是代码检查与走查的相似之处,而它们的不同之处将在后续章节中介绍。

代码检查与走查都要求人们组成一个小组(一场"头脑风暴会")来阅读或直观检查特定的程序。

"头脑风暴会"的目标是找出错误来,但不必找出改正错误的方法。在代码走查中,一组开发人员(三到四人为最佳)对代码进行审核。其中
只有一人是代码的作者。因此,代码走查的主要工作是由其他人,而不是作者本人完成的,这和软件测试的第 原则,也即"软件编写者往往不能有效地测试自己的软件"相符合。

代码检查与走查是对过去桌面检查过程(在提交测试前由程序员阅读自己程序的过程)的改进。因为在实施过程中,除了软件编写者本人,还有其他人参与进来。代码走查的另一个优点在于,一旦发现错误,通常就能在代码中对其进行精确定位,这就降低了调试(错误修正)的成本。在典型的程序中,这些方陆通常会有效地查找出30%-70%(这些方陆在测试过程结束时可以有效地查找出多达70%的已知错误)的逻辑设计和编码错误。这些方法不能有效地查找出高层次的设计失误,例如在软件需求分析阶段的错误。代码检查/走查与基于计算机的测试是互补的。缺少其中任何一种,错误检查的效率都会降低。

代码检查

所谓代码检查,是以组为单位阅读代码,它是一系列规程和错误检查技术的集合。

代码检查小组

一个代码检查小组通常由四人组成:协调人员,代码作者,程序设计人员(不同于编码者),测试专家

协调人负责确保检查会议的讨论高效地进行、每个参与者都将注意力集中于查找错误而不是修正错误(错误的修正由程序员在检查会议之后完成)。测试专家应该具备较高的软件测试造诣井熟悉大部分的常见编码错误。

检查议程与注意事项

在进行代码检查时,主要进行下列两项活动:

  1. 由程序编码人员逐条语句讲述程序的逻辑结构

  2. 参考常见的编码错误列表分析程序

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

代码检查的衍生功效

  1. 程序员通常会得到编程风格、算法选择及编程技术等方面的反馈信息

  2. 其他参与者也可以通过接触程序员的错误和编程风格而同样受益匪浅

  3. 代码检查是能够在早期发现程序中脆弱部位的方法之一

代码检查错误列表

image-20210103155341108

image-20210103155422373

image-20210103155445438

代码走查

代码走查与代码检查很相似,都是以小组为单位进行代码阅读,是一系列规程和错误检查技术的集合。

image-20210103155612807

代码走查的独特之处:代码走查的参与者"使用了计算机",即每个测试用例都在人们脑中进行推演,把测试数据沿程序的逻辑结构走一遍。

在大多数的代码走查中,很多问题是在向程序员提问的过程中发现的,而不是由测试用例本身直接发现的。

桌面检查

桌面检查可视为由单人进行的代码检查或代码走查:由一个人阅读程序,对照错误列表检查程序,对程序推演测试数据。其效果逊于代码检查或走查,原因在于代码检查和代码走查小组中存在着互相促进的效应。

同行评审

同行评审是一种依据程序整体质量、可维护性、可扩展性、易用性和清晰性对匿名程序进行评价的技术。该项技术的目的是为程序员提供自我评价的手段。

评审过程:选出一位程序员作为评审管理员,管理员又挑选至少6名具有相似背景(比如都是写Java的)的参与者,每名参与这挑选出两个程序(一个自认为“最好”的,一个自认为“较差”的)。将这些程序进行随机分发,每名参与者拿到两个“最好”的,两个“较差”的,然后根据“评审标准”填写评价表,评审人还应给出总的评价和建议的改进意见。评审结束之后,参与者会收到自己的那两个程序的匿名评价表,此外还会收到一个带统计的总结,说明在所有的程序中其程序的整体和具体得分情况,以及他对其他程序的评价与其他评审人对同一程序打分的比较分析情况

同行评审的目的是让程序员对自身的编程技术进行自我评价。同样,该过程也适用于企业开发和课堂教学环境。

posted @ 2021-01-03 16:10  大脸猫要开心鸭  阅读(1476)  评论(0编辑  收藏  举报