第1单元 软件测试概述

上传人:我*** 文档编号:137629971 上传时间:2020-07-10 格式:PPT 页数:107 大小:2.56MB
返回 下载 相关 举报
第1单元 软件测试概述_第1页
第1页 / 共107页
第1单元 软件测试概述_第2页
第2页 / 共107页
第1单元 软件测试概述_第3页
第3页 / 共107页
第1单元 软件测试概述_第4页
第4页 / 共107页
第1单元 软件测试概述_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《第1单元 软件测试概述》由会员分享,可在线阅读,更多相关《第1单元 软件测试概述(107页珍藏版)》请在金锄头文库上搜索。

1、第1章 软件测试概述,1.1 软件测试背景 1.2 软件测试基础理论 1.3 软件开发过程 1.4 软件测试过程模型 1.5 基本测试过程 1.6 软件质量保证 1.7 软件测试职业,本章教学目标,正确理解软件测试的背景、软件缺陷和故障的概念 正确理解软件测试的意义 正确理解软件开发过程与软件测试的关系 正确理解软件质量的概念及质量保证体系 了解软件测试职业与素质的要求,1.1 软件测试背景,1.1.1 软件可靠性问题 1.1.2 软件缺陷与故障 1.1.3 软件缺陷产生的原因 1.1.4 软件测试的发展,Return,1.1.1 软件可靠性问题,因软件设计故障与因计算机硬件设计故障而引发的系

2、统 失效的比例大约是:10:1 运行软件的驻留故障密度(每千行代码的故障数目): 要求很高的关键财务或财产软件为:每千行代码 110个故障 关键的生命软件为:每千行代码0.011个故障 IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。 软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一。而软件测试则是保证软件质量、提高软件可靠性的最重要手段。,1.1.2 软件缺陷与故障,1、软件缺陷和软件故障案例 案例1 美国迪斯尼公司的狮子王游戏软件bug 兼容性问题 案例2 美国航天局火星登陆事故 系统测试 衔接问题 案例

3、3 跨世纪“千年虫”问题 案例4 爱国者导弹防御系统炸死自家人 系统时钟误差积累 上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障。,软件缺陷与故障(续),2、软件缺陷的定义 (1)软件未达到产品说明书中已经标明的功能; (2)软件出现了产品说明书中指明不会出现的错误; (3)软件未达到产品说明书中虽未指出但应当达到的目标; (4)软件功能超出了产品说明书中指明的范围; (5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 举例:计算器内的嵌入式软件,例:针对Simplex HR的客户反馈,“我们已在人力资源部使用Simplex HR软件大

4、约3年,从来没有发生过软件失效。” “两个月前我开始使用Simplex HR,我们有许多失效,因此正在考虑换掉这个软件包。” “我们已经使用Simplex HR软件4年了,在此期间我们曾非常满意,直到前几个月突然遇到若干严重的软件失效。销售该软件包的那个公司的支持中心说:他们为使用Simplex HR的大约700位顾客提供服务,但从来没有遇到我们遇到的这种类型的失效。” 问题:对同一个软件包,用户经历的失效可能这样不同吗?一个软件包为一个机构长期成功地服务,可能“突然”改变它的本性(质量)变得“有毛病”吗?,软件缺陷与故障(续),3、软件缺陷的特征 “看不到” 软件的特殊性决定了缺陷不易看到

5、“看到但是抓不到” 发现了缺陷,但不易找到问题发生的原因所在 缺陷屏蔽(defect masking):一个故障会被应用程序其他部分的某个或某些故障所掩盖,这种现象称为缺陷屏蔽。,软件缺陷与故障(续),4、相关术语 (1)软件错误(software error) 是指由于系统分析员、程序员或软件开发组其他成员造成的语法、逻辑或其他错误,部分或全部不正确的代码段。 (2)软件故障(software fault) 也称软件缺陷(software defect/bug),是在特定应用期间导致软件不正确功能的软件错误。,软件缺陷与故障(续),(3)软件失效(software failure) 当存在缺

6、陷的代码被执行时,系统就可能无法实现期望的功能(或实现了未期望的功能),从而引起软件失效。虽然软件、系统或文档中的缺陷可能会引起失效,但并不是所有缺陷都会这样。 失效也可能是由于环境条件引起的:辐射、电磁场和污染等都有可能引起硬件的故障,或者由于硬件环境的改变而影响软件的执行。因此,任何软件失效的根本原因是软件错误。,软件错误、软件故障和软件失效的关系,1.1.3 软件缺陷产生的原因,用户需求定义错误 需求解释错误 需求记录错误 设计说明有误 编码说明有误 程序代码有误 数据输入有误 测试错误 问题修改不正确 由于其他缺陷而产生,软件缺陷产生的原因(续),图1-1 用户需求与实际软件的差异,软

7、件缺陷产生的原因(续),信息传递的误差: 用户想要的 用户所说的 需求分析人员理解的 系统需求规格说明书 开发人员理解的 实际软件,软件缺陷产生的原因(续),图1-2 软件缺陷产生的原因分布,Return,1.1.4 软件测试的发展,软件调试:软件测试的原始阶段 独立的软件测试:20世纪60年代后 无方法论 软件测试首次定义:1973年 Bill Hetzel 软件测试成为专门学科:1982年首次召开正式会议 1983年IEEE组织对软件测试做出定义 开发与测试的融合:20世纪90年代后 软件开发与 测试界限变得模糊 测试驱动开发TDD 软件测试的发展趋势:软件测试领域的变化 基于 模型的软件

8、测试技术,思 考,软件测试人员面试题目(微软): 对于一台榨汁机的需求阶段,需求还没有整理出来,测试人员先行介入,测试人员应该从哪些方面着手测试工作?,面试题目参考答案,1、 榨汁机可以榨汁的水果/蔬菜等被榨产品类型 2、 榨汁机的工作效率 3、 榨汁后得到的榨汁的效果 4、 榨汁机的额定功率/刀片的旋转速度 5、 榨汁机的破坏性测试,比如放入一些坚硬的被榨对象 6、 榨汁机的易用性 7、 榨汁机的可维护性,比如,榨汁机是否方便清洗 8、 榨汁机的使用寿命,包括每种具体的刀片的使用寿命和整机的使用寿命 9、 榨汁机的容量测试 10、 榨汁机的噪声 11、 榨汁机的耗电量 12、 榨汁机的使用安

9、全性测试 13、 在电压过高或过低的状态能否正常使用榨汁机,作 业,描述2-3个你所知道软件缺陷或软件故障的案例。 针对你的手机写一份测试方案(即:你要从哪些方面测试你的手机)。,1.2 软件测试基础理论,1.2.1 软件测试的定义与基本问题 1.2.2 软件测试的基本理论 1.2.3 软件测试和缺陷修复的代价 1.2.4 软件测试技术概要,Return,1.2.1 软件测试的定义,1、软件测试的定义 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述: 定义1:软件测试是为了发现错误而执行程序的过程。 定

10、义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。,软件测试的定义(续),测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。 测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。 测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。,软件测试的定义(续)

11、,2、软件测试的基本问题 明确测试根本目的: 保证软件的质量 确认测试的对象: 软件测试不仅仅是对程序的测试,而且贯穿于软件定义和开发的整个过程。 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。,软件测试的定义(续),2、软件测试的基本问题(续) 建立测试生命周期:软件测试生命周期也包含在软件生命周期之中,软件从开发设计、运行、直到结束使用的全生命周期中,主要横跨两个测试历程。 (1)软件生产阶段的测试活动 (2)软件运行维护阶段的测试活动 制定和实施测试策略: (1)WHO: 谁执行测试 (2)WHAT: 测试什么 (3)WHEN: 什么

12、时候测试 (4)HOW: 怎样做测试,1.2.2 软件测试的基本理论,1、软件测试的目的 (1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。 (2)检查系统是否满足需求也是测试的期望目标。 (3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。 注意:测试无法说明错误不存在,只能说明软件错误已出现。,1.2.2 软件测试的基本理论,1.2.2 软件测试的基本理论,1、软件测试的目的(来自软件评测师教程),软件测试的基本理论(续),2、软件测试的原则 (1)尽早地和及时地测试; (2)测试用例应当由测试数据和与之对应的预期结

13、果这两部分组成; (3)在程序提交测试后,应当由专门的测试人员进行测试; (4)测试用例应包括合理的输入条件和不合理的输入条件; (5)严格执行测试计划,排除测试的随意性; (6)充分注意测试当中的群体现象; (7)应对每一个测试结果做全面的检查; (8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。,软件测试的基本理论(续),2、软件测试的原则(来自软件评测师教程) (1)所有的软件测试都应追溯到用户需求。 (2)应当把“尽早的和不断的进行软件测试”作为软件测试者的座右铭。 (3)完全测试是不可能的,测试需要终止。 (4)测试无法显示软件潜在的缺陷。 (5)充分注

14、意测试中的群集现象。 (6)程序员应避免检查自己的程序。 (7)尽量避免测试的随意性。,软件测试的基本理论(续),3、软件测试的分类 软件测试按照不同的划分方法,有不同的分类: 按照开发阶段划分:单元测试、集成测试、确认测试、系统测试和验收测试 按照测试技术划分:白盒测试、黑盒测试、灰盒测试 按照测试实施组织划分:开发方测试(测试)、用户测试(测试)、第三方测试(独立测试),软件测试的基本理论(续),4、测试信息流程 测试信息流程如图1-3所示。测试过程中需要三类输入:软件配置、测试配置和测试工具。,图1-3 测试信息流程,软件测试的基本理论(续),5、软件测试的周期性 软件测试的周期性是“测

15、试-改错-再测试-再改错”这样一个循环过程,如下图1-4所示。,图1-4 软件测试的周期性,软件测试的基本理论(续),6、测试停止的依据(标准) 第一类标准:测试超过了预定时间,则停止测试。 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。 第五类标准:根据单位时间内查出故障的数量决定是否停止测试。,1.2.3 软件测试和缺陷修复的代价,软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随

16、着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。,图1-5 软件缺陷在不同阶段发现时修复的费用示意图,1.2.4 软件测试技术概要,软件测试策略:指测试将按照什么样的思路和方式进行。通常,软件测试策略要确定测试组织、测试策划、测试过程(测试部署)、测试管理等重大问题,以及这些环节、过程及步骤如何实现,将采用何种措施来保证等。 软件测试技术: (1)白盒测试和黑盒测试 (2)静态测试和动态测试 (3)手工测试和自动化测试 (4)传统测试方法和面向对象测试的方法 (5)单元测试、集成测试、系统测试和验收测试 (6)特定环境及应用的测试,软件测试技术概要(续),软件测试技术的发展趋势: (1)验证技术 (2)静态测试分析技术 (3)测试数据的自动生成和选择:主要对测试用例进行选择 通常从下面几个方面评价测试用例的质量: 检测软件缺陷的有效性、测试用例的可重用性、测试用例的经济性、测试用例的可维护性 (4)集成化测试:研究如何实现软件测试的自动化过程以及相关的一系列内容。,Return,1.3 软件开发过程,1.

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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