桌前检查、代码评审、走查

2023-11-08

桌前检查(Disk Checking)

这是一种传统的检查方法。由程序员检查自己编写的程序。程序员在程序通过编译之后,进行单元测试之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。检查项目有:

1)检查变量的交叉引用表:重点是检查未说明的变量和违反了类型规定的变量,还要对照源程序逐个检查变量的引用、变量的使用序列,临时变量在某条路经上的重写情况;局部变量、全局变量与特权变量的使用。

2)检查标号的交叉引用表:验证所有标号的正确性:检查所有标号的命名是否正确;转型指定位置的标号是否正确。

3)检查子程序、宏、函数:验证每次调用与所调用位置是否正确;确认每次所调用的子程序、宏、函数是否存在;检验调用序列中调用方式与参数顺序、个数、类型上的一致性。

4)等价性检查:检查全部等价变量的类型的一致性,解释所包含的类型差异。

5)常量检查:确认每个常量的取值和数制、数据类型;检查常量每次引用同它的取值、数制和类型的一致性。

6)标准检查:用标准检查程序或手下检查程序中违反标准的问题。

7)风格检查:检查在程序设讣风格方面发现的问题。

8)比较控制流:比较由程序员设计的控制流图和出实际程序生成的控制流图,寻找和解释每个差异,修改文档和纠正错误。

9)选择、激活路径、不程序员霞计的控制流图上选择路径,再到实际的控制流图上激活这条路。如果选择的路径在实际控制流图上不能激活,则源程序可能有错。用这种方法激活的路径集合应保证源程序模块的每行代码都得到检查,即桌前检查应完成至少是语句覆盖。

10)对照程序的理格说听,洋细阅读代码L程序员对照程序的期格说明书,规定的算法和程序设计语言的语法规则,仔细阅读源代码,逐字逐句进行分析和思考,比较实际的代码和期望的代码,从它们的差异中发现程序的问题和错误。

11)补充文档:桌前检查的文档是一种过渡性的文档,不是公开的正式文档。通过编写文档,也是对程序的一种下意识的检查和测试,可以帮助程序员发现和抓住更多的错误。管理部门也可以通过审查桌前检查文档,了解模块的质量、完全性、测试方法和程序员的能力。这种文档的主要内容有:

  • 建立小型的数据词典,描述程序中出现的每一种数据结构、变量、和寄存器的用法,建立 相应的各种交叉引用表格。

  • 描述主要的路经和异常的路径,为覆盖准备条件。

  • 当测试采用逻辑驱动时,即利用判定表或布尔代数方法来确定逻辑覆盖时,应讨论逻辑情况。此外,在状态测试情形,即考虑模块中状态的组合和状态的迁移时对状态控制变量进行设计,以及利用语法制导的测试,也都要讨论逻辑情况。要是文档编制适应测试技术。

  • 描述全部已知的限制和假定 。

  • 描述全部的接口和对接口的假定。
    这种桌前检查,由于程序员熟悉自己的程序及其程序设计风格,可以节省很多的检查时间,但应避免主观片面性。

代码评审(Code Reading Review)

代码评审是由若干程序员和测试员组成一个评审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。

代码评审分两步:

第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小红成员在充分阅读这些材料之后,进入审查的第二步:召开程序审查会。在会上,首先由程序员逐句解释种序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。实践表明,程序员在讲够的过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。例如对某个局部性小问题修改方法的讨论,可能发现与之牵连的其他问题,甚至涉及到模块的功能说明、模块间接口和系统总体结构的大问题,从而导致对需求的重定义、重设计和重验证,进而大大改善了软件质量。

在会前,应当给评审小凯每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误罗列出来,供与会者对照检查,以提高评审的实效。

这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供在评市时使用。这种检查表类似于单元测试中给出的检查表。在代码评审之后,需要做以下几件事:

1)把发现的错误登记造表,并交给程序员;

2)若发现错误较多,或发现重大错误,则在改正之后,再次组织代码评审;

3)对错误登记表进行分析、归类、精炼,以提高审议效果;

走查(Walkthroughs)

走查与代码评审基本相同,其过程分为两步。

第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码评审不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当"计算机。即首先由测试组成员为所测试程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。

人们借助于测试用例的媒介作用,对程序的逻辑和功能提出各种疑问,结合问题开展热烈的讨论和争议,能够发现更多的问题。

内容转载自https://www.docin.com/p-192448750.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

桌前检查、代码评审、走查 的相关文章

  • 测试工程师要进阶,就得明白这3点...

    在大型互联网公司带测试团队多年 也做过多年的测试工程师招聘工作 对测试工程师的能力也见过高高低低各种 今天 分享下这些年带领测试团队提高的一点思路和方法 还在成长期的测试工程师可以用来指导自己的学习 用这套框架给自己制定一套目标和学习框架
  • 【软件测试】linux命令-引用符号(反斜杠\、单引号‘‘、双引号““)

    引用符号在解析器中保护特殊元字符和参数扩展 其使用方法有3种 反斜杠 单引号 双引号 单引号和双引号必须匹配使用 均可在解析器中保护特殊元字符和通配符 但是单引号 硬转义 主要用于信息的原样输出 防止任何变量的扩展 双引号 软转义 允许变量
  • 测试用例之支付功能测试点整理【建议收擦】

    一 梳理支付的业务流程如下 点击支付 gt 选择支付方式 gt 确认金额 gt 输入密码 gt 成功支付 完成这个流程测试 也就是完成了项目的冒烟测试 然后需要测试针对流程中的每个阶段和步骤 具体分析可能导致异常的测试点 所以我们按阶段和输
  • 小白转行软件测试,面试3天接到3个offer,月薪10k(程序人生)

    简介 这篇文章主要介绍了小白转行软件测试 面试3天接到3个offer 月薪10k 示例代码 以及相关的经验技巧 值得大家参考 我叫小马 来自于河北保定 毕业以来一直对自己的人生充满了迷茫 一次偶然的机会让我重新找到了方向 2015年高中毕业
  • jmeter 安装配置

    一 进入官网 http jmeter apache org 1 第一步进入官网如下图 2 选择进行下载 下载下来为一个压缩包 解压即可 3 下载完成后 然后就进行解压 要注意版本对应的java要求 解压完成后就要配置环境变量了 4 环境变量
  • 卷麻了,00后测试用例写的比我还好,简直无地自容......

    经常看到无论是刚入职场的新人 还是工作了一段时间的老人 都会对编写测试用例感到困扰 例如 如何编写测试用例 作为一个测试新人 刚开始接触测试 对于怎么写测试用例很是头疼 无法接触需求 只能站在用户角度去做测试 但是这样情况会导致不能全方位测
  • 0基础也能看懂,熬夜7天肝出这一份3w字软件测试学习手册【建议收藏】

    随着互联网行业的发展迅速 很多人都想涌进来 近年来软件测试岗位也呈现出了前所未有的火爆趋势 尤其2021年国家实现教育 双减 政策 激起了很多教培从业者 幼师 机械加入软件测试行业学习 剑哥今天抽个时间简单的给大家说下 对于0基础的朋友到底
  • Jmeter测试移动接口性能 —— 压测

    一般的公司都想知道自己产品的性能瓶颈和以及提升性能 以期大流量来了还撑得住 其实性能测试很难 难点在你不知道性能要达到怎样的需求 难点在于你没有实际的环境场景给你测试 总不能给线上环境你测试吧 难点在于找性能瓶颈 即便找出来了 调优也是一件
  • 测试人员为什么要去了解业务架构和技术架构?

    问题 在入职公司不久 我参加老员工再给新来的员工和管培生宣讲产品的业务 功能 直接拿着功能清单和实际页面在讲解 等把产品功能讲完了 我问了一下实习生和管培生怎么样 他们都说功能讲的太多 太乱 不清楚讲解产品的核心业务逻辑及操作流程 后来发现
  • 提升Jmeter测试效率的9种参数化方法!

    jmeter工具无论做接口测试还是性能测试 参数化都是一个必须掌握且非常有用的知识点 参数化的使用场景 1 多个请求都是同一个ip地址 若服务器地址更换了 则脚本需要更改每个请求的ip 2 注册账号 不允许账号重复 想批量注册用户时 3 模
  • 软件测试面试题:如何测试App性能?

    为什么要做App性能测试 如果APP总是出现卡顿或网络延迟的情况 降低了用户的好感 用户可能会抛弃该App 换同类型的其他应用 如果APP的性能较好 用户体验高 使用起来丝滑顺畅 那该应用的用户粘性也必然会提高 那我们该如何做App性能测试
  • 深入理解软件测试中的Web请求流程!

    在软件开发的过程中 软件测试是不可或缺的一环 它有助于确保软件系统的稳定性 可靠性和安全性 而在众多测试中 Web请求流程的测试显得尤为重要 因为几乎所有的现代应用都离不开网络交互 接下来我们将深入探讨软件测试中完整的Web请求流程 帮助大
  • 新手上路:盘点「性能测试」必须掌握的技术点

    前段时间 有一些小伙伴提出希望我们推送点性能测试的技术干货 所以 小编今天通过上网查资料 结合项目实操过程中的一些问题 总结了一些关于性能测试的内容 希望是大家想要了解的内容哈 1 性能测试的目的 首先 先来明确一个问题 我们为什么要给产品
  • 测出Bug就完了?从4个方面教你Bug根因分析

    01 现状及场景 1 缺失bug根因分析环节 工作10年 虽然不是一线城市 也经历过几家公司 规模大的 规模小的都有 针对于测试行业很少有Bug根因环节 主流程基本上都是测试提交bug 开发修改 测试验证 发送报告 测试环节结束 往往有下面
  • 选择正确的自动化测试工具:打造高效测试流程的必备利器!

    摘要 自动化测试正在逐步取代部分手动测试 因为它可以节省时间并提高测试质量 特别是在进行回归测试的情况下 自动化可以通过多种方式提高效率 手动进行重复测试是浪费时间和资源 此外 由于重复测试可能会遗漏 因此存在一定的错误范围 但是自动化中发
  • Python接口自动化测试:断言封装详解

    前言 在进行API接口测试时 断言起着至关重要的作用 断言是用于验证预期结果与实际结果是否一致的过程 在Python中 我们可以利用一些库来实现断言功能 1 安装必要的库 在Python中 我们主要会使用两个库 requests 和 jso
  • 8年经验之谈!一文看懂性能测试的流程!

    每天做着点点点测试有没有危机感 突然有一天 领导说 小王 今天把996福报系统压一下 下班前把压测报告发我邮箱 啥 压测 今天 报告 怎么压 怎么写 从来没做过啊 心里一万匹草泥马奔跑而过 别说996了 估计明天都下不了班了 好歹也像功能测
  • Appium —— 初识移动APP自动化测试框架Appium

    说到移动APP自动化测试 代表性的测试框架非Appium莫属 从今天开始我们将从 APP结构解析 Appium框架学习 安卓 iOS自动化测试实战 自动遍历回归测试 自动化测试平台及持续集成 多个维度一起由浅入深的学废Appium 今天我们
  • “揭秘性能测试工具:优化软件性能的关键秘籍“

    性能测试工具的设计宗旨是为了模拟用户对软件应用程序或系统的各种操作 旨在评估关键的性能指标 包括响应时间 吞吐量 并发能力和资源利用率 通过这些工具模拟的多用户环境 我们能够产生与实际工作负载相似的条件 并监测系统在这种情况下的性能表现 一
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么

随机推荐

  • java mail 通过 freemarker 发送邮件

    java mail 通过 freemarker 发送邮件 理解 java mail 核心类 1 MimeMessage 对象就是一封邮件 2 Session 定义系统属性信息 具体代码如下 1 controller 层代码如下 packag
  • ubuntu 下切换窗口

    通过 alt tab 键 在所有打开的程序之前切换 在切换过程中 如果遇到已经打开多个窗口的程序 可以按 alt 键 组合键 转入一个程序所有窗口中 循环切换 转载于 https www cnblogs com zach0812 p 115
  • C# 的文件读写方式汇总(学习心得 27)

    当打开文件进行读写时 它变成一个 流 从根本上说 流是通过通信路径传递的字节序列 有两个主要的流 输入流 和 输出流 输入流用于从文件读取数据 读操作 输出流用于向文件写入数据 写操作 超级小白友好 讲解C 基础 每集5分钟轻松学习 拒绝从
  • pta找完数问题,我想知道哪错了,pta上显示有两处答案错误,谢谢

    include
  • 2018/12/19统计字符出现字数

    本题要求编写程序 统计并输出某给定字符在给定字符串中出现的次数 输入格式 输入第一行给出一个以回车结束的字符串 少于80个字符 第二行输入一个字符 输出格式 在一行中输出给定字符在给定字符串中出现的次数 输入样例 programming i
  • MSF图形化界面Viper(炫彩蛇)下载与使用

    Viper 炫彩蛇 是一款图形化内网渗透工具 将内网渗透过程中常用的战术及技术进行模块化及武器化 Viper 炫彩蛇 集成杀软绕过 内网隧道 文件管理 命令行等基础功能 Viper 炫彩蛇 当前已集成70 个模块 覆盖初始访问 持久化 权限
  • zsh: command not found: brew

    问题 已经安装好Homebrew 命令行查看brew v 显示zsh command not found brew 解决方案 打开 如不存在此文件会自动创建 vim zshrc 在里面添加一行 export PATH opt homebre
  • 【数据结构】手把手带你搞懂顺序表(带图详解)

    文章目录 前言 1 顺序表 1 1 顺序表的结构体 1 2 功能实现 初始顺序表 增加顺序表长度 顺序表的查找 顺序表的插入 顺序表的删除 打印顺序表 顺序表的销毁 1 3 顺序存储结构的优缺点 顺序表总代码 前言 在本篇博客中 我会概述顺
  • 12.20 摄像机跟随玩家

    public class CameraFollow MonoBehaviour Transform player float up 11 away 17 Vector3 pos float speed 3f void Start playe
  • 基于JSP的网络超市商品销售管理系统的毕业设计与实现

    论文题目 基于JSP的网络超市商品销售管理系统的毕业设计与实现 摘要 随着电子商务的快速发展 网络超市已经成为人们购物的重要途径之一 本文基于JSP Java Server Pages 技术 设计了一个网络超市商品销售管理系统 旨在提供一个
  • BUUCTF,Web:[极客大挑战 2019]Havefun

    无其他可动项 先看源码 cat GET cat echo cat if cat dog echo Syc cat cat cat cat get 传 cat dog 得到 flag
  • datagrip插入汉字报错

    1 datagrip报错信息 HY000 1366 Incorrect string value xE5 xA4 xA7 xE5 xB8 x88 for column name at row 1 2 原因 编码格式有问题 建立表的时候不能插
  • 多线程之间实现通讯

    多线程之间如何实现通讯 什么是多线程之间通讯 多线程之间通讯 其实就是多个线程在操作同一个资源 但是操作的动作不同 画图如下 我这里有个例子 就是弄两个线程 一个进行写 一个进行读 写的话 如果是偶数 就是java 男 如果是奇数 就是ph
  • c++编写消消乐游戏

    include
  • AR基础讲解:打造AR元宇宙博物馆编程之旅

    AR基础讲解 打造AR元宇宙博物馆编程之旅 随着技术的不断发展 增强现实 AR 正逐渐成为各个领域的热门技术 而在AR中 构建一个全新的虚拟世界 AR元宇宙博物馆 使我们能够透过手机或其他AR设备与数字内容进行互动 本文将为大家介绍如何使用
  • 美国病毒systemd占用100%,root密码登录卡死

    1 top 查看到有僵尸进程一直启动 2 lsof p 752 查看进程的来源 3 crontab l 查看定时任务 是否有自动启动
  • C语言网络编程(二)建立套接字通讯UDP

    所谓socket套接字 指的是在网络通信以前建立的通信接口 进行网络连接以前 需要向系统注册申请一个新的socket 然后使用这个socket进行网络连接 提示 套接字 传输层协议 端口号 IP地址 在进行网络连接以前 需要用socket函
  • 代码随想录算法训练营19期第57天

    647 回文子串 代码随想录 初步思路 动态规划 总结 dp i j 表示区间范围 i j 注意是左闭右闭 的子串是否是回文子串 当 s i s j 时 需要判断 dp i 1 j 1 是不是一个回文串 if s i s j j i lt
  • 3分钟搞懂js的冒泡和捕获?

    为了快速理解js冒泡和捕获 我们先看代码
  • 桌前检查、代码评审、走查

    桌前检查 Disk Checking 这是一种传统的检查方法 由程序员检查自己编写的程序 程序员在程序通过编译之后 进行单元测试之前 对源程序代码进行分析 检验 并补充相关的文档 目的是发现程序中的错误 检查项目有 1 检查变量的交叉引用表