您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第1单元 软件测试概述
AFreesamplebackgroundfrom章软件测试概述本章教学目标正确理解软件测试的背景、软件缺陷和故障的概念正确理解软件测试的意义正确理解软件开发过程与软件测试的关系正确理解软件质量的概念及质量保证体系了解软件测试职业与素质的要求AFreesamplebackgroundfrom软件可靠性问题因软件设计故障与因计算机硬件设计故障而引发的系统失效的比例大约是:10:1运行软件的驻留故障密度(每千行代码的故障数目):——要求很高的关键财务或财产软件为:每千行代码1~10个故障——关键的生命软件为:每千行代码0.01~1个故障IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。而软件测试则是保证软件质量、提高软件可靠性的最重要手段。AFreesamplebackgroundfrom、软件缺陷和软件故障案例案例1美国迪斯尼公司的狮子王游戏软件bug兼容性问题案例2美国航天局火星登陆事故系统测试衔接问题案例3跨世纪“千年虫”问题案例4爱国者导弹防御系统炸死自家人系统时钟误差积累上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障。AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)2、软件缺陷的定义(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。举例:计算器内的嵌入式软件AFreesamplebackgroundfrom章软件测试概述例:针对SimplexHR的客户反馈“我们已在人力资源部使用SimplexHR软件大约3年,从来没有发生过软件失效。”“两个月前我开始使用SimplexHR,我们有许多失效,因此正在考虑换掉这个软件包。”“我们已经使用SimplexHR软件4年了,在此期间我们曾非常满意,直到前几个月突然遇到若干严重的软件失效。销售该软件包的那个公司的支持中心说:他们为使用SimplexHR的大约700位顾客提供服务,但从来没有遇到我们遇到的这种类型的失效。”问题:对同一个软件包,用户经历的失效可能这样不同吗?一个软件包为一个机构长期成功地服务,可能“突然”改变它的本性(质量)变得“有毛病”吗?AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)3、软件缺陷的特征“看不到”——软件的特殊性决定了缺陷不易看到“看到但是抓不到”——发现了缺陷,但不易找到问题发生的原因所在缺陷屏蔽(defectmasking):一个故障会被应用程序其他部分的某个或某些故障所掩盖,这种现象称为缺陷屏蔽。AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)4、相关术语(1)软件错误(softwareerror)是指由于系统分析员、程序员或软件开发组其他成员造成的语法、逻辑或其他错误,部分或全部不正确的代码段。(2)软件故障(softwarefault)也称软件缺陷(softwaredefect/bug),是在特定应用期间导致软件不正确功能的软件错误。AFreesamplebackgroundfrom章软件测试概述软件缺陷与故障(续)(3)软件失效(softwarefailure)当存在缺陷的代码被执行时,系统就可能无法实现期望的功能(或实现了未期望的功能),从而引起软件失效。虽然软件、系统或文档中的缺陷可能会引起失效,但并不是所有缺陷都会这样。失效也可能是由于环境条件引起的:辐射、电磁场和污染等都有可能引起硬件的故障,或者由于硬件环境的改变而影响软件的执行。因此,任何软件失效的根本原因是软件错误。软件开发过程软件故障软件失效软件错误软件错误、软件故障和软件失效的关系AFreesamplebackgroundfrom软件缺陷产生的原因用户需求定义错误需求解释错误需求记录错误设计说明有误编码说明有误程序代码有误数据输入有误测试错误问题修改不正确由于其他缺陷而产生AFreesamplebackgroundfrom章软件测试概述软件缺陷产生的原因(续)图1-1用户需求与实际软件的差异AFreesamplebackgroundfrom章软件测试概述软件缺陷产生的原因(续)信息传递的误差:用户想要的用户所说的需求分析人员理解的《系统需求规格说明书》开发人员理解的实际软件AFreesamplebackgroundfrom章软件测试概述软件缺陷产生的原因(续)图1-2软件缺陷产生的原因分布其他10%软件产品说明书(需求)56%编写代码7%设计27%ReturnAFreesamplebackgroundfrom软件测试的发展软件调试:软件测试的原始阶段独立的软件测试:20世纪60年代后无方法论软件测试首次定义:1973年BillHetzel软件测试成为专门学科:1982年首次召开正式会议1983年IEEE组织对软件测试做出定义开发与测试的融合:20世纪90年代后软件开发与测试界限变得模糊测试驱动开发TDD软件测试的发展趋势:软件测试领域的变化基于模型的软件测试技术AFreesamplebackgroundfrom章软件测试概述思考软件测试人员面试题目(微软):对于一台榨汁机的需求阶段,需求还没有整理出来,测试人员先行介入,测试人员应该从哪些方面着手测试工作?AFreesamplebackgroundfrom章软件测试概述作业描述2-3个你所知道软件缺陷或软件故障的案例。针对你的手机写一份测试方案(即:你要从哪些方面测试你的手机)。AFreesamplebackgroundfrom、软件测试的定义软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:定义1:软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)2、软件测试的基本问题明确测试根本目的:——保证软件的质量确认测试的对象:——软件测试不仅仅是对程序的测试,而且贯穿于软件定义和开发的整个过程。——软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。AFreesamplebackgroundfrom章软件测试概述软件测试的定义(续)2、软件测试的基本问题(续)建立测试生命周期:软件测试生命周期也包含在软件生命周期之中,软件从开发设计、运行、直到结束使用的全生命周期中,主要横跨两个测试历程。(1)软件生产阶段的测试活动(2)软件运行维护阶段的测试活动制定和实施测试策略:(1)WHO:谁执行测试(2)WHAT:测试什么(3)WHEN:什么时候测试(4)HOW:怎样做测试AFreesamplebackgroundfrom、软件测试的目的(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。(2)检查系统是否满足需求也是测试的期望目标。(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。注意:测试无法说明错误不存在,只能说明软件错误已出现。AFreesamplebackgroundfrom、软件测试的目的(来自《软件评测师教程》)AFreesamplebackgroundfrom
本文标题:第1单元 软件测试概述
链接地址:https://www.777doc.com/doc-3815678 .html