缺陷查找技术.pptVIP

  • 1
  • 0
  • 约2.23千字
  • 约 22页
  • 2019-05-06 发布于江西
  • 举报
第13章 缺陷查找技术 主要内容 个人对产品质量的承诺 发现缺陷的步骤 发现和修复缺陷的方法 代码复查 为什么要尽早发现缺陷 如何提高工作质量 发现和修复缺陷的费用 主要内容(续) 13.1 个人对产品质量的承诺 决定程序质量的最重要的因素是软件工程师个人对产品质量的承诺。当一个工程师承诺对质量负责时,他会更仔细地工作并以自己生产的产品的质量高为荣。 13.2 发现缺陷的步骤 发现程序中缺陷的方法包括以下几个步骤: 标示缺陷征兆。 征兆推断出缺陷的位置。 缺点程序中的错误。 决定如何修复缺陷。 修复缺陷。 验证这个修复是否已经解决了这个问题。 13.3 发现和修复缺陷的方法 工程师最常用的发现和修复缺陷的工具是编译器。 编译器最基本的任务是生成目标代码,编译器要扫描源代码看看能否生成目标码。若能,它不管源代码是否正确而生成目标码。 编译器经常为那些看起来很简单的缺陷提供很多错误信息。另外,编译器只提供了缺陷的征兆,你必须自己对问题定位,并确定是什么问题。 13.3 发现和修复缺陷的方法(续) 发现错误的的第二种方法是测试。 测试可以用来验证程序几乎所有的功能。但它还有一些缺点,测试只能满足缺陷排除过程的第一个步骤。也就是说,你仍必须从缺陷征兆找出问题的根源,然后才能开始修复,另一个问题是每个测试只验证的了一组程序条件。事实上,除了最简单的程序,任何程序的完全测试都是不可能的。 最后,最有效的发现和修复缺陷的方法是个人复查源程序清单,虽然这种方法似乎很难彻底清除程序中的缺陷,但事实证明,这是最快而且是最有效的方法。 13.4 代码复查 代码复查是一种能快速找到缺陷的方法。 尽管代码复查非常费时间,但它比测试更有效率。 代码复查更有效的原因是:在代码复查时看到的是问题本身而不是征兆。 复查两个主要的缺点是:代码复查非常耗时,而且很难恰当地进行。 13.5 为什么要及早发现缺陷 在典型的软件项目中,产品被分为许多小的程序元素或模块。在模块设计、实现、编译后,工程师做初始的测试或单元测试。在个人城测试之后,多个模块组成一些大组件并进行集成测试。在经过各种级别的组件测试之后,这些组件集成为产品进行产品测试。最后,将产品集成到系统中并进行系统测试。 开发过程每前进一步,发现和修复缺陷的平均代价就要增长10倍。 13.6 发现和修复缺陷的费用 随着系统的规模和复杂程度不同,集成测试、组件测试、产品测试、系统测试的类型、持续时间、复杂度也不同。 一般来说,越是大型、复杂系统、发现和修复缺陷需要的时间就越多。 13.7 利用代码复查发现缺陷 13.7 利用代码复查发现缺陷(续) 13.8 编译前的复查 在编译之前进行代码复查的原因是: 不论在编译前还是在编译后,进行完整的代码复查的时间大约相同。 先做复查将节省大量编译时间。 一旦先编译了自己的程序后,代码复查一般都很难彻底的进行。 无论在代码复查之前或之后进行编译,对检查语法有效性的效果是一样的。 经验证明,当编译阶段程序中有大量的缺陷时,一般在测试阶段也有许多缺陷。 13.9 编译与测试缺陷的数据 当工程师觉得对自己开发的程序有质量责任时,他就不会依赖于编译器或其它工具来发现缺陷。 当你承诺要生产合格的产品时,你的承诺将体现在编译阶段发现的缺陷数、测试阶段发现的缺陷数和最终所完成的程序的质量上。 13.10 更新后的PSP项目计划总结表 详细示例见教材Page137 表13.2-13.6 13.11 其它种类的代码复查 在软件组织中,一种常用的方法是让几个工程师彼此复查程序。这叫做同行评审或同行检查。组织良好的同行检查一般会发现程序中50%-70%的缺陷。 13.12 总结 13.12 总结(续) 最有效的方法是,找出以前的程序中在编译和测试阶段引起最大问题的那些缺陷类型。因为人们往往容易犯同样的错误,所以缺陷数据有肋于在第一次编译和测试前找到全部或绝大部分程序的缺陷。 13.12 总结(续) 经验表明,当工程师在第一次编译前仔细地复查了他们的代码时,就能减少编译时间,大约相当于10%的开发时间,并且可以节省更多的测试时间。 作业 Page142 练习13 * * PSP 目的要求: 通过本次课的学习,使学生 了解查找缺陷的技术。 利用代码复查发现缺陷 编译前的复查 编译与测试缺陷的数据 更新后的PSP项目计划总结表 其它种类的代码复查 总结 13.3 发现和修复缺陷的方法(续) 缺陷修复时间 13.6 发现和修复缺陷的费用(

文档评论(0)

1亿VIP精品文档

相关文档