{品质管理品质知识}软件质量和测试的背景

上传人:冯** 文档编号:140024203 上传时间:2020-07-26 格式:PPTX 页数:30 大小:1.62MB
返回 下载 相关 举报
{品质管理品质知识}软件质量和测试的背景_第1页
第1页 / 共30页
{品质管理品质知识}软件质量和测试的背景_第2页
第2页 / 共30页
{品质管理品质知识}软件质量和测试的背景_第3页
第3页 / 共30页
{品质管理品质知识}软件质量和测试的背景_第4页
第4页 / 共30页
{品质管理品质知识}软件质量和测试的背景_第5页
第5页 / 共30页
点击查看更多>>
资源描述

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

1、第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软件特征与软件工程,

2、要理解软件的含义并全面地理解软件工程,我们首先要明确软件的特征,并据此知道软件与人类建造的其它事物之间的区别。 IEEE定义对软件的定义如下: 软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。软件包含计算机程序、规程、文档和软件系统运行所必需的数据四个部分。,3,软件具有与硬件完全不同的特征,软件是开发产生的,而不是用传统方法制造。 软件不会像硬件一样有磨损。 很多软件不能通过已有构件组装,只能自己定义。,4,硬件、软件失效曲线图,5,1.1.1软件分类,当前的计算机软件分为七个大类,使得软件工程正面临持续的挑战: 系统软件 应用软件 Web应用软件 工程和科学软件 嵌入式

3、软件 产品线软件 人工智能软件,6,新的挑战也逐渐显现出来,普适计算 网络资源 开源软件 新经济,7,1.1.2层次化软件工程,Fritz Bauer在NATO(北大西洋公约组织)会议上给出的定义仍是我们进一步展开讨论的基础: 软件工程:是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。 美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)给出了一个更加综合的定义: 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(

4、1)中所述方法的研究。,8,软件过程、软件方法和软件工具,9,软件工程的视图,抛开要工程化的实体,我们必须先回答下列问题: 要解决的问题是什么? 要用于解决该问题的实体具有什么特点? 如何实现该实体?其解决方案是怎样的? 如何建造该实体? 采用什么方法去发现该实体设计和建造过程中产生的错误? 当该实体的用户要求修改、适应和增强时,如何支持这些活动?,10,三个阶段,我们可以把与软件工程相关的工作分为三个阶段,其中的每个阶段能够回答上述的一个或多个问题: 定义阶段针对“做什么” 开发阶段针对“如何做” 维护阶段针对“改变”,11,补充说明,还有很多保护性活动用来补充说明在软件工程的一般视图中的各

5、个阶段和相关步骤,这些典型的贯穿于整个软件过程中的活动包括: 软件项目追踪和控制 正式的技术复审 软件质量保证 软件配置管理 文档的准备和产生 可复用管理 测试 风险管理,12,1.1.3软件范型的转变,13,1.1.4现代软件开发,传统软件开发和现代软件开发 软件团队与软件开发人员的培养,14,1.2软件质量,有些软件开发者仍然相信软件质量是在编码之后才应该开始担心的事情。这是荒谬的,因为软件质量保证(Software Quality Assurance,SQA)是一种应用于整个软件过程的保护性活动,它包括: 一种质量管理方法, 有效的软件工程技术(方法和工具) 在整个软件过程中采用的正式技

6、术复审 一种多层次的测试策略 对软件文档及其修改的控制 保证软件遵从软件开发标准的规程 度量和报告机制,15,1.2.1质量概念,我们应从以下几个方面考虑软件质量: 软件结构方面 功能与性能方面 开发标准与文档方面,16,1.2.2质量运动,全面质量管理通常都包括以下4个步骤: 第1步是指一个连续的过程改进系统,其目标在于开发一个看的见的、可重复的和可度量的软件过程。 第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因素,并优化这些因素对过程的影响。例如,软件过程可能受到高层职员流动的影响,而该影响则是公司内部不断重组而引起的。一个稳定的公司组织会对软件质量的提高带来很大的帮助,所以

7、第2步可以帮助管理者对公司重组方式提出建议。 前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关注软件产品的用户,它是通过检查用户使用产品的方式,而导致产品本身的改进和潜在地改进产品的生产过程。 第4步将管理者的注意从当前的产品上移开并拓宽。作为一个面向商业的步骤,该步骤通过观察产品的市场用途,来寻找产品在相关领域中的发展机会。在软件领域,第4步可以被视为一种发现有利可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。,17,1.2.3软件质量概念,IEEE关于软件质量的定义:软件质量是 系统、部件或者过程满足规定需求的程度。 系统、部件或者过程满足顾客或者用户需要或期望的程度。

8、 该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。 ANSI关于软件质量的定义:按照ANSI(American National Standards Institute,美国国家标准学会)在1983年的标准陈述,软件质量定义为“与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体”。具体包括 软件产品中能满足用户给定需求的全部特性的集合, 软件具有所期望的各种属性组合的程度, 用户主观得出的软件是否满足其综合期望的程度, 决定所用软件在使用中将满足其综合期望程度的软件合成特性。,18,6个主要特征,我们把各类软件综合起来看,可以列出下列6个主要特征: 功能性:软件实现的功

9、能达到要求的和隐含的用户需求以及设计规范的程度, 可靠性:软件在指定条件和特定时间段内维持性能的能力程度, 易使用性:用户使用该软件所付出的学习精力, 效率:在指定条件下,软件功能与所占用资源之间的比值, 可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度, 可移植性:将软件从一种环境移入另一种环境的容易程度。,19,1.2.4软件质量评价体系与标准,IEEE给出软件质量保证的定义,软件质量保证(SQA)是: 一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。 设计用来评价开发或者制造产品的过程的一组活动,与质量控制有区别。,20,1

10、.3软件测试与可靠性概述,1.3.1软件测试的意义 迪斯尼狮子王缺陷 英特尔浮点除法缺陷 人造陨石坑缺陷 程序员的千年虫问题 Windows的输入法漏洞 爱国者导弹缺陷,21,1.3.2软件测试的定义,1983年,IEEE在提出的软件测试文档标准(IEEE Standard For Software Test Document),即IEEE 829-1983中对软件测试进行了准确的定义: 软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。 IEEE在1990年颁布的软件工程标准术语集中沿用了这一概念,该概念非常明确的提出了软件

11、测试以检验是否满足需求为目标。 其次,G. J. Myers在其经典论著软件测试的艺术中对软件测试提出如下观点: 测试是程序的执行过程,目的在于发现错误, 一个好的测试用例可以发现至今尚未发现的错误, 一个成功的测试能发现至今未发现的错误。,22,1.3.3软件测试方法,1. 静态方法和动态方法 2. 黑盒测试、白盒测试和灰盒测试 3. 基于软件开发阶段的测试方法 需求测试 单元测试 集成测试 性能测试 压力测试 容量测试 配置测试 回归测试 安装测试 安全性测试,23,1.3.4软件测试自动化,白盒测试工具 功能测试工具 负载压力测试工具 测试管理工具,24,1.3.5软件缺陷的修复费用,2

12、5,1.4软件质量保证与测试人才的特点,1.4.1现代软件研发对软件人才的需求,26,研发方法的差别,27,现代软件研发对软件人才提出的要求,专业基础和创新能力 具备主人翁精神 良好的团队精神 从错误中学习的能力,28,1.4.2优秀的软件测试员应具备的素质,软件测试员是探索者: 软件测试员不会害怕进入陌生环境,他们喜欢拿到新的软件,安装在自己的机器上并观看结果。 软件测试员是故障排除员: 软件测试员善于发现问题的症结,他们喜欢解谜。 软件测试员不放过蛛丝马迹: 软件测试员总在不停地尝试。他们可能会碰到转瞬即逝或者难以证实的软件缺陷,当然,他们不会当作视偶然而轻易放过,而会想尽一切可能去发现它

13、们。 软件测试员具有创造性: 这是对测试是显而易见的。软件测试员的工作是要想出富有创意审视超常的手段来寻找缺陷。 软件测试员是追求完美者: 软件测试员力求完美,但是当知道某些无法企及时,他们不去苛求,而是尽力接近目标。 软件测试员判断准确: 软件测试员要判断测试内容、测试时间、以及看到的问题是否是真正的缺陷。 软件测试员注重策略和外交: 软件测试员常常带来的坏消息。他们必须告诉程序员,你的程序很糟糕。好的软件测试员知道以怎样的策略来沟通这些问题,他们也能够和有时不够冷静的程序员合作。 软件测试员善于说服: 软件测试员找出的缺陷有时会被认为不重要且不用修复。这时测试员要善于清晰地表达自己的观点,

14、说明软件缺陷为何需要修复,并且推进缺陷的修复。,29,1.5小结,从上面讨论的结果可知,软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。 它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。 软件测试是软件质量保证的重要手段之一,它就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。,30,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

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