《软件测试的艺术》第三章 代码检查、走查和评审

本文详细介绍了代码检查和走查的流程、错误检查列表、参与人员组成及其职责,强调了人工测试在软件质量保障中的重要性,旨在提高代码质量和减少逻辑错误。代码检查与走查作为互补的测试手段,能够有效地查找出30%~70%的逻辑设计和编码错误,而代码检查小组、错误列表和同行评审等方法进一步提升了审查的效率和效果。
摘要由CSDN通过智能技术生成

3.1 代码检查与走查

相同点:

  1. 代码检查和走查都需要人们组成一个小组来阅读或直观检查特定的程序。无论采用哪种方法,参加者都需要完成一些准备工作。准备工作的高潮是在参加者会议上进行的所谓“头脑风暴会”。“头脑风暴会”的目标是找出错误来,但不必找出改正错误的方法。换句话说,是测试,而不是调试。
  2. 在典型的程序中,这些方法通常会有效地查找出30%~70%的逻辑设计和编码错误。但是,这些方法不能有效地查找出高层次的设计错误,例如在软件需求分析阶段的错误。
  3. 代码检查/走查与基于计算机的测试是互补的。

3.2 代码检查

所谓代码检查,是以组为单位阅读代码,它是一系列规程和错误检查技术的集合。代码检查是能够在早期发现程序中脆弱部位的方法之一,有助于在测试过程中将更多的注意力集中在这些脆弱地方。

3.2.1 代码检查小组

一个代码检查小组通常由四人组成,其中一人发挥着协调作用。协调人应该是个称职的程序员,但不是该程序的编码人员,不需要对程序的细节了解得很清楚。

协调人的职责:

  • 为代码检查分发材料、安排进程。
  • 在代码检查中起主导作用。
  • 记录发现的所有错误。
  • 确保所有错误随后得到改正。

第二个小组成员是代码的作者。小组的其他成员通常是程序的设计人员(如果设计人员不同于编码人员的话),以及一名测试专家。这名测试专家应该具备较高的软件测试造诣并熟悉大部分的常见编码错误。

3.2.2 检查议程与注意事项

在代码检查之前的几天,协调人将程序清单和设计规范分发给其他成员。所有成员应在检查之前熟悉这些材料。

检查进行时,主要进行两项活动:

  1. 由程序编码人员逐条语句讲述程序的逻辑结构。在讲述过程中,小组的其他人员应提问题,判断是否存在错误。在讲述中,很可能是程序编码人员本人而不是其他小组成员发现了大部分错误。换句话说,对着大家大声朗读程序,这种简单的做法看来是一个非常有效的错误检查方法。
  2. 参考常见的编码错误列表分析程序。

协调人负责确保会议的讨论高效地进行、每个参与者都将注意力集中在查找错误而不是修正错误(错误的修正由程序员在检查会议之后完成)。

在代码检查的时间及地点的选择上,应避免所有的外部干扰。代码检查会议的理想时间应在90~120分钟。由于开会是一项繁重的脑力劳动,会议时间越长效率越低。大多数的代码检查都是按每小时大约阅读150行代码的速度进行。因此,对大型软件的检查应安排多个代码检查会议同时进行,每个代码检查会议处理一个或几个模块或子程序。

3.2.3 对事不对人,和人有关的注意事项

程序员必须怀着非自我本位的态度来对待检查过程,对整个过程采取积极和建设性的态度:代码检查的目的是发现程序中的错误,从而改进软件的质量。正因为这个原因,大多数人建议应对代码检查的结果进行保密,仅限于参与者范围内部。尤其是管理人员想利用代码检查的结果,那么就与检查过程的目的背道而驰了。

单元测试计划 版本:V1.3 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 导言 2 1.1 目的 2 1.2 背景 2 1.3 范围 2 2 进入条件 2 3 退出条件 2 4 代码级别标准 2 5 代码分级清单 3 6 单元测试风险 3 7 单元测试策略 3 7.1 策略描述 3 7.2 类型 3 7.2.1 代码走查 3 7.2.2 功能测试 4 7.2.3 边界测试 4 7.2.4 覆盖率测试 4 7.2.5 内存使用测试 4 7.2.6 测试方式 4 7.3 测试用例估算 4 8 工具 5 9 进度及分工 5 10 交付物 5 导言 目的 【描述该代码走查及单元测试计划的目的。】 背景 【描述代码走查及单元测试计划的背景,活动目的。如无特殊背景信息,可裁剪。】 范围 【说明该代码走查及单元测试计划在整个项目周期的适用范围】 进入条件 【描述项活动的测试依据和满足该阶段测试进入的条件和约束。】 退出条件 【描述满足该阶段测试退出的条件,编写时特别要根据 《项目量化管理计划》列举一些量化的退出指标,例如 致命和严重级别的缺陷清除率达到 100%】 代码级别标准 【请参考组织级文档《代码分类级别指南》,中规定进行分类,质量经理可根据项目情况,对级别和通过标准做适当调整,将最后确定的通过标准记录在以下表格中】 级别 检查项 通过标准 A 代码编写格式检查 B 代码编写质量检查 C1 代码走查 C2 C3 D1 测试用例代码覆盖率检查 D2 D3 D4 E 内存泄漏检查 代码分级清单 【由架构师根据代码级别标准,划分】 模块 代码 A B C D E C1 C2 C3 D1 D2 D3 D4 √ √ √ √ √             单元测试风险 【此处描述测试任务可能遇到的风险,以及规避的方法】 # 风险描述 可能性 风险影响 责任人 规避方法 【高、中、低】 【高、中、低】 单元测试策略 策略描述 【此处描述根据项目的具体特征所确定的代码走查及单元测试的策略(如:代码走查在本项目重点关注的地方、测试可行性分析,测试方法确定,测试类型选择)】 类型 【此处描述单元测试选择的测试类型,一般建议有如下几种:】 代码走查 目标: 技术: 完成标准: 需考虑的特殊事项: 功能测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 边界测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 覆盖率测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 内存使用测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 测试方式 【说明手工测试的部分和自动测试的部分】 测试用例估算 【说明对需要开发的测试用例数目的估算】 模块 类数目 测试类型 测试用例数 工具 【本次测试将使用的工具】 用途 工具 厂商/自产 版本 测试管理 测试执行 缺陷报告 进度及分工  【根据测试的模块,分解任务,计划工作量、时间、人员;制订该计划的同时请参考中层计划等相关计划和估算文档;对于代码走查的人员安排一般要求架构师、高级工程师对工程师、助理工程师的代码进行走查,同时高级工程师、工程师 之间进行代码互查】 模块 任务 工作量 开始日期 人员 代码走查 用例设计 用例开发 用例执行 工作量合计 代码走查 用例设计 用例开发 用例执行 交付物 【描述单元测试需要交付的工作产品】 交付物名称 责任人 参与者 交付日期 测试计划 代码走查报告 测试用例 测试报告
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值