软件质量和测试的背景
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件是开发产生的,而不是用传统方法制 造。
软件不会像硬件一样有磨损。 很多软件不能通过已有构件组装,只能自
己定义。
4
硬件、软件失效曲线图
失效率 失效率
初期失败率
磨损
由于(变更的)副 作用而导致失效率 提高
变更
时间
实际曲线 理想曲线
时间
5
1.1.1 软件分类
当前的计算机软件分为七个大类,使得软 件工程正面临持续的挑战:
前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关 注软件产品的用户,它是通过检查用户使用产品的方式,而导致产 品本身的改进和潜在地改进产品的生产过程。
第4步将管理者的注意从当前的产品上移开并拓宽。作为一个面向 商业的步骤,该步骤通过观察产品的市场用途,来寻找产品在相关 领域中的发展机会。在软件领域,第4步可以被视为一种发现有利 可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。
软件质量保证与测试
第1章 软件质量和测试的背 景
1
内容提要
1.1 软件特征与软件工程
1.1.1
软件分类
1.1.2
层次化软件工程
1.1.3
软件范型的转变
1.1.4
现代软件开发
1.2 软件质量
1.2.1
质量概念
1.2.2
质量运动
1.2.3
பைடு நூலகம்软件质量概念
1.2.4
软件质量评价体系与标准
1.3 软件测试与可靠性概述
1.3.1
软件测试的意义
1.3.2
软件测试的定义
1.3.3
软件测试方法
1.3.4
软件测试自动化
1.3.5
软件缺陷的修复费用
1.4 软件质量保证与测试人才的特点
1.4.1
现代软件研发对软件人才的需求
1.4.2
优秀的软件测试员应具备的素质
1.5 小结
2
1.1 软件特征与软件工程
要理解软件的含义并全面地理解软件工程, 我们首先要明确软件的特征,并据此知道 软件与人类建造的其它事物之间的区别。
IEEE定义对软件的定义如下:
软件是计算机程序、规程以及可能的相关文档 和运行计算机系统需要的数据。软件包含计算 机程序、规程、文档和软件系统运行所必需的 数据四个部分。
3
软件具有与硬件完全不同的特征
8
软件过程、软件方法和软件工具
工具 方法 过程 质量关注点
9
软件工程的视图
抛开要工程化的实体,我们必须先回答下 列问题:
要解决的问题是什么? 要用于解决该问题的实体具有什么特点? 如何实现该实体?其解决方案是怎样的? 如何建造该实体? 采用什么方法去发现该实体设计和建造过程中
产生的错误? 当该实体的用户要求修改、适应和增强时,如
16
1.2.2 质量运动
全面质量管理通常都包括以下4个步骤:
第1步是指一个连续的过程改进系统,其目标在于开发一个看的见 的、可重复的和可度量的软件过程。
第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因 素,并优化这些因素对过程的影响。例如,软件过程可能受到高层 职员流动的影响,而该影响则是公司内部不断重组而引起的。一个 稳定的公司组织会对软件质量的提高带来很大的帮助,所以第2步 可以帮助管理者对公司重组方式提出建议。
面向服务的体系结构SOA (XML,SOAP,HTTP,…)
3
面 构件 向
中间件 (CORBA,J2EE)
单
体 与 对象
消息传递
系
统
80年代 90年代 本世纪初
时间
13
1.1.4 现代软件开发
传统软件开发和现代软件开发 软件团队与软件开发人员的培养
项目经理
软件开发组长 开发人员 开发人员 开发人员 开发人员
17
1.2.3 软件质量概念
IEEE关于软件质量的定义:软件质量是
系统、部件或者过程满足规定需求的程度。 系统、部件或者过程满足顾客或者用户需要或期望的程度。 该定义相对客观,强调了产品(或服务)和客户/社会需求的
一致性。
ANSI关于软件质量的定义:按照ANSI(American National Standards Institute,美国国家标准学会) 在1983年的标准陈述,软件质量定义为“与软件产品满 足规定的和隐含的需求的能力有关的特征和特性的全体”。 具体包括
何支持这些活动?
10
三个阶段
我们可以把与软件工程相关的工作分为三 个阶段,其中的每个阶段能够回答上述的 一个或多个问题:
定义阶段针对“做什么” 开发阶段针对“如何做” 维护阶段针对“改变”
11
补充说明
还有很多保护性活动用来补充说明在软件工程的 一般视图中的各个阶段和相关步骤,这些典型的 贯穿于整个软件过程中的活动包括:
软件项目追踪和控制 正式的技术复审 软件质量保证 软件配置管理 文档的准备和产生 可复用管理 测试 风险管理
12
1.1.3 软件范型的转变
粒度、复杂度
面 向 网 络 语义Web服务 资
源 Web服务
典型的访问方式: 面向语义服务的体系结构SSOA (OWL(-s),SORL,UBL,…)
测试组长 测试人员 测试人员 测试人员 测试人员
产品经理 用户教育人员 可用性工程师
设计师
14
1.2 软件质量
有些软件开发者仍然相信软件质量是在编码之后 才应该开始担心的事情。这是荒谬的,因为软件 质量保证(Software Quality Assurance, SQA)是一种应用于整个软件过程的保护性活 动,它包括:
软件工程:是为了经济地获得可靠的和能在实际机器 上高效运行的软件而建立和使用的好的工程原则。
美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)给出了一个更加综合的定义:
软件工程:(1)将系统化的、规范的、可度量的方法 应用于软件的开发、运行和维护的过程,即将工程化 应用于软件中。(2)(1)中所述方法的研究。
系统软件 应用软件 Web应用软件 工程和科学软件 嵌入式软件 产品线软件 人工智能软件
6
新的挑战也逐渐显现出来
普适计算 网络资源 开源软件 新经济
7
1.1.2 层次化软件工程
Fritz Bauer在NATO(北大西洋公约组织) 会议上给出的定义仍是我们进一步展开讨论的基 础:
一种质量管理方法, 有效的软件工程技术(方法和工具) 在整个软件过程中采用的正式技术复审 一种多层次的测试策略 对软件文档及其修改的控制 保证软件遵从软件开发标准的规程 度量和报告机制
15
1.2.1 质量概念
我们应从以下几个方面考虑软件质量:
软件结构方面 功能与性能方面 开发标准与文档方面
软件不会像硬件一样有磨损。 很多软件不能通过已有构件组装,只能自
己定义。
4
硬件、软件失效曲线图
失效率 失效率
初期失败率
磨损
由于(变更的)副 作用而导致失效率 提高
变更
时间
实际曲线 理想曲线
时间
5
1.1.1 软件分类
当前的计算机软件分为七个大类,使得软 件工程正面临持续的挑战:
前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关 注软件产品的用户,它是通过检查用户使用产品的方式,而导致产 品本身的改进和潜在地改进产品的生产过程。
第4步将管理者的注意从当前的产品上移开并拓宽。作为一个面向 商业的步骤,该步骤通过观察产品的市场用途,来寻找产品在相关 领域中的发展机会。在软件领域,第4步可以被视为一种发现有利 可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。
软件质量保证与测试
第1章 软件质量和测试的背 景
1
内容提要
1.1 软件特征与软件工程
1.1.1
软件分类
1.1.2
层次化软件工程
1.1.3
软件范型的转变
1.1.4
现代软件开发
1.2 软件质量
1.2.1
质量概念
1.2.2
质量运动
1.2.3
பைடு நூலகம்软件质量概念
1.2.4
软件质量评价体系与标准
1.3 软件测试与可靠性概述
1.3.1
软件测试的意义
1.3.2
软件测试的定义
1.3.3
软件测试方法
1.3.4
软件测试自动化
1.3.5
软件缺陷的修复费用
1.4 软件质量保证与测试人才的特点
1.4.1
现代软件研发对软件人才的需求
1.4.2
优秀的软件测试员应具备的素质
1.5 小结
2
1.1 软件特征与软件工程
要理解软件的含义并全面地理解软件工程, 我们首先要明确软件的特征,并据此知道 软件与人类建造的其它事物之间的区别。
IEEE定义对软件的定义如下:
软件是计算机程序、规程以及可能的相关文档 和运行计算机系统需要的数据。软件包含计算 机程序、规程、文档和软件系统运行所必需的 数据四个部分。
3
软件具有与硬件完全不同的特征
8
软件过程、软件方法和软件工具
工具 方法 过程 质量关注点
9
软件工程的视图
抛开要工程化的实体,我们必须先回答下 列问题:
要解决的问题是什么? 要用于解决该问题的实体具有什么特点? 如何实现该实体?其解决方案是怎样的? 如何建造该实体? 采用什么方法去发现该实体设计和建造过程中
产生的错误? 当该实体的用户要求修改、适应和增强时,如
16
1.2.2 质量运动
全面质量管理通常都包括以下4个步骤:
第1步是指一个连续的过程改进系统,其目标在于开发一个看的见 的、可重复的和可度量的软件过程。
第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因 素,并优化这些因素对过程的影响。例如,软件过程可能受到高层 职员流动的影响,而该影响则是公司内部不断重组而引起的。一个 稳定的公司组织会对软件质量的提高带来很大的帮助,所以第2步 可以帮助管理者对公司重组方式提出建议。
面向服务的体系结构SOA (XML,SOAP,HTTP,…)
3
面 构件 向
中间件 (CORBA,J2EE)
单
体 与 对象
消息传递
系
统
80年代 90年代 本世纪初
时间
13
1.1.4 现代软件开发
传统软件开发和现代软件开发 软件团队与软件开发人员的培养
项目经理
软件开发组长 开发人员 开发人员 开发人员 开发人员
17
1.2.3 软件质量概念
IEEE关于软件质量的定义:软件质量是
系统、部件或者过程满足规定需求的程度。 系统、部件或者过程满足顾客或者用户需要或期望的程度。 该定义相对客观,强调了产品(或服务)和客户/社会需求的
一致性。
ANSI关于软件质量的定义:按照ANSI(American National Standards Institute,美国国家标准学会) 在1983年的标准陈述,软件质量定义为“与软件产品满 足规定的和隐含的需求的能力有关的特征和特性的全体”。 具体包括
何支持这些活动?
10
三个阶段
我们可以把与软件工程相关的工作分为三 个阶段,其中的每个阶段能够回答上述的 一个或多个问题:
定义阶段针对“做什么” 开发阶段针对“如何做” 维护阶段针对“改变”
11
补充说明
还有很多保护性活动用来补充说明在软件工程的 一般视图中的各个阶段和相关步骤,这些典型的 贯穿于整个软件过程中的活动包括:
软件项目追踪和控制 正式的技术复审 软件质量保证 软件配置管理 文档的准备和产生 可复用管理 测试 风险管理
12
1.1.3 软件范型的转变
粒度、复杂度
面 向 网 络 语义Web服务 资
源 Web服务
典型的访问方式: 面向语义服务的体系结构SSOA (OWL(-s),SORL,UBL,…)
测试组长 测试人员 测试人员 测试人员 测试人员
产品经理 用户教育人员 可用性工程师
设计师
14
1.2 软件质量
有些软件开发者仍然相信软件质量是在编码之后 才应该开始担心的事情。这是荒谬的,因为软件 质量保证(Software Quality Assurance, SQA)是一种应用于整个软件过程的保护性活 动,它包括:
软件工程:是为了经济地获得可靠的和能在实际机器 上高效运行的软件而建立和使用的好的工程原则。
美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)给出了一个更加综合的定义:
软件工程:(1)将系统化的、规范的、可度量的方法 应用于软件的开发、运行和维护的过程,即将工程化 应用于软件中。(2)(1)中所述方法的研究。
系统软件 应用软件 Web应用软件 工程和科学软件 嵌入式软件 产品线软件 人工智能软件
6
新的挑战也逐渐显现出来
普适计算 网络资源 开源软件 新经济
7
1.1.2 层次化软件工程
Fritz Bauer在NATO(北大西洋公约组织) 会议上给出的定义仍是我们进一步展开讨论的基 础:
一种质量管理方法, 有效的软件工程技术(方法和工具) 在整个软件过程中采用的正式技术复审 一种多层次的测试策略 对软件文档及其修改的控制 保证软件遵从软件开发标准的规程 度量和报告机制
15
1.2.1 质量概念
我们应从以下几个方面考虑软件质量:
软件结构方面 功能与性能方面 开发标准与文档方面