书籍详情
《软件质量保证和管理》[21M]百度网盘|亲测有效|pdf下载
  • 软件质量保证和管理

  • 出版社:清华大学出版社
  • 出版时间:2020-01
  • 热度:7725
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

全书共15章,分为基础篇、实践篇和过程篇。第1章~第3章是基础篇,阐述了质量和软件质量、软件质量管理层次与模式、软件质量工程体系等概念、思想和方法;第4章~第9章是实践篇,主要讨论如何做好软件质量控制、质量保证、评审、配置管理和质量度量、可靠性度量等具体工作;第10章~第15章是过程篇,贯穿软件研发生命周期,深入探讨了需求分析、软件设计、编程和测试、软件发布和维护等阶段的软件质量活动,最终构建高质量的产品。
全书内容丰富,涉及软件质量工作的各个层次,强调质量文化和理念,引入了质量管理领域里Z具代表性的质量体系、先进的方法和优秀的实践、工具等,并将这些应用到整个软件开发全过程的质量保证和管理活动之中。
本书适合作为高等学校软件工程专业、大数据或人工智能等专业的教材,也适合从事软件管理、软件测试的相关工作人员阅读。

目录




目录


基础篇软件质量保证与管理体系

第1章质量与软件质量

1.1质量

1.1.1质量的概念

1.1.2质量因客户而存在

1.1.3不同的质量观点

1.1.4质量属性

1.1.5质量形成过程

1.2软件质量

1.2.1软件特点和软件质量

1.2.2软件质量的需求

1.2.3软件质量的特性分析

1.3广义的软件质量

1.3.1软件过程质量

1.3.2软件商业环境质量

1.4软件缺陷

1.4.1什么是软件缺陷

1.4.2软件缺陷的产生

1.4.3软件缺陷的分布

本章小结

思考题

第2章软件质量管理

2.1什么是软件质量管理

2.1.1软件质量控制

2.1.2软件质量保证

2.1.3缺陷预防

2.1.4质量管理的发展历程

2.2高水平的质量管理

2.2.1全面质量管理

2.2.2零缺陷管理

2.2.3六西格玛质量管理

2.2.4六西格玛质量管理和TQM比较

2.3软件质量管理模式

2.3.1目标驱动模式

2.3.2顾客导向模式

2.3.3价值驱动模式

2.3.4其他管理模式

本章小结

思考题

第3章软件质量工程体系

3.1系统工程学的思想

3.2软件质量工程体系的构成

3.2.1通用的软件质量工程体系

3.2.2软件质量工程体系和管理体系的关系

3.2.3根据上下文构建自己的软件质量工程体系

3.3软件质量工程环境

3.4依据质量标准有章可循

3.4.1标准的层次

3.4.2ISO主要软件质量标准

3.4.3IEEE相关的软件质量标准

3.4.4IEEE 7302014: SQA流程

3.4.5IEEE 10122016: 验证与确认

3.4.6IEEE 10282008: 评审与审计

3.4.7CMMI质量框架

3.4.8软件过程改进标准

3.5软件质量成本

3.5.1质量成本

3.5.2劣质成本PONC和COPQ

本章小结

思考题

实践篇软件质量工程的关键活动与实践

第4章软件质量控制

4.1软件质量控制活动

4.1.1控制论原理

4.1.2软件质量控制概述

4.1.3软件质量控制活动

4.2软件质量控制的一般方法

4.2.1目标问题度量法

4.2.2风险管理法

4.2.3PDCA质量控制法

4.3软件质量控制模型

4.3.1软件质量控制模型概述

4.3.2软件质量控制模型要素分析

4.3.3软件质量控制技术

4.3.4软件质量控制的实施与跟踪

4.4软件质量控制工具

4.4.1检查表和质量记录

4.4.2Pareto图和直方图

4.4.3运行图

4.4.4散布图与控制图

4.4.5因果图

4.4.6亲和图和关联图

4.4.7FMEA失效模式与影响分析

4.4.8SIPOC

4.4.9质量控制的其他工具

4.4.10质量控制工具的选择和应用

本章小结

思考题

实验1质量工具实验

第5章软件质量保证

5.1软件质量保证体系

5.2软件质量保证的组织

5.2.1软件质量组织

5.2.2软件质量组织结构

5.2.3角色的分类和职能

5.2.4SQA人员的要求和培养

5.2.5六西格玛的角色和人员培训

5.3SQA组织的目标和责任

5.3.1SQA计划

5.3.2评审和审核

5.3.3SQA报告

5.3.4SQA度量

5.3.5SQA评估任务

5.4纠正和预防措施

5.4.1纠正性和预防性的过程

5.4.2信息收集和分析

5.4.3解决方案及其执行

5.4.4相应措施的跟踪

5.5支持性质量保证手段

5.5.1模板

5.5.2文档建立、应用和更新

5.6软件质量改进

5.6.1软件质量改进模型

5.6.2软件质量改进实践层次

5.6.3品管圈

5.6.4漏测问题分析

5.6.5质量回溯

5.6.6持续改善

本章小结

思考题

第6章软件评审

6.1为什么需要评审

6.2软件评审的角色和职能

6.3评审的内容

6.3.1管理评审

6.3.2技术评审

6.3.3文档评审

6.3.4过程评审

6.4评审的方法和技术

6.4.1评审的方法

6.4.2评审的技术

6.5准备评审会议

6.6召开评审会议

6.7跟踪和分析评审结果

6.7.1评审结果跟踪

6.7.2分析评审结果

6.8如何实施成功的评审

本章小结

思考题

实验2需求评审

第7章软件配置管理

7.1概述

7.1.1配置与配置项

7.1.2基线

7.1.3软件配置管理概念

7.1.4软件配置管理标准

7.2软件配置管理活动与流程

7.2.1配置管理流程

7.2.2配置项标识

7.2.3版本控制

7.2.4基线管理

7.2.5变更控制

7.3软件配置管理系统

7.3.1主流系统概述

7.3.2分布式版本控制系统Git

本章小结

思考题

实验3软件配置管理实验

第8章软件质量度量

8.1软件质量度量基础

8.1.1什么是测量

8.1.2软件度量

8.1.3软件质量度量概述

8.2软件产品规模与复杂度度量

8.2.1软件规模估算方法

8.2.2结构化程序的复杂性度量

8.2.3面向对象程序的复杂性度量

8.3软件产品质量度量

8.3.1软件质量属性度量

8.3.2软件缺陷度量

8.3.3顾客满意度度量

8.4软件过程质量度量

8.4.1软件需求过程的质量度量

8.4.2软件过程生产率的度量

8.4.3测试阶段的过程质量度量

8.4.4维护阶段的过程质量度量

8.5软件质量度量模型

8.5.1基于时间的缺陷到达模式

8.5.2PTR累积模型

8.5.3Rayleigh模型

8.5.4ODC缺陷分析模型

8.6软件质量度量的执行

8.6.1度量专家的思想和指导

8.6.2软件度量的应用

8.6.3选择和确定质量因素

8.6.4质量度量中的数据采集

8.6.5质量度量的统计分析

本章小结

思考题

实验4基于代码的质量度量

第9章软件可靠性度量和测试

9.1软件可靠性

9.1.1软件失效的过程与类别

9.1.2可靠性定义

9.2可靠性模型及其评价标准

9.2.1可靠性模型

9.2.2可靠性模型评价标准

9.3软件可靠性测试和评估

9.3.1影响软件可靠性的因素

9.3.2可靠性度量指标

9.3.3可靠性测试

9.3.4可靠性测试结果分析和评估

本章小结

思考题

过程篇全过程提升软件质量

第10章软件质量计划

10.1朱兰三部曲与质量策划

10.2软件质量计划概述

10.2.1质量计划的目标和要素

10.2.2软件质量计划内容

10.2.3软件质量计划的制订原则

10.2.4制订质量计划的方法和规程

10.3质量计划实例

10.3.1小项目与内部项目的质量计划

10.3.2大型项目的质量计划

10.4质量计划实施体系

10.4.1基础设施防护和组织关系

10.4.2项目生命周期的质量活动

10.4.3标准化、认证与SQA系统评估

本章小结

思考题

实验5制订特定项目的质量计划

第11章高质量的软件需求分析

11.1全面获取需求与去伪存真

11.1.1全面获取用户的真实需求

11.1.2去伪存真

11.1.3准确的需求传递

11.2基于模型准确分析需求

11.2.1结构化分析建模

11.2.2面向对象的分析建模

11.3系统需求的质量保证

11.3.1严格的需求评审

11.3.2可控的需求变更

本章小结

思考题

实验6需求评审

第12章提高软件设计质量

12.1软件设计

12.1.1软件设计的目标

12.1.2软件设计评价标准

12.1.3软件设计原则

12.2如何构建设计质量

12.2.1有质量的软件设计

12.2.2借助设计模式提高质量

12.2.3通过UML改善设计

12.3数据库设计质量

12.4软件设计优化

12.4.1模块设计和接口设计的要求

12.4.2详细设计的要求

12.4.3界面设计的要求

12.5一些典型的系统设计

12.5.1分布式系统的设计

12.5.2彻底解耦: 微服务架构

本章小结

思考题

第13章高质量编程

13.1代码风格

13.1.1为什么要谈代码风格

13.1.2Windows程序命名规则

13.1.3GNU风格习惯

13.1.4函数处理

13.2编程规则

13.2.1函数重载

13.2.2代码重构

13.2.3Java编程规则

13.2.4C++编程规则

13.3提高程序质量的技术

13.3.1内存分配和管理

13.3.2智能指针

13.3.3提高程序性能的方法

13.4代码审查

13.4.1静态分析和代码审查的目的

13.4.2代码走查

13.4.3代码审查

13.5单元测试

13.5.1单元测试的重要性

13.5.2单元测试方法

13.5.3单元测试工具

13.5.4代码质量展示平台SonarQube

本章小结

思考题

实验7SonarQube平台搭建与使用

第14章软件测试的质量

14.1软件测试

14.1.1软件测试和质量保证的关系

14.1.2测试在软件开发各个阶段的任务

14.1.3软件测试目标

14.2测试的现实和原则

14.2.1测试的现实

14.2.2测试的原则

14.3测试的方法应用之道

14.3.1测试的三维构成

14.3.2测试方法的辩证统一

14.3.3验证和确认缺一不可

14.3.4测试用例设计方法的综合运用

14.3.5测试工具的有效使用

14.3.6开发高质量的测试脚本

14.4测试目标实现的完整性和有效性

14.4.1集成测试

14.4.2功能测试和适用性测试

14.4.3性能测试和容量测试

14.4.4容错性测试和安全性测试

14.4.5回归测试

14.4.6安装测试

14.5测试的过程评审和质量保证

14.5.1测试计划的有效性和全面性

14.5.2测试用例的复审

14.5.3严格执行测试

14.5.4准确报告软件缺陷

14.5.5提高测试覆盖度

14.5.6测试结果分析和质量报告

14.6软件测试组织和管理

14.6.1测试项目的管理原则

14.6.2测试资源的合理分配

14.6.3测试进度和成本的控制

14.6.4测试风险的管理

本章小结

思考题

实验8移动App多项测试实验

第15章软件发布和维护的质量管理

15.1软件发布

15.1.1软件产品发布一般程序

15.1.2软件服务模式的产品发布程序

15.1.3软件产品发布类型和版本

15.2软件部署

15.2.1持续交付与持续部署

15.2.2软件运行的服务质量

15.2.3软件部署规划

15.2.4软件部署的逻辑设计

15.2.5软件部署的物理设计

15.2.6软件部署的可用性和可伸缩性策略

15.2.7软件部署验证和实施

15.3软件维护

15.3.1软件维护的作用和分类

15.3.2软件维护的框架和计划

15.3.3软件产品的维护质量

15.3.4软件部署的维护质量

15.3.5软件技术支持

15.3.6软件维护的管理性控制

15.4DevOps

本章小结

思考题

附录A软件质量术语中英文对照

附录B主要的国内国际标准清单

附录C全面质量管理纲要

附录D计算机软件质量保证计划规范

附录E评审检查表

附录F软件设计模式的分类

附录G软件质量改进方案模板

参考文献


前言/序言





前言


对于很多学生来说,“软件质量保证和管理”这门课的内容有些教科书的味道,因为管理对于没有工作经验的学生来说比较陌生; 提起“质量”,很多时候又被“测试”这个词汇所替代。相对而言,软件工程的学生更愿意写代码而不愿意写过程文档,这门课似乎与代码不沾边。如何改变大家这样的感觉或看法呢?如何让学生喜欢上这门课呢?
在工业界,“软件质量保证”(Software Quality Assurance,SQA)与“软件测试”分设为两个部门,它们有各自的定位和职责。SQA强调过程质量和构建质量,测试侧重产品质量的检验。随着敏捷开发模式的盛行,测试与开发渐渐融合,更强调质量反馈。是不是说SQA就不再重要了?或者说,通过测试工具就可以解决质量问题?如果迭代越快、开发速度越快,构建高质量是不是更重要呢?质量管理的影响是否更为深远、SQA更具价值呢?
事实上,软件质量保证和管理的外延远比软件测试大得多,软件测试只是软件质量控制的一部分。质量管理也绝非纸上谈兵,而是要落实于实实在在的实践之中,落实到企业的管理制度、研发流程、具体操作方式和质量工具之中,如质量闭环、质量反馈、流程化、持续质量改进、问题管理等。我们常说的质量文化,是指企业将质量价值观、质量保证思想、质量管理方法论等化为无形,融入日常工作之中,如品管圈(Quality Control Circle,QCC)、合理化建议等。 那么,又如何将看似无形的质量管理方法论提取出来,更易于复制落地呢?
随着质量理念的发展,持续集成(CI)、测试左移和右移、DevOps成为主潮流,大家更关注技术与工具,新的软件质量实践越来越具有工程化特点,软件质量管理不仅过程可见,其结果也越来越可见。如何将最新的前沿技术和实践也糅合到课程中?
所有这些,都是此次改版的初衷,除了基础理论外,此版整合了学界和业界的优秀经验,更新了软件质量体系,并力求体现它的模块化、工程化、过程化、工具化等特点。
(1) 教材编排的模块化。此版将全书分为三大模块: 基础篇、实践篇和过程篇。基础篇讲述软件质量的概念和基本方法,从质量、软件质量入手,扩展到软件质量管理的层次和模式,最终构筑起软件质量的工程体系。实践篇从工程的角度讲述软件质量工程的关键活动与实践,包括软件质量度量、质量控制、评审、配置管理等。为避免与软件测试课程重复,软件测试的内容不展开讨论。过程篇以软件开发生命周期过程为主线,讲述如何保证软件开发过程各个阶段的交付件的质量,包括需求质量、设计质量、代码质量、测试质量、发布和维护质量等。
(2) 软件质量活动的工程化。基于软件质量的多年实践,软件质量归根结底是构建出来的,软件质量工程是软件工程的一个剖面。为凸显其工程化的特点,此版中强化了软件工程中与质量相关的实践活动。除了配置、评审等软件质量工程中固有的工程活动外,还有一些为提高软件质量所开展的具体工程实践。例如,持续集成、持续交付(CD)、质量管理平台、度量数据库、经验库、工具集等,都属于工程化的一部分。此版中加强了CI、CD和DevOps等最新的软件质量工具的应用。




(3) 软件质量管理的过程化。在软件工程知识体系SWEBOK V3中,对于软件质量知识域,提到了软件质量管理过程。可以把软件质量管理视作与需求管理、测试管理一样,将其过程化。从PDCA的角度看,软件质量管理过程由质量计划、质量保证、质量控制、质量改进等阶段构成。大过程套小过程,而且这几个阶段也不是绝对串行的,例如软件质量改进是贯穿始末的,质量控制和保证过程中也会调整质量计划。软件质量管理的过程化也体现在软件研发生命周期,贯穿软件研发和运维整个过程,即在软件需求、设计、编码、测试等不同活动中不断思考如何保证和提升软件质量,依靠质量标准指导流程控制、方法落地等,全过程构建高质量的产品。此版重构了全书结构,软件质量管理过程更加清晰,教师授课更加自然。
(4) 质量工具箱的整合。在质量界,有质量老七工具、新七工具之说,同时在实践中,又出现了一些实用的质量分析手法,如FMEA、5WHY等。这些工具各有特点,应用于质量过程的不同方面,有定性的、有定量的,按应用场景又可分为创意、过程分析、数据分析、根因分析等。此版将与软件质量相关的分析工具抽取出来,加以汇总。在此书中同时介绍了一些新的工具或平台,并给出了这些质量工具在实际软件质量活动中选择和应用的建议。
另外,考虑到软件质量度量具有较强的软件技术特点,在此版中强化了这部分内容。软件质量度量从大的方面分为产品质量和过程质量,产品质量又包括内部质量和外部质量; 软件复杂性度量属于内部质量度量,可用性、可靠性等软件质量属性度量则属于外部质量度量。此版中用了较多篇幅描述软件产品质量度量,不同于软件测试的执行、观察和结果比对,此处更多体现如何用数据描述软件产品特征、如何对软件质量属性进行度量和指标计算。
此版中更为强调软件质量相关理论和方法的实践和可操作性,具体来说,增强了以下4个方面。
(1) 理论实践案例。结合案例阐述,增强对理论的理解。例如,在阐述PDCA时结合研发流程说明如何设置质量控制点。
(2) 课后配套练习。设置问题场景,增强对方法的实践。例如,针对软件开发过程中某项具体活动,设计检查表。
(3) 引入软件工具,固化了质量管理的方法。例如,结合软件度量工具Metrics说明各类软件度量集是如何实现的。
(4) 配套课程实验。关键工程活动设置配套实验,体现工程实践中是如何应用的。例如,结合SVN工具说明如何在实际软件开发过程中配置管理。
本书经过两年的准备和修订,终于和大家见面了,但仍会存在不足,希望后续能加快修订频率,未来不久能出第3版、第4版,以不辜负长期以来选择本书的各位教师的期望。本教材第1版10年前就已出版,且不断重印,被许多老师选用,而我们迟迟未能及时更新本教材,借此机会郑重地对选用本书的各位教师说一声“对不起”。
为便于教学,本书提供教学大纲、教学课件、教学进度表,扫描封底的课件二维码可以下载。
参与本书修订工作的作者有3位老师,他们分别是同济大学朱少民(第3、6、9、第10~14章)、南京晓庄学院张玲玲(第4、5、8章)、西南科技大学潘娅(第1、2、7、15章)。全书结构由大家讨论协商确定,最后由朱少民老师统稿。
最后,感谢选用本书作为教材的各位老师!感谢清华大学出版社魏江江及其他编辑的大力支持,感谢我们家人的大力支持,使本书再上一个台阶,延续其生命力,更好地为教学提供服务。

编者于2019年5月