PSP读书笔记

news/2024/5/18 22:38:18 标签: 读书, 项目管理, 软件测试, 活动, 工作
第一章软件工程师的任务

1.1 软件工程的概念 1 制定工作计划 2 按照此计划进行工作 3 尽最大的努力生产出高质量的产品 1.3 个体软件过程 完成一个psp练习的时候要收集自己的实践数据,保存这些数据很重要,你可以看到psp是如何改善你的工作性能 1.4 高质量的工作规范 1 规范是指为掌握和提高某种技能的活动或训练 1.6 如何提高工作质量 1 需要收集和分析数据 2 仅仅进行测量是不会产生什么提高,仅仅依靠努力也不会产生什么提高,在很大程度上工作方式决定了所能得到的结果,如果还是按照老办法做事,得到的结果还会是老样子 1.7 过程改进的步骤 参见书上的图示和解释,非常重要的部分

第二章 时间管理
2.1 时间管理的逻辑原理 1 人们很可能想上星期那样安排这星期的时间 2 为了制定切实可行的计划,必须对所用的时间进行跟踪 3 为了检查时间估计和计划的准确性,必须把他们写成文档并在今后与实际情况做出比较 4 为了制定出更准确的计划,需要知道之前的计划中存在哪些错误,哪些地方可以进行改进 5 为了管理好时间,首先制定时间分配计划,然后按照计划去做 一 了解计划中存在的错误,有助于更好的计划下一个项目 二 学会制定可行性的计划 三 有了计划会减少你思考下一步需要做什么的时间 2.2 了解时间的使用情况 1 将主要的活动分类 2 记录每项主要活动所花费的时间 3 用标准的方法记录时间 4 将时间数据保持在合适的地方 2.3 工程记事本 2.4 总结 (两大类) 1 做计划 2 按计划执行,总结执行的情况 3 对每天的时间消费实施跟踪
第三章 时间跟踪
3.1 为什么要跟踪时间 3.2 记录时间数据 3.3 跟踪时间 1 以分钟作为单位 3.4 使用标准的时间记录日志 1 书上有标准的模板 3.5 处理中断时间 1记录中断时间可以学会控制中断的次数和中断持续的时间。2了解被打断的频度有助于提高工作的质量和效率 3.6 跟踪已经完成的任务 3.7 在工程记事本中登记时间日志
第四章 阶段计划和产品计划
4.1 阶段计划和产品计划 1 阶段计划就是以时间为阶段 2 产品计划就是以项目为阶段 3 阶段计划和产品计划之间的关系 (书上有图解) 4 阶段计划和产品计划的重要性 产品计划在公司的整个流程当中是非常重要的环节,市场部,财务部,都要根据产品的计划来制定本部门的计划,财务部主要是根据产品计划制定公司的资金的流动,将计划统计发给管理部门 4.2 周活动总结表 周活动的时间表的制定参考书上面,并有详细的解释 例如当读书进行到一周的时候进行统计 1 当制定下一周的计划时,可参考最近的周活动总结表,根据以前各个任务花费的时间,判断出下一周将在这些任务上花费多少时间。根据平均时间来规划 4.3 总结每周的时间分配 4.4 计算阶段时间和工作效率 1 周活动表使用指南(周时间总结表) 2 周活动表使用指南(阶段时间段和效率总结) 4.5 使用周活动总结表 1 有利于总结时间的花费
第五章 产品计划
5.1产品计划的重要性 1 一名有才干的工程师必须知道如何制定计划 2 关键是实践,为了获取更多的实践机会,从现在开始就制定计划,并在以后的项目中坚持做下去 5.2 产品计划的用途 1 工程师制定个人的计划有助于按期完成个人的项目 2 要学会将计划与实际结果相比较,从而跟好的制定计划 5.3 什么是产品计划 1 对待开发产品的清晰定义,不要在定义要做的事之前,讨论产品开发的具体技术,只有在知道要做什么之后,才开始讨论如何去做 2 产品计划包括以下三个方面 A 待开发产品的规模及其重要的特性 B 完成工作所需时间的估计 C 项目进度计划 5.4 产品计划 1 任何一个大的项目都是需要做计划的,只有现在实践才能知道如何做计划,所以从现在开始对每一项主要的任务制定计划,从第十章开始为开发程序制作全面的计划 5.5 制定小任务计划 5.6 术语定义 5.7 作业编号日志实例 5.8 关于使用作业编号日志的几点建议 1 时间估算在第一次可以估计但是在以后最好参考以前的实际时间 5.9 使用产品的时间和效率数据 做到均衡估计
第六章 产品的规模

6.1 产品计划过程

1 产品计划制定的正确性是靠不断的积累实践,然后将即将要做的计划和之前类似的计划相比较,同样可以制定正确的计划

6.2 规模测量

1 一项任务中每个单元的差别比较大,最好的方式是计算最小的平均值,并在在总数上面形成一定的规模,比如读书就记录每页花费的时间,用总的页数除以总的时间,这就是规模测量

6.3 使用规模测量注意的事项

1 有些工作简单有些工作复杂,所以要考虑工作所涉及的类型,而不只是它的规模

2 应该为不同类型的作业按其规模和时间分别记录他们的数据

6.4程序规模

对于编写程序制定时间表时,统计的应该是在一个任务中编写每行代码所用的时间,同样在编写文档的时候统计的应该是每行文字所用的时间这样就会看出随着时间的推移你的速度将会越来越快,在制定新的计划的时候要以最近的5-10个数据作为估计

6.5 其他的规模测量方法

就是要符合实际的情况采用接近与实际的规模测量方法

6.6 程序规模估计

把以前做过的作业,记录花费时间,规模(即多少代码行),一行代码需要的时间,这样就可以先估计要执行的任务在哪个规模范围之内,然后在这个范围之内做出平均的判断就是对计划的估计了

6.7较大规模的估计

1在大规模的程序开发不适合使用6.6的方式,因为规模大是无法做出估算的

2 在规模较大的程序开发中,根据什么规模统计可以很灵活应用,比如文件的数量,需要的网页数量等等

6.8 在作业编号日志中使用规模测量的方法

见书中有详细的介绍,不过也都是以前讲过的内容

第七章 管理好时间
7.1 时间管理的要素 使用前面统计的数据来管理时间,步骤如下 1 决定如何使用时间 2 制定时间安排表 3 对照制定的安排表跟踪使用时间的方式 4 决定应该改变什么以使自己的行动达到所安排的要求 7.2 活动的分类 1 将新出现的常用的活动加入到统计 2 将不经常出现的活动加入到统计 3 实际上就是根据情况做出不同的统计判断 7.3 收集活动的时间数据 要均衡的分类,收集比较全面的时间数据 7.4 时间分配的评价 通过数据统计可以分析时间是否用在了所希望的事件上,时间的分配是否合理 7.5 做出时间安排 1 建立计划和时间的安排将使你知道下一步将要做什么,这样做很快就能提高你的工作效率 2 把你对未来的时间安排与以前所作的周时间统计做比较判断你的安排是否合理,或根据以前的统计做出时间安排 3 制定工作的优先级,遇到时间危机是首先消弱优先级低的工作时间 4 为业余的生活制定时间 7.6 找出更多的时间 对各类活动做出时间的跟踪,以做出时间的调整 7.7 制定基本规则 1 时间管理的安排就是为了管理自己的时间而制定的规则 2 制定时间安排表,参考书上的 7.8 设定时间分配的优先级 1 管理好时间的一个基本步骤是建立优先次序 2 详细的每周时间总结表 65页 3 用处就是跟好的进行时间的调整 7.9 管理好时间安排 7.10 关于管理可变动的时间的几点建议 1 目前最优先考虑的是什么项目,如果推迟最重要的工作,就要停下来考虑你在做什么,学习也是同样的道理 2 是否有一些事情必须在特定的时间去做 3 是否一有时间就想做某项活动 7.11 时间管理的目标 不断调整时间的分类,收集对自己有用的时间数据
第八章 契约的管理
8.1 什么是契约 契约就是一种对待工作的方式,采用命令式的工作方式肯定会使人产生反感,而使用契约的方式是一种双方都要付出承诺的方式,有待进一步的理解 参见8.4 的示例 8.2 认真制定契约 1 在同意契约之前要对所做的工作进行分析 2 用一个计划支持契约 3 把协议文档化 4 当不能达到契约的要求,要及时告知对方并努力把对对方的影响降到最小的程度 8.3 契约的一个示例 结合以前的时间管理和周时间计划来分析你是否可以有时间来完成契约规定的内容 8.4 工业中的示例 估算工作规模,制定完成的计划,同经理协商敲定最后的方案 8.5 处理没有完成的契约 必须要找出把这种影响降到最小的方法,并及时通知对方,共同来商讨对策,前提是你已经非常努力完成任务 8.6 管理契约的重要性 8.7 不对契约进行管理的后果 1 完成工作所要的时间超过了可用的时间 2 无法达到契约的要求 3 错误的优先次序 4 低质量的工作 5 失去信任 6 失去别人对你观点应有的尊重 8.8 管理契约的方法 1 管理契约是列出已有契约的清单 2 在软件工程中管理契约要记住的几个事实
第九章 进度管理

主要介绍如何制定和使用进度表来跟踪作业的进展情况

9.1 进度管理的必要性

1 小的工作项目可以按照先后的顺序来完成,如果同一时间需要完成多项任务那么就不能按照先后的顺序安排时间,因为如果你发现最后需要完成的任务与你计划的不符合,需要更对的时间的时候,你已经没有时间去调整了,所以同时安排进度,这样你可以最早发现组合工作可能出现的问题,及时解决。

2 要使所有的工作无一例外的运转起来,就需要一份个人进度表

9.2 Gannt图

1 进度是按时间顺序计划活动的一个列表

2 图示和说明参见书

3 Gannt图是一种按照计划和进度跟踪项目进展情况的有效途径

9.3 制定项目进度表

个人项目进度表的制定

1 第一步是把作业分心足够详细来确定它由哪几项任务组成

2 细化任务规模,决定每项任务可能的作业量

3 列出每一项任务,并用任务条来说明每一项任务开始和结束的时间

小型项目进度表除了上述三点外,还有附加以下几点内容

1 确保每个人都知道要完成的任务

2 获取每项任务承诺完成的时间

3 确定各任务之间的相互依赖的关系,每个人在开始工作之前他们必须得到什么样的输入,以及他们从谁那里得到这些输入

4 把每一个相互依赖的关系都文档化

5 与所有涉及到的人一起复查计划的进度表和各项任务之间的依赖关系,以确保没有冲突,分歧和误解

6 复查进度表,以确保它包含了完成整个作业所需要的全部的任务

9.4 检查点

1 检查点的概念非常的重要,具体参考书

2 每个检查点完成是可以客观验证的

3 不满足验证性准确的检查点的说明 参考书

4 建立检查点的几点建议 参见书

9.5 跟踪项目计划

1 具体的示例参看书

2 关于跟踪项目的几点建议,具体参看书,主要一点就是,评估项目的进度必须使用原始的进度表

3 项目计划的制定是要根据之前的做过类似的项目,所收集的数据

9.6 跟踪积分

1 在项目计划完成之后,突然有需要改变计划完成的时间,这种情况下不要重新计划任务,可以使用跟踪积分的方式来检查你是否能够通过改变计划执行的方式来完成任务

2 这是针对较大项目采取的方式

3 参见书上具体的示例

第十章 项目管理

制定项目计划总结表

10.1 项目计划的必要性

1 项目计划定义要完成的工作和如何做这项工作

2 项目计划是一个项目的基本部分

3 估计,记录数据,比较,调整

10.2 项目计划总结表 参见书

10.3 项目总结

1 minutes/LOC(编写一行代码所要花费的分钟),如果以前有记录最好使用历史平均数据

2 LOC/hour(每小时编写的代码行数),这个常常被工程师同于分析开发的生产率

10.4 程序规模

1 规模估计在程序的第六章中

2 新开发的和更改的这部分只记录实际编写的代码的总行数,复制和函数复用等都不算

3 最大最小规模是根据第六章的方法得到的

10.5 开发阶段的时间

1 为了估计开发一个新程序的总时间,首先估计程序有多少行代码,然后乘以minutes/LOC

2 参见书

10.6 估计的准确性

1 尽量做到无偏估计,就是高估的次数与低估的次数相同

2 把估计文档化,进行研究并且从中学到一些东西

第十一章 软件开发的过程

1 制定新的项目计划总结表

2 遵循一个系统化的工程将帮助你更有效的计划和管理工作

11.1 为什么使用过程

1 了解各个项目的完成情况

2 psp的两个目标:一个是帮助软件工程师开发程序,另一个是告诉你如何利用过程来改善工作方式

11.2 一些定义 里面有一些概念性的解释

11.3 过程脚本

1 过程脚本的设计参看书

11.4 检查点和阶段

1 阶段完成时刻即为一个可测量的检查点

11.5 更新的项目计划总结表

1 注意用时间记录日志记录数据时,在注释一栏中填入当前阶段的名称。

2 示例参见书

11.6 一个计划的示例 参见书

11.7 累计时间值计算的示例 参见书

第十二章 缺陷

重本章起将讨论交付高质量软件的必要性 编写缺陷记录日志

12.1 什么是软件质量

1 扩展需求,澄清需求,细化需求,知道已明确了需求,才可能开发出高质量的软件

12.2 缺陷和质量

1 软件质量首先面对的就是软件缺陷(也就是程序的缺陷,错误)

2 缺陷之所以重要是人们会犯很多错误。

3 防止引入缺陷就需要我们精通所使用的程序设计语言,深入理解开发支持环境,掌握要开发的应用系统环境

12.3 什么是缺陷

1 缺陷是指程序中的错误,影响程序完整性,影响有效的满足用户的要求

2 把查找和标识缺陷于确定缺陷起因这两个部分区别开来是很重要的

3 缺陷的预防是一个很大的话题,我们讨论的是缺陷的排除

4 研究引入的缺陷,查找原因,避免再次出现

12.4 缺陷与bug

1 缺陷是一个定时而不是一个BUG,应该培养控制和管理缺陷的技能这样才可能写出高质量的程序

2 如果你不朝着设计无缺陷程序的方向努力,你就永远不可能做到这一点

12.5 缺陷的类型

1 通过对缺陷的分类你可以找出哪一类的缺陷最大,然后集中精力预防和排除这一类缺陷,这正是管理缺陷的关 键,解决的这部分,再去查找其他的,这还是符合了先解决重要的后解决次要的方法

2 10中缺陷类型,参见书,不要急于把十种类型细化,收集大量程序的缺陷数据,才能分析出哪里需要更详细以 及补充什么样的信息才是最重要的

12.6 了解缺陷 解决问题首先是需要了解问题,收集数据的步骤如下

1 为程序中的每一个缺陷做记录

2 对于每一个缺陷要记录足够详细的信息,以便以后能更好的了解这些缺陷

3 分析这些数据以找出哪些缺陷类型引起大部分问题

4 设计出发现和修复这些缺陷的方法 如果别人发现了你的缺陷,这需要引起你的重视,因为这些缺陷已经逃过你所有的预防措施

12.7 缺陷记录日志 缺陷的类型应该加上一个需求不明确 示例参见书

12.8 统计缺陷的个数

1 缺陷是记录当你初始设计或编码后任留在产品中的缺陷

2 在编译阶段你马上发现拼写错误,这不是一个缺陷,但当你完成编译,同样的拼写错误就是缺陷

3 不要求统计在设计和编写代码阶段发现的缺陷,要统计编译和测试阶段发现的缺陷

12.9 使用缺陷记录日志 原因

12.10 更新的PSP过程

第十三章 缺陷查找技术

说明代码复查是怎么样提高工作效率和产品质量的

13.1 个人对产品质量的承诺 PSP将展示怎样使用有效的质量方法来生产合格产品

13.2 发现缺陷的步骤

1 缺陷发现的越早越好

2 发现程序缺陷的方法

1) 标识缺陷征兆

2) 从征兆中推出缺陷的位置

3) 确定程序中的错误

4) 决定如何修复缺陷

5) 修复缺陷

6) 验证这个修复是否已经解决了这个问题

13.3 发现和修复缺陷的方法

1 编译器检查错误

2 测试 缺点

3 发行含有缺陷的产品,等待用户的反馈,这个花费最大的

4 复查源程序清单,这是最快最好的方式

13.4 代码复查

1 代码复查是一种快速找到缺陷的方法,代码复查就是研究源程序

2 代码复查可以看到问题的本省而不是征兆

13.5 为什么要尽早发现缺陷

1 我很忙以后再修复吧,这样的态度是不可能生产出优质的产品的

2 在编译和测试前复查程序

3 节省时间

13.6 发现和修复缺陷的费用

1 单元测试,集成测试,产品测试,系统测试

2 越往后的阶段发现和修复缺陷的费用越大,消耗的时间越长,完成一个小的功能就要及时的进行测试

3 如果想生产出高质量的产品,必须在开始的时候就生产出一个良好的程序,否则在测试阶段要花费大量的时间

13.7 利用代码复产发现缺陷

1 了解自己引入的缺陷的种类,代码复查的目标都是尽可能早和尽可能多的发现缺陷

2 在代码复查前的注意事项

1) 在第一次编译前进行代码复查

2) 在打印出的清单中进行代码复查

3) 在缺陷日志上记录发现的每一个缺陷

4) 在代码复查是根据以前在编译和测试阶段发现的缺陷的类型进行检查 3 代码复查脚本参见书

13.8 编译前的复查

1 原因参见书

13.9 编译和测试缺陷的数据

1 还是讲要在编译和测试前进行代码复查

13.10 更新后的PSP项目计划总结表

1 现在的psp过程包括了代码复查

2 示例参见书

13.11 其他种类的代码复查

1 同行检查就是让其他的软件工程师来检查你的程序

第十四章 代码复查检查表
代码复查的关键是要具有一个高效率的复查规则,制定一个代码复查检查表 14.1 检查表的用途 1 如果想发现缺陷,就必须遵循一个精确的过程 14.2 代码复查检查表的示例 1 参见书上面的示例 2 养成编码标准的好习惯 14.3 使用代码复查检查表 1 如何使用检查表,参见书上的内容 2 PSP过程脚本有所改动,在代码复查的时候,检查表应该填好 14.4 建立个人检查表 1 检查缺陷数据,查找引起大部分问题的缺陷类型,就是了解自己在什么方面容易产生缺陷 2 设计个人检查表的提示,参见书 3 缺陷数据排序表,按照缺陷的数目从大到小排序 14.5 改进检查表 1 应该养成定期复查缺陷数据和重新审核检查表的习惯,有效保留,无效更新,达到个人经验的总结 2 改进个人检查表的建议 3 要坚持分析和收集缺陷数据,并坚持思考如何才能预防缺陷的产生或怎样更好的找到缺陷,只有坚持下去才能 不断的提高自己的编程的质量 14.6 代码的标准 1 制定个人的代码标准,参见书
第十五章 缺陷预测
主要讨论如何分析和使用缺陷数据来提高计划的准确性和产品的质量 15.1 缺陷率 1 在有了一些基本经验之后,缺陷数目的多少由每个人的编程规范所决定 2 了解自己引入的缺陷的类型和数目 15.2 缺陷数据的使用 1 准确的估计程序中的缺陷数据的个数是非常重要的因为它决定是否需要进行再次的复查 15.3 缺陷密度 1 缺陷密度:每千行代码的缺陷数 15.4 缺陷率的预测 1 缺陷数据不稳定的原因 15.5 缺陷估计 15.6 更新的项目计划总结表和示例 表的示例参见书,表中数据的解释参见书169页 15.7 登入实际的数据 1 时间记录日志 2 缺陷记录日志
第十六章 缺陷排除的经济效益
1 其实通过编写代码后进行的patch补丁就可以分析出你新写的代码行数 2 缺陷排除需要考虑产品的质量,软件的费用,时间进度三个方面的内容 16.1 高质量工作的必要性 1 保证工作质量的原则是在第一次就要开发出合格的产品 2 这样就可以减少排除缺陷的时间 16.2 缺陷排除问题 1 为了了解和控制缺陷带来的费用,很有必要测量缺陷排除的效果,一种方法是计算每小时排除缺陷的个数,另 一种是计算缺陷排除效益,即测量通过某一排除方法所发现的缺陷的百分比 2 当知道每种缺陷排除方法的排除效益和排除率之后,就知道如何更好的发现和排除缺陷 16.3 缺陷排除时间 1 在开发阶段就需要排除 16.4 缺陷引入和排除经验 1 代码复查阶段是一种技能,工程师一般是每小时排除8-10个缺陷,关键是要使用第十三章和第十四章所描述的 方法,而在测试阶段工程师和普通的程序员差别是比较小的 2 必须计算和跟踪缺陷的引入率和排除率 16.5 节省缺陷排除时间 1 了解缺陷排除率对大型项目是很重要的 2 在实践中的好处,参见书 16.6 在PSP项目计划总结表中每小时缺陷数的计算 见书上示例 16.7 缺陷排除效益的计算 1 过程效益的计算,过程效益只关心编译前的缺陷排除率,在编译和测试阶段引入的任何缺陷都不在代码复查阶 段的程序中,因此不包括在缺陷排除效益中 16.8 提高缺陷排除率 持续改善个人缺陷排除率的建议 1 首先把精力集中到缺陷排除效益上 2 在第一次编译之前做代码复查 3 一旦能够稳定的达到很高的缺陷排除效益,用第十三章和第十四章描述的方法来提高代码复查速度,就是更新 检查表 4 记住愚蠢一词的含义就是重复做同一件事并期望有不同的结果,如果不对检查表做出调整,你将会一直漏掉同 类型的缺陷 5 继续收集缺陷数据和计算排除效益,缺陷排除率和缺陷引入率,然后跟踪这些数据,并试验各种方法,看看是 什么因素帮助你提高 16.9 减少缺陷引入率 因为在过程的每个阶段都可能引入缺陷,所以缺陷引入率很难降低,因此需要考虑软件开发中的每项任务,如下 1 记录所有的缺陷数据 2 产生更好的软件设计,完整和文档化的设计 3 使用更好的方法,不断的总结分析,提高 4 使用更好的工具
第十七章 设计缺陷
本章主要讨论减少引入设计缺陷的数目 17.1 设计缺陷的本质 一个潜在的有效的减少设计缺陷的方法是:不要等到编码阶段才去完成设计工作 17.2 识别设计缺陷 将那些与程序功能,逻辑,性能,时序有关的缺陷定义为设计缺陷 17.3 什么是设计 完成一项工作一般应该是先冲高层感念开始,然后在深入钻研细节 17.4 设计过程 1 要理解抽象是如何工作的,然后才能在高层设计中放心的使用 2 如果有经验的工程师用过这些功能,就可以不限考虑这些细节,如果没有用过就会先停下来先进行详细的设计 ,甚至会先编写一个原型进行测试 17.5 设计缺陷的起因 1 设计错误 2 知道应该做一个什么样的设计,但犯了一个简单的错误 3 引起设计缺陷的原因是误解了你要做的内容 4 不熟悉用户的使用语境 17.6 设计缺陷的影响 1 到目前为止大部分缺陷都是由单纯的疏忽大意,愚蠢和理解错误引起的 2 引起这些缺陷的原因是工程师没有把需求设计详细,实现人员没有及时和工程师沟通,拿到东西就飞快的设计 3 错误的起因不是由于拙劣的实现,而是因为拙劣的设计表达 17.7 设计表达 1 清晰的设计表达是非常重要的,这是另外的一门学科 2 设计的三种表达方法 使用伪码,设计具有很好的灵活性,可以根据不同的阶段是否引入设计缺陷而考虑是否进行详细的设计
第十八章 产品的质量
18.1 质量第一 1 测试的代价是很大的,缺陷发现的越早,生产出的产品的质量越高 18.2 测试 1 遵循规范化的方法,仔细复查和测试每个小程序模块,这是最有效的方法 18.3 过滤器概念 1 缺陷排除就像是过滤器,每一次复查,编译和测试都排除产品中的一部分缺陷,缺陷越多,最后产品遗留的缺 陷就会越多 2 过滤器(缺陷排除方法)的质量,如果能设计出缺陷排除效益接近100%的过滤器,则缺陷排除的问题也就解决了 3 自己复查和工程师之间的互查是最有效的缺陷排除方法 18.4 仔细工作的好处 1 要把解决缺陷的工作放到编译和测试之前,一旦成了次品,就永远是次品 18.5 缺陷排除效益的计算 1 公式=100*(本阶段排除的缺陷数)/(进入本阶段是产品的缺陷数) 2 数据参见书 18.6 最终的缺陷排除效益估计 1 如果在缺陷排除的各个阶段发现的缺陷数目迅速下降,则所求得的缺陷排除效益值可能相当准确 2 拇指原则 3 根据历史数据可能会做出更好的判断 18.7 100%过程效益的好处 1 除非能够始终保持生产出高质量的小程序,否则你将永远无法生产出高质量的大程序,做到这一点需要个人的 训练和大量的实践 18.8 缺陷排除效益的经验 1 每个人有不同的技能,有的人很自然的生产出高质量的代码,有的人很容易构想出复杂的设计,有的人是天生 的测试员,而有的人是善于设计易用的用户界面 18.9 原型方法 1 漏掉的缺陷大部分是与设计有关系的 2 在使用不熟悉的函数或过程的时候,建立一个原型进行测试是很重要的 3 再把设想建成产品之前,建立一个原型来对它们进行测试
第十九章 过程质量
本章主要描述过程质量和用于评价软件工作质量的一些测量方法 19.1 过程测量 1 程序的质量取决于过程的质量,而过程的质量有取决于人们的工作方式 2 质量是一个很大的主题,本书只是从缺陷的引入和排除两个方面来讨论质量的问题,还有其他的方面 19.2 缺陷排除中的矛盾 1 如果发现的缺陷越多,就要更加注意去全部发现和修复这些缺陷 19.3 缺陷排除策略 1 缺陷分成两类:仅涉及一个模块的缺陷,涉及几个模块之间的交互作用的缺陷 2 解决第二类的策略:参见书,208 19.4 质量的成本 1 质量成本包括三个要素:过失成本,质检成本和预防成本 2 任何与修复缺陷有关的工作都是过失成本 3 质检成本是测试无缺陷的时间 4 预防成本是修改过程以避免引入缺陷所带来的费用,设计原型来检查不熟悉的函数是属于预防成本 19.5 质量成本的计算 1 把所有的编译时间和测试时间都统计为过失成本,所有复查时间累计为质检成本 19.6 质检/过失比 1 一种有用的测量的方法就是质检成本除以过失成本,简称A/FR,也就是复查时间除以编译和测试的时间 2 尽量的是A/FR的值大于2,这样生产的软件的质量是非常高的 3 同样是说明缺陷在早期排除的优势 4 只是增加复查的时间是无效的,必须保证在增加的复查时间里面可以找到更多的缺陷进行排除,结合以前的数 据设计出可以查找缺陷的方法 19.7 改进复查的效率 1 标识出每个既不能发现又没有漏掉缺陷的代码复查步骤,然后重新考察原先包含这些步骤的理由,如果这些不 再是问题则跳过这些步骤 2 如果认为这些检查仍然重要,把他们中相关的几个步骤组合起来,以便能做的更快 3 当步骤不再有效是要毫不犹豫的将其删掉 19.8 质量成本的精确计算 1 将时间分成错误修复和检验两个部分 缺陷日志示例见书上 2 一般的情况下是不需要这样来计算的,应该把A/FR的值设置的高一些
第二十章 个人对质量的承诺
树立质量观念作为个人的最高优先级 20.1 质量的重要性 20.2 低质软件的危险正在增长 1 简单和容易的关系,简单的错误不容易找到 2 大程序的质量依赖于小程序的质量 20.3 制定个人质量承诺 20.4 个人的目标 20.5 成就的回报 1 不管做什么质量都是关键,没有人会对很差的工作感到满足。 2 建立个人的标准,不断的挑战自己完成更高质量的工作

http://www.niftyadmin.cn/n/589000.html

相关文章

习惯的力量

心理学巨匠威廉詹姆士说:“播下一个行动,收获一种习惯;播下一种习惯,收获一种性格;播下一种性格,收获一种命运。”九大成功必备习惯1 积极思维的好习惯 怎样才算养成了积极思维的习惯呢?当你在实…

李彦宏:教你创业七大招数

李彦宏毕业于北京大学信息管理系。之后赴美并于布法罗纽约州立大学获计算机科学硕士学位。 在美国8年间,由他发明的“超链分析”技术获得美国专利。 他1999年回到北京,创建百度,用三年时间将百度做成全球最大的中文搜索引擎公司。 2001年李…

bootargs参数意义

原文地址:[转]bootargs参数意义作者:YingRu_buptU-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环…

【转载】crawler4j简单总结

https://www.cnblogs.com/MurryK/p/6044319.html 很好的一篇文章:https://cloud.tencent.com/developer/article/1173304

使用筷子礼仪

使用筷子体现一个人的礼仪修养,如果不注意,会被别人认为没教养。以下几点应注意,供参考: 1.不能把玩筷子; 2.左撇子的朋友,最好改为用右手拿筷子,以避免夹菜时,和了“邻居”“打架”&#x…

在CMake中启用VS2017的C++17特性

https://www.cnblogs.com/airscrat/p/10152348.html

所有管理者最关心的问题-如何激发员工高绩效地工作?

我在公司从事软件项目管理也有两年时间,带过大大小小三个项目,这个问题从一开始到现在,为了解决这个问题,我做过很多实践,包括:对于做的出色的员工给予及时的表扬和鼓励;分配具有挑战性的工作任…