随着软件的增加,需求越来越复杂,维护成本越来越高,如何提高软件的质量、进行有效的缺陷管理就变得越来越重要。本书针对这个问题,提出面向对象的软件缺陷管理的概念。本书主要介绍面向对象技术在缺陷管理方面的特殊性、缺陷预防和缺陷标识以及如何在软件生命周期的各个阶段进行缺陷管理。书中还给出大量的模板和检查列表,方便读者使用。本书概念清晰,讲述透彻,适合软件工程师、从事面向对象技术与缺陷管理领域工作的技术人员、研究人员阅读,也可作为高校软件工程专业本科生、研究生的教材,或面向对象缺陷管理领域的培训教材。
前言
第1章 预备知识
1.1 软件、软件工程和软件工程过程
1.2 面向对象
1.3 缺陷管理
1.4 描述质量
1.5 质量观点
1.6 内部质量与外部质量: 形式与功能
1.7 软件产品质量属性
1.8 评估产品质量
1.9 实现质量目标
1.10 结论
第2章 面向对象环境下的缺陷和缺陷管理
2.1 为何面向对象给缺陷管理带来挑战
2.2 管理缺陷
2.3 结论
第3章 开发低缺陷需求
3.1 需求过程组成部分
3.2 结论
第4章 确定并排除需求缺陷
4.1 检验与标准的符合程度
4.2 模型验证
4.3 非形式化模型评估
4.4 形式化模型验证
4.5 结论
第5章 预防设计缺陷
5.1 软件设计
5.2 良好设计的基本要素
5.3 结论
第6章 设计缺陷标识
6.1 设计缺陷
6.2 在设计中标识缺陷
6.3 审查设计制品
6.4 标识设计文档中的缺陷
6.5 结论
第7章 程序缺陷标识
7.1 缺陷标识方法
7.2 审查和测试的比较
7.3 结论
第8章 测试类
8.1 测试基类
8.2 类的基于断言的测试
8.3 类的模态测试
8.4 方法的转换测试
8.5 结论
第9章 集成、集成测试、系统测试
9.1 组件及集成
9.2 组件交互
9.3 系统验收
9.4 β测试
9.5 结论
附录A 缺陷管理的一个分类图
附录B Object Z的语法
附录C 软件审查过程
参考文献
译后记
可能你选择本书的初衷只是想了解更多面向对象程序测试的知识,但是实际上你的收获将远不止于此。正如书名所示,本书主要讨论面向对象软件系统的缺陷管理,但本书所介绍的内容已经远远超出了面向对象代码测试的范围。
首先,我们讨论只有一种测试类型的缺陷管理。软件开发过程的任何阶段都可能引入缺陷。如果未经检测并发现这些缺陷,它们将在产品交付执行时成为错误或故障(bug)。测试的主要功能是执行程序并以程序执行失败为目标,这一活动可以发现许多缺陷,另外,还有些技术只需要检查过程中的各种制品,而不检查可执行的代码。我们将前者称为静态技术,后者称为动态技术。在本书中,将详细讨论缺陷管理的静态和动态方法。
其次,测试是在产品投入使用前清除缺陷的最后的机会。因此,采用基于代码测试的方法(一种严格的纠错性方法)与软件工程的原则产生抵触。我们还同时采用预防性方法。从整体上来看,软件工程可以看做是软件产品的缺陷管理过程,这个断言听起来难以置信,其实不然。换一种角度来看,我们在软件过程中进行的活动的目的都是避免将缺陷引入产品或将已引入的缺陷识别出来并将其排除。也就是说,缺陷管理技术不仅应用在代码层次,还可以应用于软件工程过程的所有相关活动中。本书涵盖了软件工程过程各阶段的相关缺陷管理技术,而不仅介绍处理代码的技术。而且,纠正性和预防性方法都会在本书中加以讨论。
再次,本书针对的是面向对象环境中的缺陷管理。但这并不是说,本书介绍的所有缺陷管理技术是面向对象独有的。恰恰相反,本书提到的每个在面向对象环境下的有用技术,可能原来并不是为该环境开发的。
最后,考虑到近来统一建模文(UML)和Rational统一过程(RUP)已分别发展为面向对象过程的建模与管理的标准方法,所以我们将在逻辑上尽可能与其保持兼容。
除了以上特点之外,本书还可以以多种方式使用。本书适合专业软件工程师、对象技术与缺陷管理领域的研究人员和软件工程专业的研究生阅读,可作为面向对象缺陷管理领域高级课程的教材或面向对象软件工程领域高级课程的阅读材料,也可以作为面向对象缺陷管理领域的待业培训材料。
在本书面世之际,我要向许多人表态感激之情,尤其是:
● 所有帮助我完成此书的老师、物理学和同事,有了你们的极力帮助,我才能完成此书。
● 我的妻子和最好的朋友Sheyda,由于你的支持和理解才能使这本书出版。
● 我的儿子Z. Daniel Younessi,他在文本处理与美工方面给予我极大的帮助。
● Prentice-Hall的专家们,尤其是Victoria Jones女士、Carol Wheelan女士和Mike Meehan先生,你们的努力使本书顺利出版。
● 我的读者,给了我写这本书的原动力。
衷心地希望这本书能对你有用。