软件质量和测试的背景

上传人:第*** 文档编号:58974706 上传时间:2018-11-03 格式:PPT 页数:28 大小:547KB
返回 下载 相关 举报
软件质量和测试的背景_第1页
第1页 / 共28页
软件质量和测试的背景_第2页
第2页 / 共28页
软件质量和测试的背景_第3页
第3页 / 共28页
软件质量和测试的背景_第4页
第4页 / 共28页
软件质量和测试的背景_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《软件质量和测试的背景》由会员分享,可在线阅读,更多相关《软件质量和测试的背景(28页珍藏版)》请在金锄头文库上搜索。

1、1,第1章 软件测试和软件质量的背景,2,内容提要,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 软件质量评价体系与标准 思考,3,1.1 软件特征与软件工程,要理解软件的含义并全面地理解软件工程,我们首先要明确软件的特征,并据此知道软件与人类建造的其它事物之间的区别。 IEEE定义对软件的定义如下: 软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。软件包含计算机程序、规程、文档和软件系统运

2、行所必需的数据四个部分。,4,软件具有与硬件完全不同的特征,软件是开发产生的,而不是用传统方法制造。 软件不会有像硬件一样的磨损。 很多软件不能通过已有构件组装,只能自己定义。,5,硬件、软件失效曲线图,(浴缸曲线),(锯齿曲线),结论:软件维护比硬件维护更复杂,6,1.1.1 软件分类,当前的计算机软件分为七个大类,使得软件工程正面临持续的挑战: 系统软件 应用软件 Web应用软件 工程和科学软件 嵌入式软件 产品线软件 人工智能软件,7,新的挑战也逐渐显现出来,普适计算 网络资源 开源软件 新经济,普适计算又称普存计算、普及计算(英文中叫做pervasive computing或者Ubiq

3、uitous computing)又称为环境智能,强调和环境融为一体的计算,而计算机本身则从人们的视线里消失。在普适计算的模式下,人们能够在任何时间、任何地点、以任何方式进行信息的获取与处理。 核心理念是小型、便宜、网络化的处理设备广泛分布在日常生活的各个场所,计算设备将不只依赖命令行、图形界面进行人机交互,而更依赖“自然”的交互方式,计算设备的尺寸将缩小到毫米甚至纳米级。,8,新的挑战也逐渐显现出来,普适计算 网络资源 开源软件 新经济,网络资源,是利用计算机系统通过通信设备传播和网络软件管理的信息资源。 与传统的信息资源相比,网络信息资源在数量、结构、分布和传播的范围、载体形态、内涵传递手

4、段等方面都显示出新的特点。 存储数字化,传输网络化 ;表现形式多样化,内容丰富;数量巨大,增长迅速;传播速度快、范围广,具有交互性 ;结构复杂,分布广泛 ;信息源复杂、无序 ;动态不稳定性。,9,新的挑战也逐渐显现出来,普适计算 网络资源 开源软件 新经济,开放源码软件open-source是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。具有质量可靠、透明度高、客户控制软件等优点。互联网的普及,将原来分散开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件从而开源成为了一种趋势。,10,新的挑战也逐渐显现出

5、来,普适计算 网络资源 开源软件 新经济,新经济是指在经济全球化背景下,信息技术(IT)革命以及由信息技术革命带动的、以高新科技产业为龙头的经济。新经济是信息化带来的经济文化成果。 新经济之所以“新”,源于推动其产生与发展的原动力信息、技术革命所具有的全新的革命意义。 同以往的任何一次技术革命不同,信息技术革命改变的不是人类对自然资源的利用方式。,11,1.1.2 层次化软件工程,Fritz Bauer在NATO(北大西洋公约组织)会议上给出的定义仍是我们进一步展开讨论的基础: 软件工程:是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。 美国电气和电子工程师协会

6、(Institute of Electrical and Electronics Engineers,IEEE)给出了一个更加综合的定义: 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。,12,软件过程、软件方法和软件工具,软件工程是一种层次化的技术,以质量保证为基础。 着眼质量的理念促进过程改进,进而有更成熟的方法出现,13,软件工程的视图,抛开要工程化的实体,我们必须先回答下列问题: 要解决的问题是什么?明确问题 要用于解决该问题的实体具有什么特点?需求 如何实现该实体?其解决方案是怎样的?设计 如

7、何建造该实体?开发与实现 采用什么方法去发现该实体设计和建造过程中产生的错误?质量监控 当该实体的用户要求修改、适应和增强时,如何支持这些活动?使用与维护,工程是对技术实体或社会实体的分析、设计、建造、验证和管理。,14,三个阶段,我们可以把与软件工程相关的工作分为三个阶段,其中的每个阶段能够回答上述的一个或多个问题: 定义阶段针对“做什么” 系统或信息工程、软件项目计划、需求分析 开发阶段针对“如何做” 软件设计、代码生成、软件测试 维护阶段针对“改变” 纠错、适应、增强、预防,15,保护性活动,还有很多保护性活动用来补充说明在软件工程的一般视图中的各个阶段和相关步骤,这些典型的贯穿于整个软

8、件过程中的活动包括: 软件项目追踪和控制 正式的技术复审 软件质量保证 软件配置管理 文档的准备和产生 可复用管理 测试 风险管理,16,1.1.3 软件范型的转变,软件范型 (Software Paradigm):软件系统组织与结构设计的工程技术。既可以指软件系统静态的组织与结构模型,也可以指动态的软件系统开发与构造构成模型。,李德毅院士:软件工程学科今后的走向是软件在网络环境下工作、软件工程向需求工程倾斜、软件结构用网络拓扑表示、问题的形式化向着本体描述发展、软件在演化中生长完善。 正在进入面向服务的软件工程时代。,17,18,1.1.4 现代软件开发,传统软件开发和现代软件开发 (有区别

9、:以软件危机为转折点) 软件团队与软件开发人员的培养(微软),19,1.2 软件质量,有些软件开发者仍然相信软件质量是在编码之后才应该开始担心的事情。这是荒谬的,因为软件质量保证(Software Quality Assurance,SQA)是一种应用于整个软件过程的保护性活动,它包括: 一种质量管理方法 有效的软件工程技术(方法和工具) 在整个软件过程中采用的正式技术复审 一种多层次的测试策略 对软件文档及其修改的控制 保证软件遵从软件开发标准的规程 度量和报告机制,20,1.2.1 质量概念,软件质量评价:效率第一转变为清晰第一 我们应从以下几个方面考虑软件质量: 软件结构方面 内部结构清

10、晰、易于阅读,界面友好、方便使用 功能与性能方面 可靠的工作,足够健壮 开发标准与文档方面 遵守开发准则,资料齐全,三个方面相辅相成,但不同人从各自的要求出发,对软件质量标准常有不同的要求。如管理人员,用户,维护人员。 不同类型的软件也会有不同的质量要求。如实时控制软件,MIS。 质量的不同特性可能会矛盾。需要取舍和平衡。,21,1.2.2 质量运动,全面质量管理(Total Quality Management, TQM) 一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意、本组织所有成员及社会收益而达到永续经营的管理途径。,全面质量管理通常都包括以下4个步骤: 第1步是指一个连

11、续的过程改进系统,其目标在于开发一个看的见的、可重复的和可度量的软件过程。 第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因素,并优化这些因素对过程的影响。例如,软件过程可能受到高层职员流动的影响,而该影响则是公司内部不断重组而引起的。一个稳定的公司组织会对软件质量的提高带来很大的帮助,所以第2步可以帮助管理者对公司重组方式提出建议。 前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关注软件产品的用户,它是通过检查用户使用产品的方式,而导致产品本身的改进和潜在地改进产品的生产过程。 第4步将管理者的注意从当前的产品上移开并拓宽。作为一个面向商业的步骤,该步骤通过观察产品的市

12、场用途,来寻找产品在相关领域中的发展机会。在软件领域,第4步可以被视为一种发现有利可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。,22,注意:大多数公司先要做好第一步。没有成熟的软件过程,后面步骤是无意义的。,23,1.2.3 软件质量概念,IEEE关于软件质量的定义:软件质量是 系统、部件或者过程满足规定需求的程度。 系统、部件或者过程满足顾客或者用户需要或期望的程度。 该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。 ANSI关于软件质量的定义:按照ANSI(American National Standards Institute,美国国家标准学会)在1983年

13、的标准陈述,软件质量定义为“与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体”。具体包括 软件产品中能满足用户给定需求的全部特性的集合, 软件具有所期望的各种属性组合的程度, 用户主观得出的软件是否满足其综合期望的程度, 决定所用软件在使用中将满足其综合期望程度的软件合成特性。 强调了软件的特性和特征,与需求的吻合程度以及综合评价值,24,6个主要特征,我们把各类软件综合起来看,可以列出下列6个主要特征: 功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度, 可靠性:软件在指定条件和特定时间段内维持性能的能力程度, 易使用性:用户使用该软件所付出的学习精力, 效率:

14、在指定条件下,软件功能与所占用资源之间的比值, 可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度, 可移植性:将软件从一种环境移入另一种环境的容易程度。,25,其他角度,过程质量 软件产品是如何生产出来的间接地推断软件质量,称为软件的过程质量,可以理解为一个活动序列、和与此相关的输入、输出、约束条件、实现方法、辅助工具等因素共同组成的系统。 用户满意度 软件的产品质量是最终的检验标准,而最终的检验者则是客户。,26,1.2.4 软件质量评价体系与标准,软件质量贯穿整个软件生存周期,涉及软件质量需求、软件质量度量、软件属性检测、软件质量管理技术和过程等。 软件质量保证涉及

15、整个软件开发过程,包括监视和改善过程、确保任何经过认可的标准与步骤均可遵循,并且保证问题被发现和被处理。 IEEE给出软件质量保证的定义,软件质量保证(SQA)是: 一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。 设计用来评价开发或者制造产品的过程的一组活动,与质量控制有区别。 尽局限于开发过程及技术层面,缺少进度和预算有关的活动。,软件质量控制很困难,如何进行质量评估很关键。,27,1.2.4 软件质量评价体系与标准,扩展定义: 软件质量保证是一个有系统的,有计划的行动集合,它是为提供软件产品的软件开发过程与维护过程符合其已经建立的技术需求以及跟上计划安排与在预算限制之内进行的管理上的需求的充分信任所必需的。 软件质量保证由各种任务构成,这些任务分别与两种不同的参与者有关: 一个是技术工作的软件工程师:技术、方法、过程。 另一个是负责软件保证的计划、监督、记录、分析及报告工作的软件质量保证小组。,28,思考,思考一下问题,用自己的语言进行描述。 谈谈自己对软件质量的理解,如何看待软件质量的地位? 怎么理解软件特征? 什么是软件工程?如何理解层次化软件工程? 现代软件开发和传统软件开发有何区别?,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号