软件质量保证基本概念与方法PPT(25张)
合集下载
软件项目质量管理

全过程性 (管理好质量形成的全过程)
全面性 (和顾客交互的所有环节)
全面质量管理(TQM)
TQM强调建立以过程为核心的组织文化 以为客户创造价值为目标,识别组织内部的 所有过程 所有人强调预防而不是质量控制 要求对过程不断进行优化
本章内容提要
精 益 求 精 , 追求卓 越,因 为相信 而伟大 。2021年 1月4日 星期 一上午 7时32分 17秒07:32:1721.1.4
在项目早期预防和检测缺陷比在项目晚期 检测和排除缺陷更有效、更节省成本。
内容提要
软件质量管理的基本概念 软件质量控制 缺陷预防 质量体系 软件项目质量管理计划(案例) 缺陷跟踪工具Bugzilla
第二节 软件质量控制
质量控制(Quality Control, QC)是确定项目结果 与质量标准是否相符,并及时纠正产品缺陷的过 程。
本章内容提要
软件质量管理的基本概念 软件质量控制 缺陷预防 质量体系 软件项目质量管理计划(案例) 缺陷跟踪工具Bugzilla
第四节 质量体系
根据ISO9000标准,质量体系的定义是:为实 施质量管理所需的组织结构、责任、工序、工 作过程和资源。
组织结构
过程
质量体系
工序
资源
质量体系的特征
软件质量的形成
软件的质量形成于产品或者服务的开发过程中, 而不是事后的检查(如测试)。
20世纪80年代起,质量管理逐步从单一的关注 产品,转移到关注生产好产品的过程上,并且 将过程的作用扩大到了组织运行的所有领域。
质量产生于过程
当过程不断被重复,其性能会趋于稳定
结果可预测 对现行执行可监测
质量成本(CoQ)
When Defect is Detected User Requirements Coding/Unit Testing System Testing Acceptance Testing After Implementation
it软件项目质量管理 ppt课件_OK

直接与生产过程有密切的关系,过程的改进自然会得到产品质量的提高。
2021/8/6
11
7.1.2 质量管理发展过程及影响因素(3)
• 产品质量的形成过程:
•
经过生产的全过程一步一步产生和形成,它是一个产生、形成、发展和实现的过程。
• 美国质量管理专家朱兰采用一条螺旋上升的曲线来表达这一
过程,称为“朱兰螺旋曲线”,大致经过了市场研究、新产
用户界面友好是不是就是软件的质量好?
•
没有BUG是不是就是软件的质量好?
•
什么是用户满意的软件项目?
•
软件测试是不是软件质量的全部?
•
那么,什么是软件的质量?
2021/8/6
3
什么是软件项目的质量管理?
➢ 软件项目管理中的质量管理与软件工程的测试管理,有什么不同?
➢ 项目经理与项目QA经理有什么不同?
• 全面质量管理阶段(TQM)。
2021/8/6
10
7.1.2 质量管理发展过程及影响因素(2)
•
目前质量管理理论和实践的中心是针对过程的质量管理,主张在生产开发过程中保证质
量,而不是在传统的生产过程结束后才发现质量问题,这样比产品质量检验控制更具有
先期性和主动性。
•
根据制造业的情况,一般认为开发过程的质量直接影响可交付产品的质量,产品的质量
测量
产品质量的主要影响因素
环境
15
7.1.3 全面质量管理(1)
• 全面质量管理是由美国的费根堡姆和朱兰共同提出的,简
称TQM(Total Quality Management)。
•
具体含义:运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全
2021/8/6
11
7.1.2 质量管理发展过程及影响因素(3)
• 产品质量的形成过程:
•
经过生产的全过程一步一步产生和形成,它是一个产生、形成、发展和实现的过程。
• 美国质量管理专家朱兰采用一条螺旋上升的曲线来表达这一
过程,称为“朱兰螺旋曲线”,大致经过了市场研究、新产
用户界面友好是不是就是软件的质量好?
•
没有BUG是不是就是软件的质量好?
•
什么是用户满意的软件项目?
•
软件测试是不是软件质量的全部?
•
那么,什么是软件的质量?
2021/8/6
3
什么是软件项目的质量管理?
➢ 软件项目管理中的质量管理与软件工程的测试管理,有什么不同?
➢ 项目经理与项目QA经理有什么不同?
• 全面质量管理阶段(TQM)。
2021/8/6
10
7.1.2 质量管理发展过程及影响因素(2)
•
目前质量管理理论和实践的中心是针对过程的质量管理,主张在生产开发过程中保证质
量,而不是在传统的生产过程结束后才发现质量问题,这样比产品质量检验控制更具有
先期性和主动性。
•
根据制造业的情况,一般认为开发过程的质量直接影响可交付产品的质量,产品的质量
测量
产品质量的主要影响因素
环境
15
7.1.3 全面质量管理(1)
• 全面质量管理是由美国的费根堡姆和朱兰共同提出的,简
称TQM(Total Quality Management)。
•
具体含义:运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全
软件测试教案ppt课件

第1章软件测试概述12软件测试基础理论13软件开发过程14软件开发与软件测试的关系15软件测试过程16软件质量保证概要17软件测试职业11软件测试背景本章教学目标正确理解软件测试的背景软件缺陷和故障的概念正确理解软件测试的意义正确理解软件开发过程与软件测试的关系正确理解软件质量的概念及质量保证体系了解软件测试职业与素质的要求11软件测试背景111软件可靠性问题112软件缺陷与故障113软件缺陷产生的原因returnreturn111软件可靠性问题运行软件的驻留故障密度每千行代码的故障数目要求很高的关键财务或财产软件为每千行代码110个故障关键的生命软件为每千行代码0011个故障时间内无故障运行的概率
软件测试的对象:
——软件测试不等于程序测试。
——软件测试贯串于软件定义和开发的整个过程。
——软件开发过程中所产生的需求规格说明、概要 设计规格说明、详细设计规格说明以及源程序都是 软件测试的对象。
A Free sample background from
的定义有两种描述:
定义1:软件测试是为了发现错误而执行程序的 过程。
定义2:软件测试是根据软件开发各阶段的规格 说明和程序的内部结构而精心设计的一批测试用
例,并利用这些测试用例运行程序以及发现错误
的过程,即执行测试步骤。
A Free sample background from
功能冻结
代码冻结
图1-3 软件测试的周期性
第1章
A Free sample background from
软件测试概述
Slide 19
软件测试的基本理论(续)
6、测试停止的依据(标准) 第一类标准:测试超过了预定时间,则停止测试。 第二类标准:执行了所有的测试用例,但并没有发
软件测试的对象:
——软件测试不等于程序测试。
——软件测试贯串于软件定义和开发的整个过程。
——软件开发过程中所产生的需求规格说明、概要 设计规格说明、详细设计规格说明以及源程序都是 软件测试的对象。
A Free sample background from
的定义有两种描述:
定义1:软件测试是为了发现错误而执行程序的 过程。
定义2:软件测试是根据软件开发各阶段的规格 说明和程序的内部结构而精心设计的一批测试用
例,并利用这些测试用例运行程序以及发现错误
的过程,即执行测试步骤。
A Free sample background from
功能冻结
代码冻结
图1-3 软件测试的周期性
第1章
A Free sample background from
软件测试概述
Slide 19
软件测试的基本理论(续)
6、测试停止的依据(标准) 第一类标准:测试超过了预定时间,则停止测试。 第二类标准:执行了所有的测试用例,但并没有发
软件测试及软件质量控制

6.1.4 软件测试步骤与软件开发各 阶段的关系
(3)确认测试(也称验收测试,有效性测试) :主要检验软件的功能和性能是否与需求说明书中 的规定一致。
(4)系统测试:将软件系统作为一个元素,放 入整个实际的计算机系统中,与计算机硬件、其他 软件、使用人员等系统元素结合在一起,在实际使 用环境下进行综合全面的测试。
6.1.3 测试信息流
• 一种是软件的质量和可靠性达到可以接受的程度。 • 另一种是所做的测试还不足以发现软件的严重错误
。 如果得到的评价是没有发现错误,很有可能测试
的配置考虑得不够充分和细致,软件仍有潜伏的错 误,以后改正错误需要付出高昂的代价。
2020/1/21
6.1.3 测试信息流
2.软件错误可以从不同角度进行分类: (1)从错误对程序的影响程度来分:
2020/1/21
6.1.3 测试信息流
将测试的过程用数据流图表示,可得测试信息流 如图6-1所示。
软件配置 1 测试结果 2 错误
测试配置
测试结果
测试工具 测试
评价
(至软件配置) 3 修正的软件
调试 正确
预测结果
出错率 4 数据 可靠性
分析
2020/1/21
图6-1 测试信息流
6.1..3 测试信息流
通过收集和分析测试结果的有关数据,可以建 立软件评估的可靠性模型。
如果经常出现需要修改设计的严重错误,那么 软件的质量和可靠性就值得怀疑,同时也表明需 要进一步测试。
相反,如果软件功能能够正确完成,出现的错 误易于修改,那么就可能有两种评价:
2020/1/21
2020/1/21
6.1.4 软件测试步骤与软件开发各 阶段的关系
软件工程完整PPT课件

2021/3/9
10
④局部化。要求在一个物理模块内集中逻辑上相互关联 的计算资源,保证模块间具有松散的耦合关系,模块 内部有较强的内聚性,这有助于控制解的复杂性。
⑤确定性。软件开发过程中所有概念的表达应是确定的、 无歧义且规范的。
⑥一致性。包括程序、数据和文档的整个软件系统的各 模块应使用已知的概念,内外部接口应保持一致,系 统规格说明与系统行为应保持一致。
2021/3/9
14
2. 需求分析方法 常见的需求分析方法有:
①结构化分析方法。 ②面向对象的分析方法。
2021/3/9
15
2.2结构化分析方法
(1)关于结构化分析方法 结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,
建立系统的处理流程,以数据流图和数据字典为主要工具,建 立系统的逻辑模型。 结构化分析的步骤如下:
3. 信息隐蔽 信息隐蔽使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不能访问 的。
2021/3/9
24
4. 模块独立性 每个模块完成一个相对独立的特定子功能,并且 和其他模块之间的接口很简单。
模块的独立程度可以由两个定性标准来衡量,这 两个标准分别称为耦合性和内聚性。藕合衡量不 同模块彼此间互相依赖(连接)的紧密程度;内 聚衡量一个模块内部各个元素彼此间结合的紧密 程度。
⑦完备性。软件系统不丢失任何重要成分,完全实现系 统所需的功能。
⑧可验证性。开发大型软件系统需要对系统自顶向下, 逐层分解。系统分解应遵循容易检查、测评、评审的 原则,以确保系统的正确性。
2021/3/9
11
1.5软件开发工具与软件开发环境
1. 软件开发工具 软件开发工具是指可以用来帮助开发,测试、分 析、维护其他计算机程序及其文档资料,实现软 件生产过程自动化的一类程序。 软件工具主要包括需求分析工具、设计工具、编 码工具、确认工具、维护工具等。
软件可靠性(第一讲)

软件可靠性的基本知识
2.软件规模 如果软件只含一条指令,那么谈论软件可靠性问 题便失去意义。随着软件规模的增大,软件可靠 性问题愈显突出。 在我们考虑软件可靠性问题时,软件一般是指中 型以上软件(4000~5000条以上语句),这时可靠 性问题难以对付。
软件可靠性的基本知识
3. 软件内部结构 软件内部结构一般比较复杂,且动态变 化,对可靠性的影响也不甚清楚。 但总的说来,结构越复杂,软件复杂度越 高,内含缺陷数越多,因而软件可靠度越低。
广义的可靠性:
是指一切旨在避免、减少、处理、度量软件故障 (错误、缺陷、失效)的分析、设计、测试方法、 技术和实践活动。
软件可靠性的基本知识
与之相关的内容有软件可靠性度量、软件可靠性设 计、软件可靠性建模、软件可靠性测试和软件可靠 性管理等。
狭义的可靠性:
是指软件无失效运行的定量度量。
与之相关的内容有软件可靠性度、软件 失效强度和软件平均失效时间等。
软件可靠性的基本知识
程序输入空间的元素数量非常庞大,程序运行中 每个元素被选用的概率各不相同,形成一定的概 率分布,我们称此为程序运行剖面,程序的不同 的运行状态,对应于不同的运行剖面。 软件操作剖面:通常是指软件运行的输入空间及 其概率分布。 软件的输入空间是指软件所有可能的输入值构 成的空间。按照欧空局标准的定义,软件的操作 剖面是指“对系统使用条件的定义。即系统的输 入值用其按时间的分布或按它们在可能输入范围 内的出现概率的分布来定义”。
软件缺陷与故障
1、软件缺陷和软件故障案例
案例1 美国迪斯尼公司的狮子王游戏软件bug 兼容性问题 案例2 美国航天局火星登陆事故 系统测试 衔接问题 案例3 跨世纪“千年虫”问题 案例4 爱国者导弹防御系统炸死自家人 系统时钟误差积累 案例5 Windows 2000 中文输入法漏洞 案例6 金山词霸bug
2024版年度质量PPT免费

21
持续改进以提高顾客满意度
1 2
建立持续改进机制 制定持续改进计划,明确改进目标、措施和时间 表,确保持续改进工作的有效实施。
关注行业动态和顾客需求变化 密切关注行业动态和顾客需求变化,及时调整产 品或服务策略,满足不断变化的市场需求。
3
鼓励员工参与改进 鼓励员工积极参与改进工作,提出改进意见和建 议,共同提升顾客满意度。
04
顾客满意度提升策略
Chapter
2024/2/3
18
顾客需求识别与满足途径
2024/2/3
深入了解顾客需求
01
通过市场调研、顾客访谈等方式,全面了解顾客对产品或服务
的需求和期望。
制定针对性策略
02
根据顾客需求,制定满足其需求的产品或服务策略,如定制化
产品、增值服务等。
优化顾客体验
03
从顾客的角度出发,优化产品或服务的流程、界面、交互等,
智能化技术助力决策
人工智能、机器学习等智能化技术将在质量管理中发挥重要作用, 帮助企业实现更精准的决策。
自动化检测与监控
自动化检测和监控技术将得到广泛应用,减少人为干预,提高质量 检测的准确性和效率。
29
绿色环保理念在质量管理中体现
01
环保标准纳入质量体系
企业在质量管理中将更加注重环保标准的遵守和实施,推动绿色生产。
根据数据类型和过程特性, 选择合适的控制图类型, 如均值-极差控制图、单值 -移动极差控制图等。
2024/2/3
控制图绘制与解读
正确绘制控制图,并准确 解读控制图上的异常点、 趋势等信息,及时发现并 处理过程异常。
过程能力分析
利用控制图数据进行过程 能力分析,评估过程的稳 定性和能力水平。
持续改进以提高顾客满意度
1 2
建立持续改进机制 制定持续改进计划,明确改进目标、措施和时间 表,确保持续改进工作的有效实施。
关注行业动态和顾客需求变化 密切关注行业动态和顾客需求变化,及时调整产 品或服务策略,满足不断变化的市场需求。
3
鼓励员工参与改进 鼓励员工积极参与改进工作,提出改进意见和建 议,共同提升顾客满意度。
04
顾客满意度提升策略
Chapter
2024/2/3
18
顾客需求识别与满足途径
2024/2/3
深入了解顾客需求
01
通过市场调研、顾客访谈等方式,全面了解顾客对产品或服务
的需求和期望。
制定针对性策略
02
根据顾客需求,制定满足其需求的产品或服务策略,如定制化
产品、增值服务等。
优化顾客体验
03
从顾客的角度出发,优化产品或服务的流程、界面、交互等,
智能化技术助力决策
人工智能、机器学习等智能化技术将在质量管理中发挥重要作用, 帮助企业实现更精准的决策。
自动化检测与监控
自动化检测和监控技术将得到广泛应用,减少人为干预,提高质量 检测的准确性和效率。
29
绿色环保理念在质量管理中体现
01
环保标准纳入质量体系
企业在质量管理中将更加注重环保标准的遵守和实施,推动绿色生产。
根据数据类型和过程特性, 选择合适的控制图类型, 如均值-极差控制图、单值 -移动极差控制图等。
2024/2/3
控制图绘制与解读
正确绘制控制图,并准确 解读控制图上的异常点、 趋势等信息,及时发现并 处理过程异常。
过程能力分析
利用控制图数据进行过程 能力分析,评估过程的稳 定性和能力水平。
软件质量的概念

计算软件质量要素
软件质量要素Fj的值可用下式计算 L Fj=∑CjkMk j=1,2,...,11. k=1 其中 Mk是软件质量要素Fj对第k种评价准则的测量值 Cjk McCall定义的评价准则多数都没有客观的测量方法, 只能凭主观印象为评价准则定值。 McCall将评价准则分为0--10级。 0级最低,10级最高。 Mk的取值是 0 ,0.1 ,0.2 ,…, 1.0
软件质量的定义
(6)可维护性:当环境改变或软件运行发生故障 时,为了使其恢复正常运行所做努力的程度; (7)可扩充性:在功能改变和扩充情况下,软件 能够正常运行的能力; (8)可移植性:为使一个软件从现有运行平台向 另一个运行平台过度所做努力的程度 (9)重用性:整个软件或其中一部分能作为软件 包而被再利用的程度。
软件质量模型
• 通常,对以上各个质量特性直接进行度量是很困 难的,在有些情况下甚至是不可能的。因此, McCall定义了一组比较容易度量的软件质量要素 评价准则,使用它们对反映质量特性的软件属性 分级,以此来估计软件质量特性的值。 • 定义评价准则的关键是确定影响软件质量要素的 属性。这些属性必须满足 ①比较完整、准确的描述软件质量要素; ②比较容易量化和测量,能够反映软件质量的优 劣。 • McCall定义的软件质量要素评价准则共21种,它 们是:
软件质量的定义
• 2.软件质量特性 软件质量特性,反映了软件的本质。讨论一个软件 的质量,问题最终要归结到定义软件的质量特性。 而定义一个软件的质量,就等价于为该软件定义 一系列质量特性。
软件质量的定义
通常,软件质量可由以下主要特性来定义: (1)功能性:软件所实现的功能达到它的设计规 范和满足用户需求的程度; (2)效率:在规定条件下,用软件实现某种功能 所需的计算机资源(包括时间)的有效程度; (3)可靠性:在满足一定条件的应用环境中,软 件能够正常维持其工作的能力; (4)安全性:为了防止意外或人为的破坏,软件 应具备的自身保护能力能力;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【定义12-3】所谓供方,就是向用户提供产品的组 织。供方有时又称承包方。
通过上述定义,知道了软件质量是什么,以及意味 着什么。在此之前,可能不知道这么多概念,只知道好 的软件的特点是功能强、性能优、易使用、易维护、可 移植、可重用。
什么样的软件是质量好的软件?
事实上,不同的人对软件质量有不同的评价和看法: (1)用户认为,功能、性能、接口满足了需求就是好软件。 (2)营销人员认为,客户群大且能卖个好价钱就是好软件。 (3)管理者认为,软件开发的进度、成本、质量(功能+性
(1) 面向CMM2的KPA“软件质量保证”(SQA: Software Quality Assurance)方法。
(2) 面向CMM3的KPA“同行评审”(PR:Peer Reviews)方法。
(3) 面向CMM4的KPA“软件质量管理”(SQM: Software Quality Management)方法。
可维修性 诊断和改正发现的错误所需的工作量大小。
灵活性 修改或改进系统,需要的工作量多少。
可测试性 系统容易测试的程度。
可移植性 移植到另一种平台中运行所需资源的多少。
可再用性 软件系统的可复用程度。
互运行性 与其他系统集成,所需的工作量多少。
12.2 软件质量保证方法
1. 从四个方面来改进软件质量
结合这三项内容,CMM2的软件质量保证手段主要 有三项:“审计、评审和处理不符合项”。审计是检查 做没做,做了多少,以及按什么标准和规范做的。评审 是检查干得好不好,是否还存在不符合项。处理不符合 项是跟踪纠错过程,直至改正为止。
能+接口)在计划的控制范围内就是好软件。 (4)开发者认为,易维护、可移植、可重用就是好软件。
上述众多观点不无道理,但都是从各自的利益出发的。应当 说上述评价和看法的汇总,才是货真价实的好软件。
2. 质量管理与控制的三个层次
(1) 事先的预防措施:制订软件过程开发规范和软件 产品质量标准,对软件开发和管理人员进行这方面知识 和技能的定向培训;(规范是对行为的约束、标准是对 产品的约束、规程是对操作的约束)
(1) 力图从编程语言上实现突破。已经从机器语言、 汇编语言、面向过程的语言、面向数据的语言,发展到 面向对象、面向构架的语言。
(2) 力图从CASE工具上实现突破。这些工具有: OracleDesigner,PowerDesigner,ERwin,Rose, San Francisco,北大青鸟系统,分行业的业务基础平 台。
(2) 事中的跟踪监控措施:按照CMM/CMMI或 ISO9000的过程管理思想,对软件过程和软件产品的质 量控制提供可视性管理;
(3) 事后的纠错措施:对软件工作产品和软件产品加 强评审和检测。评审是在宏观上框住您,在微观上挑剔 您,找出不符合项。检测是为了发现Bug,改正错误。
结论:软件质量保证措施,应以提前预防和实时跟 踪为主,以事后测试和纠错为辅。
序号 1 2
3
4 5 6 7 8 9 10 11
质量因素
质量因素的定义
正确性 系统满足规格说明书和用户目标的程度。
健壮性 在意外环境或错误操作下,系统做出适当响应的 程度。
完整性 对未经授权的人使用系统的企图,系统能够控制 的程度。
可用性 系统完成预定的功能时,令人满意的程度。
可理解性 系统的理解和使用的容易程度。
(3) 力图从软件过程管上实现突破。如CMMI, ISO9000,微软企业文化,IBM企业文化。
(4) 力图从测试与纠错上实现突破。先后出现了各 种测试方法、工具和纠错手段。
2. CMM改进软件质量的方法
CMM认为:它的18个关键过程域,每一个都跟质量 管理有关,质量管理体现在每一个KPA的验证之中。当 前,针对软件质量进行保证的问题,最有效的办法还是 下面五个方法的汇集:
本章先论述软件质量保证的基本概念和多种方法, 后介绍IT企业软件质量保证文档书写的参考指南。
要求 了解
理解 关注
Hale Waihona Puke 具体内容1) 软件质量及其相关概念的定义 2) 质量管理与控制的三个层次 3) 传统软件工程中质量管理的弱点 4) 同行评审 5) 软件质量保证管理文档
1) 从四个方面来改进软件质量 2) CMM/CMMI改进软件质量的方法 3) 软件组织内部的“七化原则”和“五报一例制
度”
1) CMM2的“软件质量保证SQA”过程 2) 《软件质量保证计划》的编写方法
12.1 软件质量基本概念
1. 软件质量及相关概念的定义
【定义12-1】所谓软件质量,就是供方提供的软件 产品满足用户明确和隐含需求的能力特性的总和。
【定义12-2】所谓软件产品,就是供方交付给用户 使用的一套计算机程序、数据以及相关文档。
欢迎各位同学光临本科生课程
软件工程
刘竹松
第12章 软件质量保证
本章导读
质量保证一直是CMMI和ISO9000的中心议题,是 微软公司和IBM公司的重点课题,同样也是项目管理的 重要内容。
通常,人们将“质量标准、配置管理、测试测量”, 作为质量管理的三大支柱,而将“SQA计划、SQA进 度、SQA评审和审计”,作为质量管理三大要素。
(4) 面向CMM5的KPA“缺陷预防”(DP:Defect Prevention)方法。
(5) 软件质量保证的其他措施。
3. CMM2的“软件质量保证SQA”过程
(1) 首先,通过监控软件的开发过程,来保证产品的 质量;
(2) 其次,保证软件产品及软件开发过程,符合相应 的标准与规程;
(3) 最后,保证软件产品、软件过程中存在的不符合 项问题得到处理,必要时将问题反映给高级管理者。
3. 传统软件工程中质量管理的弱点
在传统《软件工程》中,由于没有完全吸收CMMI 和ISO9000的质量管理思想,因而对软件质量的定义是 较模糊的,如表12-2所示。
按照这些定义,对软件阶段产品和软件最终产品的 测试、评审和评价,也是较模糊的。因为它主要不是根 据《用户需求报告》中,对“功能、性能、接口”的具 体要求,记录并跟踪“不符合项”是否为零,而是考虑 “正确性、健壮性、完整性、可用性、可理解性、可移 植性、灵活性”等抽象指标,往往使测试人员和评审人 员感到有点无所事从。
通过上述定义,知道了软件质量是什么,以及意味 着什么。在此之前,可能不知道这么多概念,只知道好 的软件的特点是功能强、性能优、易使用、易维护、可 移植、可重用。
什么样的软件是质量好的软件?
事实上,不同的人对软件质量有不同的评价和看法: (1)用户认为,功能、性能、接口满足了需求就是好软件。 (2)营销人员认为,客户群大且能卖个好价钱就是好软件。 (3)管理者认为,软件开发的进度、成本、质量(功能+性
(1) 面向CMM2的KPA“软件质量保证”(SQA: Software Quality Assurance)方法。
(2) 面向CMM3的KPA“同行评审”(PR:Peer Reviews)方法。
(3) 面向CMM4的KPA“软件质量管理”(SQM: Software Quality Management)方法。
可维修性 诊断和改正发现的错误所需的工作量大小。
灵活性 修改或改进系统,需要的工作量多少。
可测试性 系统容易测试的程度。
可移植性 移植到另一种平台中运行所需资源的多少。
可再用性 软件系统的可复用程度。
互运行性 与其他系统集成,所需的工作量多少。
12.2 软件质量保证方法
1. 从四个方面来改进软件质量
结合这三项内容,CMM2的软件质量保证手段主要 有三项:“审计、评审和处理不符合项”。审计是检查 做没做,做了多少,以及按什么标准和规范做的。评审 是检查干得好不好,是否还存在不符合项。处理不符合 项是跟踪纠错过程,直至改正为止。
能+接口)在计划的控制范围内就是好软件。 (4)开发者认为,易维护、可移植、可重用就是好软件。
上述众多观点不无道理,但都是从各自的利益出发的。应当 说上述评价和看法的汇总,才是货真价实的好软件。
2. 质量管理与控制的三个层次
(1) 事先的预防措施:制订软件过程开发规范和软件 产品质量标准,对软件开发和管理人员进行这方面知识 和技能的定向培训;(规范是对行为的约束、标准是对 产品的约束、规程是对操作的约束)
(1) 力图从编程语言上实现突破。已经从机器语言、 汇编语言、面向过程的语言、面向数据的语言,发展到 面向对象、面向构架的语言。
(2) 力图从CASE工具上实现突破。这些工具有: OracleDesigner,PowerDesigner,ERwin,Rose, San Francisco,北大青鸟系统,分行业的业务基础平 台。
(2) 事中的跟踪监控措施:按照CMM/CMMI或 ISO9000的过程管理思想,对软件过程和软件产品的质 量控制提供可视性管理;
(3) 事后的纠错措施:对软件工作产品和软件产品加 强评审和检测。评审是在宏观上框住您,在微观上挑剔 您,找出不符合项。检测是为了发现Bug,改正错误。
结论:软件质量保证措施,应以提前预防和实时跟 踪为主,以事后测试和纠错为辅。
序号 1 2
3
4 5 6 7 8 9 10 11
质量因素
质量因素的定义
正确性 系统满足规格说明书和用户目标的程度。
健壮性 在意外环境或错误操作下,系统做出适当响应的 程度。
完整性 对未经授权的人使用系统的企图,系统能够控制 的程度。
可用性 系统完成预定的功能时,令人满意的程度。
可理解性 系统的理解和使用的容易程度。
(3) 力图从软件过程管上实现突破。如CMMI, ISO9000,微软企业文化,IBM企业文化。
(4) 力图从测试与纠错上实现突破。先后出现了各 种测试方法、工具和纠错手段。
2. CMM改进软件质量的方法
CMM认为:它的18个关键过程域,每一个都跟质量 管理有关,质量管理体现在每一个KPA的验证之中。当 前,针对软件质量进行保证的问题,最有效的办法还是 下面五个方法的汇集:
本章先论述软件质量保证的基本概念和多种方法, 后介绍IT企业软件质量保证文档书写的参考指南。
要求 了解
理解 关注
Hale Waihona Puke 具体内容1) 软件质量及其相关概念的定义 2) 质量管理与控制的三个层次 3) 传统软件工程中质量管理的弱点 4) 同行评审 5) 软件质量保证管理文档
1) 从四个方面来改进软件质量 2) CMM/CMMI改进软件质量的方法 3) 软件组织内部的“七化原则”和“五报一例制
度”
1) CMM2的“软件质量保证SQA”过程 2) 《软件质量保证计划》的编写方法
12.1 软件质量基本概念
1. 软件质量及相关概念的定义
【定义12-1】所谓软件质量,就是供方提供的软件 产品满足用户明确和隐含需求的能力特性的总和。
【定义12-2】所谓软件产品,就是供方交付给用户 使用的一套计算机程序、数据以及相关文档。
欢迎各位同学光临本科生课程
软件工程
刘竹松
第12章 软件质量保证
本章导读
质量保证一直是CMMI和ISO9000的中心议题,是 微软公司和IBM公司的重点课题,同样也是项目管理的 重要内容。
通常,人们将“质量标准、配置管理、测试测量”, 作为质量管理的三大支柱,而将“SQA计划、SQA进 度、SQA评审和审计”,作为质量管理三大要素。
(4) 面向CMM5的KPA“缺陷预防”(DP:Defect Prevention)方法。
(5) 软件质量保证的其他措施。
3. CMM2的“软件质量保证SQA”过程
(1) 首先,通过监控软件的开发过程,来保证产品的 质量;
(2) 其次,保证软件产品及软件开发过程,符合相应 的标准与规程;
(3) 最后,保证软件产品、软件过程中存在的不符合 项问题得到处理,必要时将问题反映给高级管理者。
3. 传统软件工程中质量管理的弱点
在传统《软件工程》中,由于没有完全吸收CMMI 和ISO9000的质量管理思想,因而对软件质量的定义是 较模糊的,如表12-2所示。
按照这些定义,对软件阶段产品和软件最终产品的 测试、评审和评价,也是较模糊的。因为它主要不是根 据《用户需求报告》中,对“功能、性能、接口”的具 体要求,记录并跟踪“不符合项”是否为零,而是考虑 “正确性、健壮性、完整性、可用性、可理解性、可移 植性、灵活性”等抽象指标,往往使测试人员和评审人 员感到有点无所事从。