译者序
在当今信息技术飞速发展的时代,软件已成为现代社会的基石。软件质量是软件工程的一个核心议题,它涉及软件可靠性、易用性、维护性和可移植性等多方面的表现。软件质量的高低,不仅关乎软件是否能满足用户的需求,还直接影响用户的信任度、企业的竞争力乃至国家的信息安全。因此,深入理解软件质量的概念,掌握提升软件质量的实践方法,对于每位软件从业者而言,都是一项至关重要的任务。
本书作为软件工程领域的经典之作,为读者提供一个全面、系统的软件质量管理知识体系。本书首先从理论上系统梳理了软件质量的定义、模型、标准以及评估方法,内容涵盖软件质量的基本概念、软件质量模型、质量规划、质量保证、质量控制和质量改进等方面,为读者构建了一个全面的理论基础。然后,原著作者凭借深厚的行业经验和独到的见解,详细探讨了软件开发全生命周期中每阶段的质量管理策略。尤其值得一提的是,书中引入了大量源自不同行业的实际案例,生动展示了如何在具体情境下识别质量问题、采取有效措施并持续改进软件质量,通过丰富的案例分析和实践指导,为软件开发者、测试工程师、项目管理者等提供宝贵的实操指南。
我们非常荣幸担任本书的译者,将这部充满智慧与实践结晶的作品介绍给广大读者。在翻译本书的过程中,我们力求准确传达原著的精神实质,同时兼顾语言的流畅性和可读性,希望能够帮助中文读者无障碍地汲取书中的精髓。由于软件质量领域的知识博大精深,译者的知识和能力有限,书中难免会有不足与疏漏之处,敬请广大读者和同行提出宝贵的意见和建议,帮助我们不断改进和提高翻译质量。
最后,要感谢原著作者和所有为软件质量事业做出贡献的专家和学者,他们的研究成果和实践经验为我们提供了宝贵的财富。同时,还要感谢国防工业出版社的工作人员,他们的辛勤工作使得本书得以顺利出版。希望本书能够为广大读者在软件质量领域的学习和实践提供有益的帮助。
译 者
2025 年 1 月
前言
以下软件 故障 似乎司空见惯。
(1)美国众多城市数以千计的学生刚刚参加了考试,他们疲惫又激动,按下 提交 按钮,却发现自己的答案无法通过软件(专为考试购买)上传。果不其然,学生们的愤怒、沮丧和失望最终演变成针对考试软件公司的一系列法律诉讼。
(2)美国一所监狱的 24 名囚犯被错误释放,其中包括因暴力犯罪而被监禁的囚犯。囚犯错误释放是由于最近实施的用于管理监狱记录的新软件系统生成错误的释放文件。该县监狱发言人称,这一错误是由于软件故障,导致了对大量输入文件的错误处理。对上述软件失效的及时检测,防止更多的囚犯被错误释放。
(3)所得税征收系统的一次软件故障,造成了数百万公民在所得税网站程序中使用错误税码。这一错误导致许多人支付的费用低于或高于原本应支付的税费。遗憾的是,故障在一年后才得以发现。当然,不可避免的事情必定要发生,税务部门现在要处理无数的报税单。只有当这些报税程序结束后,所得税部门才能估计软件失效造成的巨大损失。
以上只是日常故障的几个小小的例子。这样的软件故障有可能造成重大损失。如果软件项目团队能够执行适当的软件质量保证(SQA)过程,并且软件质量保证专业人员能够正确进行必要的过程协调、跟踪和评估,那么这些故障均可消除,或者基本上上消除。这种软件质量保证过程就是本书要讲的内容。
本书结构
本书按照 IEEE 730:2014 标准分为以下六个部分。
第一部分:绪论(第 1 章~第 5 章),介绍与软件质量相关的定义和主题。
第二部分:SQA 过程实施活动(第 6 章~第 11 章),专用于 SQA 职能部门的软件质量保证活动,包括在组织中建立 SQA 过程、策划 SQA 和软件质量成本运用。
第三部分:产品符合性保证活动(第 12 章~第 17 章),涉及产品评估和产品质量测量。
第四部分:符合性过程保证活动(第 18 章~第 23 章),讨论过程质量评估和测量、过程改进、员工技能和知识评估以及所需培训。
第五部分:支持软件质量的其他工具和方法(第 24 章~第 26 章),介绍配置管理、计算机辅助软件工程(CASE)工具以及模板和检查单主题,这些都对实现软件质量需求做出了重要贡献。
第六部分:附录(附录 A~ 附录 D),主要介绍与 SQA 相关的基本软件质量和软件工程主题:软件工程与 SQA 标准和模型以及项目进度控制。本部分还包括对软件开发方法和过程及其质量保证活动的回顾。
本书特点
本书以下主要特点特别重要。
(1)提供 SQA 的广阔视野。本书深入探讨了 SQA 主题,涵盖的问题远远超出大型成熟软件公司定制软件开发的典型界限;特别关注与内部软件开发商、分包商、现成软件供方和软件开发过程中的其他外部参与者相关的问题,并涵盖小型软件项目。
(2)对 SQA 和与 SQA 相关主题的最新全面阐述。本书全面阐述了 SQA 和 SQA 相关主题,并涉及在 SQA 文本中很少讨论的主题。其中包括过程和工作指导、工具和支持技术,如模板和检查单、文档控制、员工认证和软件质量成本。
(3)对新技术和新方法主题的全面讨论。本书广泛涵盖了当前的 SQA 主题,讨论了新的软件开发方法、计算机化 SQA 工具和国际 SQA 标准的影响。
(4)对 SQA 功能的全面介绍。包括建立 SQA 过程,以及策划、协调、跟踪、评审和评价软件过程团队和其他人员实施的 SQA 过程。
(5)特别强调 SQA 计划和项目计划主题。详细讨论了计划的编制和更新过程及其实施。
(6)特别关注 SQA 的实施问题。
(7)贯穿全书的重点是特定章节、示例、实施提示和讨论题中的实施问题。各章结构一致:开场是一个小案例研究,随后是主题,包括示例、摘要、参考文献、思考题和讨论题。本书为软件工程专业的学期课程量身定制,将是许多不同课程的非常有用的教科书。
(8)教学指导。
关于 SQA 的著作
作者曾出版 Software Quality Assurance:From Theory to Implementation(《软件质量保证:从理论到实践》,Addison-Wesley,2004)拥有广泛的读者群,也被世界各地高等教育机构的众多院系、专业培训班和高科技技能培训班用作相关课程的教科书。
本书与《软件质量保证:从理论到实践》(2004 版)的主要不同之处在于以下几点:
根据技术和方法的发展,本书对各主题本身及其覆盖范围进行了更新。
2004 年版本涵盖的主题已非常广泛,本书在此基础上又增加了新的主题。
本书更多地关注 SQA 功能主题,全面介绍 SQA 功能及其任务。
本书的结构遵循 IEEE 7302014 标准。
本书提高了可读性,尤其是许多章节以小案例作为开场。
本书读者
本书旨在帮助对软件质量保证感兴趣的广大读者,并应对他们所面临的挑战,主要读者如下:
高校大学生。
工作本身就涉及软件开发和维护质量问题的软件工程从业者。
软件质量保证从业者。
职业培训课程的学生和讲师。
软件开发部门的经理、项目经理和其他有特殊兴趣的读者群。
对 ISO 900032014 标准感兴趣的读者。
对美国质量学会(ASQ)认证软件质量工程师知识体系(CSQE BOK)感兴趣的读者。
对质量保证协会(QAI)认证软件质量分析师通用知识体系(CSQA CBOK)感兴趣的读者。
对上述两个主题感兴趣的读者群都将在本书中找到全面的介绍。
教学指南
原著作者还编写了一份教学指南,其中包括本书各章的 PowerPoint 演示文稿。该指南可供采用本书作为教材的讲师使用,可通过发送电子邮件获取该信息,电子邮箱:ieeeproposals@wiley.com。
目录
第一部分 绪论
第 1 章 软件质量保证的定义和概念
1.1 软件质量和软件质量保证的定义
1.2 什么是软件产品
1.3 软件质量保证的原则
1.4 软件差错、故障和失效
1.5 软件差错的原因
1.6 软件质量保证与软件质量控制
1.7 软件质量工程与软件工程
1.8 小结
参考文献
思考题
讨论题
第 2 章 软件质量要素
2.1 入门小案例:来自城市计算机俱乐部会员的投诉
2.2 软件质量综合需求的必要性
2.3 McCall 软件质量要素的经典模型
2.4 软件质量要素的 ISO/IEC 25010 模型和其他替代模型
2.5 软件与质量要素的一致性
2.6 小结
参考文献
思考题
讨论题
第 3 章 软件质量保证的挑战
3.1 引言
3.2 软件质量保证的独特性
3.3 软件开发、维护和软件质量保证环境
3.4 小结
思考题
讨论题
第 4 章 软件质量保证组织
4.1 引言
4.2 最高管理层的质量保证活动
4.3 直接负责质量的部门经理
4.4 与质量相关的项目管理职责
4.5 SQA 系统中的 SQA 单位及其相关参与者
4.6 SQA 系统中的相关参与者
4.7 小结
参考文献
思考题
讨论题
第 5 章 SQA 领域概述
5.1 绪论(本书第一部分)
5.2 SQA 过程实施活动(本书第二部分)
5.3 产品符合性保证活动(本书第三部分)
5.4 符合性过程保证活动(本书第四部分)
5.5 支持软件质量的其他工具和方法(本书第五部分)
5.6 附录(本书第六部分)
5.7 SQA 名人堂
第二部分 SQA 过程实施活动
第 6 章 建立 SQA 过程及其与相关软件过程的协调
6.1 建立 SQA 过程
6.2 协调 SQA 过程与相关软件过程
6.3 小结
参考文献
思考题
讨论题
第 7 章 SQA 计划和项目计划
7.1 引言
7.2 SQA 计划的编制过程
7.3 SQAP 要素
7.4 项目计划的编制过程
7.5 入门小案例:Jack Bora 感谢他的部门经理
7.6 项目计划要素
7.7 小型项目和内部项目的项目计划
7.8 小结
参考文献
思考题
讨论题
附录 7.A 风险管理活动和措施
第 8 章 项目前期工作的合同评审
8.1 入门小案例:庆祝 CFV 项目圆满完成
8.2 引言
8.3 合同评审过程及其阶段
8.4 合同评审评估主体
8.5 合同评审的实施
8.6 内部项目合同评审
8.7 小结
参考文献
思考题
讨论题
附录 8.A 建议草案评审
附录 8.B 合同草案评审
第 9 章 软件质量成本
9.1 入门小案例:预算获批
9.2 软件质量度量成本目标
9.3 软件质量成本的经典模型
9.4 软件质量成本范围 行业数据
9.5 软件质量成本扩展模型
9.6 软件质量成本体系的运用
9.7 运用 CoSQ 测量时出现的问题
9.8 小结
参考文献
思考题
讨论题
第 10 章 SQA 模型验证和确认计划的有效性和成本
10.1 SQA 模型所需的数据
10.2 SQA 模型
10.3 运用 SQA 模型对标准与综合 V&V 计划进行比较
10.4 小结
参考文献
思考题
讨论题
第 11 章 SQA 记录和文档控制
11.1 入门小案例:Jeff 的麻烦
11.2 引言
11.3 文档控制过程的目标
11.4 文档控制过程的实施
11.5 小结
参考文献
思考题
讨论题
第三部分 产品符合性保证活动
第 12 章 产品符合性评价
12.1 引言
12.2 项目计划符合性评价
12.3 项目软件产品符合性评价
12.4 顾客对项目产品接受度的评价
12.5 项目运行阶段产品符合性评价
12.6 通过测量对软件产品的评价
12.7 小结
参考文献
思考题
讨论题
第 13 章 评审
13.1 引言
13.2 入门小案例:轻松愉快的设计评审
13.3 正式设计评审
13.4 同行评审
13.5 专家意见
13.6 小结
参考文献
思考题
讨论题
附录 13.A 设计评审报告表
附录 13.B 审查会议报告表
附录 13.C 审查会议总结报告表
第 14 章 软件测试
14.1 引言
14.2 入门小案例:Joe Brady 决定跳过过程测试
14.3 软件测试策略
14.4 需求驱动型软件测试
14.5 测试过程策划
14.6 测试过程设计
14.7 测试过程实施
14.8 自动化测试
14.9 Alpha 和 Beta 现场测试程序
14.10 编程和测试阶段的代码审查活动
14.11 小结
参考文献
思考题
讨论题