[个体软件过程]之缺陷管理--代码复查

软件过程改进 PSP部分学习笔记 开始决定写博客之后,把这里当成新的知识库好了,过段时间把之前存下来的笔记搬上来。反正下雨天打孩子,闲着也是闲着。软件过程改进(Software Process Improvement,SPI)帮助软件企业对其软件过程改进进行计划、措施制定以及实施。实施对象就是软件企业的软件过程,也就是软件产品的生产过程。个体软件过程(Personal Software Process,PSP)一种可用于控制、管理... 阅读详情

第四章 缺陷管理

u      什么是缺陷

u      缺陷查找技术

u      代码复查

u      缺陷预测

4.3 代码复查

代码复查就是研究源代码,并从中发现错误。代码复查更有效的原因是:在复查时看到的是问题本身而不是征兆。从头到尾复查代码时,考虑的是程序应该做什么。因此,当看到某些地方不正确时,就可以看到可能的问题是什么,并立即去验证代码。复查的缺点是:非常耗时,而且很难恰当的进行;复查时一种技能,当然可以通过学习和实践来提高。

代码复查的第一步是了解自己引入的缺陷的种类,这是收集缺陷数据的主要原因。因为在下一个程序中引入的缺陷种类一般会与前面的基本类似,只要采用同样的软件开发方法,情况会一直如此。另一方面来说,当你有了技能和经验或改变了过程,缺陷的类型和数目会随之变化。但是到了一定程度后,改进就变得非常困难了。这是,就必须研究缺陷,这可以帮助你找到更好的发现和修复缺陷的方法。

如何进行代码复查。代码复查的目标是在软件过程中尽可能早和尽可能多的发现缺陷,缺陷发现时间越少越好。采用表4.3描述的一个有序的检查方法,在编译之前进行代码复查,是完成目标最好的方法。

  表4.3                                     代码复查脚本

入口条件

在复查前,检查下列产品是否已经准备好:

u        需求规格说明;

u        程序设计文档;

u        程序的源代码清单;

u        编码标准;

u        代码复查检查表;

一般性说明

使用代码复查检查表;

在复查时遵照代码复查检查表的使用说明;

在复查结束时,填写累计、累计百分比和总结栏目;

1     复查规程

首先,完成源程序编码;

然后,在进行编译和测试之前,打印一份源程序清单;

下一步,进行代码复查;

进行代码复查时,仔细检查每一行源程序,以尽可能多地发现和修复缺陷;

2     修复缺陷

修复所发现的每一个缺陷;

确保所作的修复正确无误;

将缺陷登入在缺陷记录日志。

3     覆盖率复查

验证程序设计覆盖了需求规格说明中描述的每一个功能;

验证程序代码实现了所有的设计。

4     程序逻辑复查

验证程序设计在逻辑上是正确的;

验证程序代码正确的实现了设计中的逻辑。

5     命名和类型检查

验证所有的名字和类型已经正确的声明;

检查整型、长整型和浮点型是否正确声明。

6     变量检查

确保每个变量已初始化;

检查上溢、下溢或越界问题。

7     程序语法检查

验证程序代码符合编程语言的规格说明

 出口条件

在复查结束时,应该有:

完整的、修复过的源程序清单;

填写完整的时间记录日志;

填写完成的缺陷记录日志。

 

编译之前进行复查。有几个原因说明应在编译之前进行代码复查:不论编译前或编译后,进行完整的代码复查的时间大约相同;不论编译前或编译后,对检查语法有效性的效果是一样的;先做复查将节省大量编译时间,若不做代码复查,一般要花12%~15%的开发时间进行编译,一旦使用代码复查后,编译时间可以缩短至3%或更少;编译程序后,代码一般复查很难彻底的进行; 经验证明,在编译阶段有大量的缺陷时,一般在测试阶段也有许多缺陷。

建立个人代码复查检查表。如果想发现和改正程序中的每一个缺陷,就必须遵照一个精确的规程。检查表可以确保遵循这个规程,它包括一系列程式的步骤。按照检查表去作时,就知道如何进行代码复查。

如果能够正确使用检查表,还能知道每个步骤发现了多少缺陷。这样就能测量出复查过程的效率,并进一步改进检查表。检查表包括了个人的经验。通过不断的使用和改进个人检查表,就可以帮助你用较少的时间发现这些缺陷。表4.4是一个C++程序代码复查表的范例。

PSP学习(一)缺陷管理 即使有经验的程序员,一般开发7~10行源程序就会引入一个缺陷,一般在编译和测试阶段能发现和纠正大部分缺陷,但仍有许多缺陷留在最终产品中。 缺陷是指程序中存在的错误 为防止缺陷的引入,需要精通所用的程序设计语言,深入理解开发支持环境,掌握要开发的应用系统的类型等。 一般的软件组织要用一半以上的时间和精力来查找和修复缺陷,由于测试时间难以预计,产品缺陷常常是产生超支和延期的 阅读详情

相关推荐

代码评审检查表

代码评审检查表

代码复审核查表

我们组人员:28张洋,20王凯新,30何玉倩 任务分工 :张洋负责代码,王凯新负责窗体,何玉倩负责审查。 1.概要部分 (1)代码能符合需求和规格说明么? 说明代码基本上没有出现多少错误,但是不代表代码就是完全正确无误的,其中还有其他条件的限制,包括执行后是否能够达到目的。 (2)代码设计是否有周全的考虑? 代码的设计是比较周全的,但不是绝对的,我们的...

weixin_30785593的博客 262

Kaggle时间序列竞赛金牌方案解析与实战指南

本文深度解析了Kaggle时间序列竞赛的金牌方案,揭示了其成功不仅依赖先进模型,更在于系统工程思维。文章系统阐述了从数据理解、特征工程到模型集成与后处理的全流程,并重点剖析了分层建模、自定义损失函数、时序交叉验证等核心技巧,为参赛者提供了从理论到实战的完整指南。

weixin_29196315的博客 355

[个体软件过程]之缺陷管理--C++代码复查指南和检查表

第四章 缺陷管理u      什么是缺陷u      缺陷查找技术u      代码复查u      缺陷预测 4.3代码复查  表4.4                                   C++代码复查指南和检查表目的指导你进行有效的代码复查####累计累计%

treewith的专栏 1680

利用Sigrity的SPEED2000进行时域电源噪声分析

SPEED2000进行时域电源噪声分析

ZHENGSA的博客 3620

关于HC32F460 输出可调占空比PWM波遇到的问题记录

文章目录问题记录一、问题分析二、解决方法总结 问题记录 芯片:HC32F460系列 功能:PWM电机调速 最近产品开发,需要用到HC32的PWM输出来控制电机的转速。参考官方的例程很快就完成了相关的功能,但是,后面在测试,重复开关电机的时候,发现电机的转速时大时小。 一、问题分析 一开始,怀疑是相关寄存器的设置出错导致的问题。因此在设置PWM输出时加上LOG打印,上机测试并没有发现问题。 用示波器抓取波形,这是正常状态下的波形(上电默认配置成5kHz,70%占空比输出) 这是转速较小时的波形输出 .

Top0_0lll的博客 6165

代码复查的内容与方法

一、代码复查的作用: 1.查找bug。 逻辑上的bug,从代码层面最容易发现。一些对需求的不理解,手误等也很容易发现。 2.查设计一致性。 软件的功能组织、数据表示、公用代码等每一个软件都会形成自己的实现模式。新加入项目的程序员由于不熟悉原有软件的设计约定,很可能会按自己的方式编写功能,从而导致软件设计不一致。 这对于无MVC框架的OO程序这是致命的,最终会导致软件的...

探索与发现 1227

记录:N10激光雷达串口编程,将数据存进 SQLite,并进行 ROS2 - cartographer 单雷达建图

N10 系列采用 TOF(time of flight)测距原理,通过测量调制激光的发射、返回时间差来测量物体与传感器的相对距离。激光发射器发出调制脉冲激光,内部定时器开始 从t1时刻计算时间,当激光照射到目标物体后,部分能量返回,当雷达接收到返回的激光信号时,在t2时刻停止内部定时器计时,光速C,激光雷达到达物体的距离D为:经过N10系列激光雷达内嵌的信号处理单元的实时解算得到探测物体的距离值,结合高精度自适应角度测量模块输出的角度信息,可以得到量程内周围 360 度环境 的二维平面信息。

m0_74013893的博客 1096

C++技术复查表

原文地址 - http://blog.youkuaiyun.com/gltop/article/details/7040124 版本 - 0.8 最近更新 - 2011-12-27 是否使用了一致的代码风格? 那些non-const成员函数是否应该是const的?是否有不必要const的返回值或参数用了const了? 有没有哪些函数不应该是virtual的

gltop的专栏 834

统计信号处理基础 习题解答1-1

1-1:在雷达习题中,双程延时时间的估计量具有PDF τ0~Nτ0,στ02,其中τ0是真值。假如要估计距离请提出一种估计量R,并求它的PDF。然后,确定标准偏差στ0,使得距离估计值的99%在真值的100m以内,对电磁波传播速度取c=3×108m/s。 解答: 问题1: 由于电磁波传播速度c,信号可观察的双程传播延时τ0和双程传播距离τ0满足关系: R=cτ02 因此可采用如下估计量: R=cτ02 问题2: 由于τ0满足正态分布,且: Eτ0=τ0 varτ0=στ02 那么: E

weixin_43270276的博客 2806

深入排查127.0.0.1拒绝连接:从端口占用到Tomcat服务启动的完整解决方案

本文针对开发者访问127.0.0.1时遭遇“拒绝连接”的常见问题,提供了一套完整的排查与解决方案。文章从端口占用检查入手,详细讲解了使用netstat命令识别进程,并深入分析了服务监听地址、IPv6配置、防火墙以及Tomcat服务安装与启动等核心环节。通过实战演练,指导读者系统性地解决从网络层到应用层的各类连接问题,最终确保本地服务成功运行并可通过本地回环地址正常访问。

weixin_29279047的博客 3186

[个体软件过程]之缺陷管理--C++代码复查指南和检查表 (转)

[个体软件过程]之缺陷管理--C++代码复查指南和检查表 (转)[@more@]第四章 缺陷管理 u 什么是缺陷XML:namespace prefix = o ns = "urn:schemas-microsoft-com...

ciya3282的博客 372

不会路由器叠加多条宽带?看这个就够了,能让你的局域网速度更快!

通常我们在企业网络或实际项目中,随着用户的增加,一条或者几条带宽不能满足正常使用,便可以对带宽进行叠加,便于网络带度更快;通常家里有可能有两条带宽的,联通或移动的,可能都是充话费送的,但网速都不怎么样,不用可惜,用之委屈,那怎么办呢?如在迅雷上开启下载,多个资源同时下载,此时总带宽可以达到120M,也就是WAN口带宽可以叠加。多wan口路由器, 一般是有2个wan口,分别为wan1与wan2。当然也有更多的wan口的。[1] 对整个局域网来说,出口带宽数量多了,相当于总带宽上升,这样是可以起到叠加效果。

qq_43416206的博客 1112

个体软件过程(Personal Software Process,PSP)【转贴】

      最近公司要培训一些关于个人软件开发过程中的一些知识,所以我特地提前找了一些相关的资料,整理一下,以后会继续更新!        个体软件过程(Personal Software Process,PSP)是一个过程描述、测度和方法的结构化集合,能够帮助软件工程师改善其个人性能。它提供了表格、脚本和标准,以帮助软件工程师估算和计划其工作。它显示了如何定义过程及如何测量其质量和生产率。   ...

一杯啤酒喜相逢,但愿共醉,互诉往事 3244

基于STM32、HAL库的RN8209D电能计量芯片驱动程序设计

/ 假设电压互感器变比为220V:0.5V,电流互感器变比为20A:5mA。// 电压ADC原始值。// 电流ADC原始值。// 有功功率(W)// 电能(kWh)

corlin6688的博客 470

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

PSP个人软件过程

个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体 的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品...

yangzibin的博客 3961

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

个体软件工程

个体软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立...

happmaoo的专栏 250

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

《个体软件过程》目录—导读

版权声明个体软件过程Introduction to the Personal Software Process, First Edition by Wattss. HumphreyCopyright © 1997 by Addison Wesley Longman, Inc. All rights reserved. Published by a...

weixin_33946020的博客 389

PSP

个体软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤...

weixin_30377461的博客 458

个体软件过程之缺陷管理

(本文基于网络资料,由“赵亮-碧海情天”重新进行组织和个别修正,使之更符合逻辑理解的顺序和更加严谨。)文章内容讲述:缺陷的概念与影响,缺陷管理方法,发现缺陷的多种方法及其比较,附带提供一些建议。

赵亮的博客专栏(theforever,碧海情天) 1047

软件测试之个体软件过程的缺陷管理

  缺陷的概念与影响   缺陷是指程序中存在的错误或不理想的设计。   即使有经验的程序员,一般开发10行左右源程序就会引入一个缺陷。通常在编译和测试阶段能发现和纠正大部分缺陷,但仍有许多缺陷留在最终产品中。   为防止缺陷的引入,需要精通所用的程序设计语言,深入理解开发支持环境,掌握要开发的应用系统的类型,并具有丰富的设计经验等。   一般的软件组织要用一半以上的时间和精力来查找和修复缺陷。由于测试时间难以预计,产品缺陷常常是产生超支和延期的主要原因。   当软件工程师对你说程序中仅剩几个BUG

duoceshi的博客 203

[Personal Software Process]个体软件过程

随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们“应该做什么”,而没有告诉我们“应该怎样做”,并未提供有关实现关键过程域所需要的具体知识和技能。为了弥补这个欠缺,H

treewith的专栏 2164

[个体软件过程]之缺陷管理--缺陷&缺陷查找技术

第四章 缺陷管理u      什么是缺陷u      缺陷查找技术u      代码复查u      缺陷预测4.1什么是缺陷缺陷是指程序中存在的错误,例如语法错误、标点符号错误或者是一个不正确的程序语句,是任何影响程序完整而有效的满足用户要求的东西,是可以表示、描述和统计的客观事物。       有人把缺陷称为Bug,这是不正确的。当成为Bug时,令人想到的是那些令人

treewith的专栏 2305

[个体软件过程]之缺陷管理--编码标准

4.3代码复查编码标准。编码标准是被广泛接受的、能够作为工作样板的编码实践集。良好的编码标准将有效地帮助您避免开发有潜在危险的代码,有助于预防缺陷。例如,可以在编码标准中列出那些应该避免使用的方法,规定号循环入口或在说明是初始化变量,避免不良的变量命名等。编码标准还能有效地统一和规范整体开发活动。当其他开发人员加入到项目中来时,他们能够很好地适应这一切。代码也将变得更规范更易维护。表4

treewith的专栏 1339

[个体软件过程]之缺陷管理--缺陷预测

4.4缺陷预测引入缺陷是人类的正常现象,所有的工程师都会引入缺陷。因此所有的工程师都应该了解自己引入缺陷的类型和数据。在开发过程中,总是可再进行一轮测试或代码复查,决定是否这样做的唯一方法就是分析缺陷数据。通过分析历史数据,可以估计出程序中缺陷的个数。通过把当前项目的数据和估计数据相比较,就能大概知道正在开发的程序的质量情况。这样就能决定是否需要增加一些缺陷排除步骤。缺陷率的预测。当开

treewith的专栏 1423
上一篇: [个体软件过程]之缺陷管理--缺陷&缺陷查找技术
下一篇: [个体软件过程]之缺陷管理--C++代码复查指南和检查表
treewith
博客等级 码龄24年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值