《软件测试实例》PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/5/9 33
这个故事重要的不是软件缺陷,而是Intel处 理问题的方式: • 他们的软件测试工程师在内部测试时已经发 现了这个问题。管理层认为这没有严重到要 必须修正。 • 软件缺陷被发现后,Intel试图掩盖问题的严 重性。
2019/5/9
6
爱国者导弹防御系统,1991
海湾战争时,一枚爱国者导弹在沙特的多哈 击毙28名美国士兵。分析专家发现症结在 于一个软件缺陷。一个很小的系统时钟错误, 累积起来造成跟踪系统失去准确度。
长期的统计表明:
软件缺陷根源分布 其他 3% 编写代码 16% 设计 29% 编制说明 书 52% 编制说明书 设计 编写代码 其他
2019/5/9
23
1.3为什么会出现软件缺陷
罪魁祸首 第二大来源 第三大来源 其它来源
2019/5/9
24
软件缺陷的罪魁祸首
:产品规格说明书 原因:需求不清 需求错误 表达错误或歧义 需求变化 …
设计
编码
开发测试 系统测试 实际运行
2019/5/9
32
尽早消除软件缺陷的价值
缺陷发现越晚,纠正费用越高
来自上个步骤的缺陷 放大了的缺陷,1:X 本步骤新产生的缺陷 缺陷检测 有效性 百分比 传给下个步骤 的缺陷
来自上个步骤 的缺陷
缺陷数量的放大
每个进入下个步骤的缺陷都可能引起 下个步骤中的多个缺陷,导致消缺成 本的剧增。
19
2019/5/9
基础概念
语法错误


软件产品是通过某种描述语言表达的结 果,如通过UML描述的设计,通过Java 描述的程序等。错误地使用了这些语言 或违背了这些语言的标准,则称为语法 错误。 根据软件缺陷分布统计,代码错误占整 个缺陷的7%。
20
2019/5/9
基础概念
功能缺陷

有些功能在通常情况下(甚至在大部分 绝大部分情况下)都可以正常运行,但 在一些特定条件下,则会出现异常,甚 至会引起系统崩溃或严重的安全问题, 例如缓冲区溢出。
看不到(不可预知) 看到但是抓不到
2019/5/9
31
1.4软件缺陷的修复费用
缺陷发现越 晚,纠正费 用越高。呈 几何数级增 长。
资料来源:Boehm, IBM, 1981 1000 100 10倍 10 3 ~6 倍 1倍 40~1000倍 30~70倍
消除一个缺陷 的相对成本 15~40倍
1
需求分析
2019/5/9 4
Intel浮点除法软件缺陷,1994
事情越闹越大。 最终,Intel为自己处理软件缺陷的行为道歉 并支付4亿美金来更换芯片。 现在,Intel在Web站点上报告已发现的问题, 并认真查看客户的反馈意见。 类似事件,通用汽车…
2019/5/9
5
Intel浮点除法软件缺陷,1994
2019/5/9
21
典型的缺陷类型
从产生缺陷的原因上分, 典型的缺陷类型

需求解释有错误 用户定义错了需求 需求记录错误 设计说明有误 编码说明有误 程序代码有误 数据输入有误 测试错误 问题修改不正确 正确的结果是由于其它的缺陷产生的
22
2019/5/9
软件缺陷根源统计
2019/5/9
18
基础概念
语义错误



软件是需求驱动的一系列变换过程的输出。如 果在变换过程中,对输入理解错误,则会产生 错误的输出,这类错误称之为语义错误。 语义错误是一种偏离错误,如需求定义偏离了 用户需求,设计偏离了需求定义等。偏离既包 括正偏离(超出需求)也包括负偏离(不满足 需求)。 根据软件缺陷分布统计,需求定义错误和设计 错误分别占整个缺陷的56%和27%。
2019/5/9
7
千年虫,大约1974
据估计,世界各地检查2000年兼容问题、解 决2000年计算错误花费了数百亿美元。
2019/5/9
8
千年虫,大约1974
20世纪70年代,当时的计算机存储空间很小, 为了节省存储空间,很多系统采用了一个方 法,把4位数日期缩减为2位数,例如, 197373。也有人知道,采用这种方案, 到2000年时程序的日期计算会出问题,但 大家都认为那是遥远的未来。 然而,这一天毕竟是要到来的。
2019/5/9
9
1.2软件缺陷是什么

什么是“软件缺陷”,或“软件错误”?


“软件错误”这一术语,在没有特别加以说 明的情况下,这是一个泛用的、模糊的概念。 它指的可能是bug、 fault、error、failure、 crash(重大事故)、problem(疑问)等
2019/5/9
10
描述软件缺陷的术语
29
2019/5/9
软件缺陷引入阶段统计 Nhomakorabea许多缺陷是在早期阶段引入的
交付后的缺陷分布
文档 5% 改错 10% 需求 15%
编码 30% 设计 40%

资料来源: Applied Software Measurement, Capers Jones
2019/5/9 30
为什么缺陷很难被找出?

游戏继续-同舟共济

世界末日到了 报纸
2019/5/9
1
1.1臭名昭著的软件错误案例
• 计算机的发展史
• 软件的发展史
• 软件是人编写的--所以不完美
2019/5/9
2
Intel浮点除法软件缺陷,1994
让你的计算机做以下算式: (4195835/3145727)*3145727-4195835 答案?
2019/5/9 12
这么多描述软件缺陷的术语?
Why? 公司的文化 开发小组的个性 他们怎样形容自身的软件问题
测试人员有必要了解与己合作的开发小组的 个性。
2019/5/9 13
产品需求规格说明书
产品需求规格说明书:也称产品规格说明书, 软件开发小组的依据。也是系统测试的依据。 其内容涉及: 产品的功能 产品的性能 产品的限制或应用范围 可靠性、可用性、可测试性等等。
测试错误。实际工作中上报的缺陷中有少部 分是测试错误,属错报。这也是正常的。
2019/5/9
28
易导致缺陷的“测试原因”


测试目标定义错误 在开发生命周期中,错误的选择了测试介入 时期 选择了低效的测试技术 测试人员专业知识培训不够,工作低效 计划不够详细,测试的随意性很大 测试人员同开发人员沟通困难
2019/5/9
16
举例:计算器
Senario: 1+2=5 死机或崩溃 一些“后门” 电池电力不足时计算错误 按键位置安排不好
2019/5/9
17
基础概念
软件缺陷:正式定义与分类

软件产品中违背了软件产品需求的实现, 则称为软件缺陷。 软件缺陷从应用意义上可分为三类:

语义错误 语法错误 功能缺陷
2019/5/9
14
软件缺陷:定义
软件缺陷符合下列5个规则之一:
1. 软件未达到产品规格说明书定义的功能。 2. 软件出现了产品规格说明书指明不会出现 的错误。 3. 软件功能超出了产品规格说明书指明的范 围。
2019/5/9
15
软件缺陷:定义
4. 软件未达到产品规格说明书虽未指出但应 达到的目标。 5. 软件测试员或用户认为软件不好或不便之 处。(全面客观、合情合理)
2019/5/9
25
软件缺陷的第二大来源
:设计方案 原因: 设计粗糙 设计缺陷 表达不清、歧义 设计技术不成熟 …
2019/5/9 26
软件缺陷的第三大来源
:代码错误 原因: 软件的复杂性 说明文档不足 编程风格、可维护性 低级错误

2019/5/9 27
其它原因
进度压力 资源不足 采用的技术成熟度 人员技术力 …
2019/5/9
3
Intel浮点除法软件缺陷,1994
1994年12月,Virginia州Lynchburg University Dr. Thomas R.Nicely在Pentium PC上做除法 实验时发现了异常,他把发现的这个问题放 到了Internet,引发了一场风暴。 万幸的是,这种情况很少出现,仅在进行精 度很高的数学、科学和工程计算时才导致错 误。大多数的财务、商务应用用户根本不会 遇到此类问题。
描述软件缺陷的术语: Defect 缺陷 Variance 偏差 Fault 故障 Problem 问题 Failure 失效 Error 错误 Bug 臭虫 Anomaly 异常
对于测试人员来说,任何和所期望的偏 差都应该上报。
2019/5/9 11
有关缺陷的几个概念
1) 错误(error):指在软件开发过程中出现的 不希望或不能接受的人为差错。 2) 缺陷(defect):软件缺陷是指存在于软件 (文档、数据、程序)之中的那些不希望或 不可接受的偏差。 3) 故障(fault):故障指软件的计算或判决与 规定的不符合,使软件或其组成部分丧失了 在规定的限度内执行所要求的功能的能力。 4) 失效(failure):失效指软件故障使软件不 能完成规定功能。
相关文档
最新文档