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

2023-11-15

代码检查与走查

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

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

"头脑风暴会"的目标是找出错误来,但不必找出改正错误的方法。在代码走查中,一组开发人员(三到四人为最佳)对代码进行审核。其中

只有一人是代码的作者。因此,代码走查的主要工作是由其他人,而不是作者本人完成的,这和软件测试的第 原则,也即"软件编写者往往不能有效地测试自己的软件"相符合。

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

代码检查

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

代码检查小组

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

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

检查议程与注意事项

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

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

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

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

代码检查的衍生功效

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

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

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

代码检查错误列表

e9ccfb9d54539535eca79ad2b1075038.png

dc2aa22ea243c5e6b1d69121437d860c.png

1bd48616c6c2aa2eecbb4924c6e3e4e6.png

代码走查

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

8a6df67b98657a1d5ad5301eb62f7cd1.png

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

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

桌面检查

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

同行评审

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

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

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

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

mysql评审_第3章 代码检查、走查与评审 的相关文章

  • 全景分割(Panoptic Segmentation)(CVPR 2019)

    全景分割 Panoptic Segmentation CVPR 2019 摘要 1 导言 2 相关工作 3 全景分割格式 4 全景分割度量 4 1 片段匹配 4 2 PQ计算 4 3 与现有度量的比较 5 全景分割数据集 6 人类一致性研究
  • PAL 和NTSC说明?

    PAL 720 576 25HZ NTSC 720 480 30HZ 576i是一种视频格式的缩写 字母 i 表示 隔行扫描 数字576表示水平方向有576条 扫描线 通常通常垂直分辨率为720或者704像素 换句话说 标准画质电视 SDT
  • STM32学习笔记:CAN总线的过滤器

    STM32 CAN控制器 提供了28个可配置的筛选器组 F1仅互联型才有28个 其他的只有14个 STM32 CAN控制器每个筛选器组由2个32位寄存器组成 CAN FxR1和CAN FxR2 x 0 27 根据位宽不同 每个筛选器组可提供
  • 使用cBioPortal查看TCGA肿瘤数据

    欢迎关注 生信修炼手册 cBioPortal整合了来自TCGA CCLE以及几个独立的大型肿瘤研究项目的数据 构建了一个易于使用的网站 不需要有深厚的计算机功底 也可以通过该网站查询 分析 可视化肿瘤的相关结果 针对该网站的使用 官方专门发
  • leetcode 322. Coin Change硬币交换问题

    题目详细 描述 You are given coins of different denominations and a total amount of money amount Write a function to compute th
  • 美国国家安全局(NSA)网络攻击主战武器NOPEN

    国家计算机病毒应急处理中心14日正式发布了美国国家安全局专用 NOPEN 远控木马分析报告 揭露了美国情治部门的网络间谍手段 国家计算机病毒应急处理中心 信息安全摘要 近日 国家计算机病毒应急处理中心对名为 NOPEN 的木马工具进行了攻击
  • 排序算法--冒泡排序

    冒泡排序 基本思想 实例演示 代码实现 基础实现 代码优化 基本思想 基本思想 冒泡排序 类似于水中冒泡 较大的数沉下去 较小的数慢慢冒起来 假设从小到大 即为较大的数慢慢往后排 较小的数慢慢往前排 直观表达 每一趟遍历 将一个最大的数移到
  • 雅可比(jacobi)迭代法 matlab实现

    clc clear n input 请输入矩阵阶数 n for i 1 n fprintf 请输入矩阵第 d行 n i A i input end A B 1 input 请输入B向量 n B for i 1 n x i 0 x2 i 0
  • 动态规划之完全背包问题

    完全背包问题 题目 有 N N N 种物品和一个容量为 V V V 的背包 每种物品都有无限件可用 放入第 i
  • javascript 的MD5代码备份,跟java互通

    var MD5 function string function RotateLeft lValue iShiftBits return lValue lt
  • mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [list]

    当在mybatis用到foreach的时候 会报这个错误Parameter frch item 0 not found Available parameters are list 会出现的几种解决方案 例子 sql view plain c
  • 【Linux操作系统】【综合实验二 vi应用与shell脚本编辑】【浅试编辑命令】

    文章目录 一 实验目的 二 实验要求 三 实验内容 1 继续练习Linux系统的文件类 目录类 进程管理类与磁盘操作类常用命令 并使用常见的选择项 2 了解ed ex行编辑器与Emacs全屏幕编辑器的工作模式 基本操作命令 3 掌握vi的编
  • 静态测试

    之前对 静态测试 一直不怎么理解 一直徘徊在为什么要进行静态测试 看了下面这几篇文章 突然觉得的柳暗花明了 目前我正在测试的项目xx让我烦心的问题终于找到出路了 http qa taobao com p 8017 http qa taoba
  • 资产收集的方法总结

    资产收集的方法总结 文章目录 资产收集的方法总结 前言 一 资产收集基本名词概念 二 相关收集方法 1 fofa 2 google搜索语法 3 logo 4 favicon ico 5 关键字 6 维基百科 7 天眼查 企查查 8 微信公众
  • 设计模式之UML类图该怎么画

    关于可维护 可复用 可扩展 灵活性好的理解 生活中 印刷术和活字印刷 当需要对某些内容修改时 印刷术只要有一丁点变化 就需要重头再来 而活字印刷只需要进行部分修改即可 可维护 只更改要更改的内容 可复用 之前的内容并非用完就无用 后面仍可使
  • Caused by: java.lang.NoClassDefFoundError: javax/tools/ToolProvider

    解决方案 在pom文件中的scala maven plugin插件下面加入一个参数 pom xml配置如下
  • python + selenium实现自动登录操作(以淘宝为例)

    selenium操作不熟练的可以查看一下这篇文章 selenium操作大全 一 登录前准备操作 定位一下相对应html位置 输入一般为input标签 登录按钮一般为button 输入账号密码那块 定位代码 driver find eleme
  • 电脑主板跳线_电脑基础进阶必学知识,详解电脑主板跳线!

    在DIY装机时新手总会有不同的问题 虽然目前网上流传着各种版本的教学文章或者视频 但是细致的小技巧讲解还是有限 不少网友在装机的时候虽然大致明白各个硬件的组合 但是在跳线的环节可以难住了不少的人 也挡住了不少小白用户前进的脚步 确实机箱内部
  • 强化学习算法 DDPG 解决 CartPole 问题,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 使用DDPG解决连续控制版本的CartPole问题 给小车一个力 连续量 使得车上的摆杆倒立起来 文章目录 一 安装依赖 二 导入依赖 三 设置

随机推荐

  • 电脑主板跳线_电脑基础进阶必学知识,详解电脑主板跳线!

    在DIY装机时新手总会有不同的问题 虽然目前网上流传着各种版本的教学文章或者视频 但是细致的小技巧讲解还是有限 不少网友在装机的时候虽然大致明白各个硬件的组合 但是在跳线的环节可以难住了不少的人 也挡住了不少小白用户前进的脚步 确实机箱内部
  • 强化学习算法 DDPG 解决 CartPole 问题,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 使用DDPG解决连续控制版本的CartPole问题 给小车一个力 连续量 使得车上的摆杆倒立起来 文章目录 一 安装依赖 二 导入依赖 三 设置
  • 微信小程序中实现车牌输入功能

    一 成品展示与介绍 在点击输入框的时候会弹出车牌输入键盘 二 相关思路解析 首先车牌号码由31位汉字 26位字母 10位数字组成的 开头第一位由省份简称的汉字 第二位字母根据省份下的城市或地区区分 最后的五位或者六位 是有字母和数字组成的
  • 开发工具篇 程序员计算器

    BYTE数据 到16进制 10进制
  • JVM--基础--27.2--工具--VisualVM--远程连接

    JVM 基础 27 2 工具 VisualVM 远程连接 1 准备工作 准备工作是为了测试使用 1 1 代码地址 https gitee com DanShenGuiZu learnDemo tree master visualvm lea
  • c#读取html 表格,c# – 如何将文本文件读取到DataTable

    我想从txt文件中提取数据并将其放入DataTable中 txt文件中的内容采用以下格式 sometext1 sometext2 sometext3 sometext4 sometext5 sometext6 sometext7 somet
  • java获取实时天气预报数据

    数据是从 www webxml com cn上免费获取的 有需要也可以去购买服务 api可以去该网站查看 这里用的是GET方式请求 每个城市citycode 也需要从这个网站上面去下载 解析xml用到的是xwork core 2 3 15
  • 月薪快6万了!

    和一位本科师兄约饭 比我大一级 当年他的成绩很好 完全能够保送更好高校的研究生 但在大家纷纷从众去读研的时候 他选择了直接工作 去了西二旗一家大厂 具体哪家这里就不明说了 圈子很小 很容易被定位 我问了下他目前的薪资情况 他说了几个数字 现
  • 第一章矩阵及其应用

    矩阵逆运算规律 由于矩阵运算默认不满足交换律 即AB BA 但若存在一钟矩阵B 满足AB BA 就满足了交换律 单位矩阵就是特殊的一种AB BA 单位矩阵定义是这样的 lt 设A为n阶方阵 则A aE aE A aA gt 也就是说 数量阵
  • Oracle 的drop table if exists功能

    Mysql 创建表之前判断表是否存在 如果存在则删除已有表 DROP TABLE IF EXISTS SH PLACARD INFO Oracle 创建表之前判断表是否存在 如果存在则删除已有表 declare num number beg
  • 如何使用JMeter进行压力测试

    一 前期准备 首先需要在官网下载jmeter 下载完之后打开bin目录下的jmeter bat 在jmeter bat中对所要压测的接口进行压力测试 二 具体步骤 1 创建线程组 在线程组中设置线程的个数 持续时间和循环次数 如下图所示 2
  • PMI632

    1 目录 drivers power supply qcom qpnp smb5 c charger driver drivers power supply qcom smb5 lib c 依赖的SMB library arch arm64
  • CTF_Web:php伪随机数mt_rand()函数+php_mt_seed工具使用

    CTF Web php伪随机数mt rand函数漏洞 0x00 问题描述 0x01 mt rand函数 0x02 CTF例题 0x03 php mt seed工具使用 0x04 参考文章 0x00 问题描述 最近在题目练习的时候遇到了一个伪
  • Gulp入门使用(一)

    Gulp入门使用教程 Gulp的简介 为什么是Gulp 安装Gulp 创建Gulp项目 目录结构 第一个Gulp任务 Gulp执行预处理 Node中的通配符 监听Sass文件 使用Browser Sync自动刷新 Gulp的简介 gulp
  • 开学c语言测试,初学c语言之开学第一次打卡

    近日开学 忙了好多事 因此隔了好久才写了这篇博客 话少 就直接进入正题了 数数字问题 这是题目 输入一个整数 输出每个数字对应的拼音 当整数为负数时 先输出fu字 十个数字对应的拼音如下 0 ling 1 yi 2 er 3 san 4 s
  • 签约多方共建石嘴山智慧康养新模式

    5月13日 百度智能云与石嘴山市民政局 中国电信股份有限公司石嘴山分公司 中国银行股份有限公司石嘴山市分行 石嘴山市青鸟颐居养老服务有限公司在宁签订 石嘴山市智慧康养战略合作协议 将发挥各自优势 合力推进智慧康养产业高质量发展 提高智慧养老
  • 解决 ios 输入框属性--placeholder--不显示

    在我们写移动端项目时 会发现在IOS手机上 部分输入框的默认文字会隐藏 在此提供一套解决方法 此方法已经历过实际项目的测试 可放心的应用于实战 将此段js代码放置在项目的公共js文件中即可 if placeholder in documen
  • 海湾汉字编码表全部_汉字编码简明对照表

    汉字编码简明对照表 说明 1 下列汉字取自国标 GB 2312 80 中的分级与排列内容 包含所有的第一级汉字和第二级汉字中的常用部分 2 第一级汉字 16 55区的汉字 以拼音字母为序进行排列 同音字以笔形顺序横 竖 撇 捺 折为序 起笔
  • 生成式对抗网络(GAN)-(Generative Adversarial Networks)算法总结(从原始GAN到....目前)

    本文将按时间顺序总结gan的paper 非所有 会挑选个人认为比较重要的 并将参考其它博客 会给出链接 如有侵权 请私信删除 更新于 19 IS 可以反应图像的生成质量 越大越好 FID 则会更假注重生成的多样性 越小越好 IS score
  • mysql评审_第3章 代码检查、走查与评审

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