软件测试PPT 第一章 软件测试导论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1.1
软件测试的定义
2.软件测试与软件调试的区别 概念不同:软件测试是一个在可控环境中执 行软件的过程,以验证是否按预期运行。软 件调试是一个分析和定位软件BUG的过程。 作用不同:调试是测试的一个基础,调试支 持测试,但不能完全替代测试。 目的不同:调试使软件能正确运行,而测试 是发现软件中的错误。 对象不同:调试的对象是代码,测试的对象 是开发过程中的所有的产品。
放大n1倍 需求阶段 缺陷 概要设计 阶段缺陷 放大n2倍 详细设计 阶段缺陷 放大n3倍 代码阶段 缺陷
缺陷放大模型
因此,从需求开始,则制定测试计划,坚持软件 开发的阶段性技术评审,才能在开发过程中尽早发现 和预防错误,把出现的错误克服在早期,杜绝隐患, 提高软件质量。
1.1.4
软件测试的原则
2. 不可能完全测试
1.1.3
软件缺陷
2. 软件缺陷外部表现的判断规则
软件未实现产品说明书要求的功能。 软件出现产品说明书指明不会出现的错误。 软件实现超出产品说明书提到的功能。 软件未实现产品说明书虽未明确指出但应该实现 的功能。 软件难以理解,不易使用,运行缓慢或用户认为 不好。 第5条规则是全面的。如果软件测试员发现某些 地方不对劲,无论什么原因,都可认为是缺陷。
对程序完全测试则意味着在测试结束之后,不会 再发现软件错误。但这是不可能的,主要原因有以下 几点: 不可能对程序所有可能输入的响应进行测试。 不可能对程序所有可能执行的路径进行测试。 无法找出所有的设计错误。 不能采用逻辑来证明程序的正确性。
1.1.4
软件测试的原则
如果测试一个计算器程序的功能,需
1.1.3
软件缺陷
4.软件缺陷的级别
致命的:指造成系统或应用程序崩溃、死机、悬挂, 或造成数据丢失、主要功能完全失效等。 严重的:指功能或特性没有实现,主要功能部分丧 失,次要功能完全丧失,或致命的错误声明。 一般的:指虽然不影响系统的基本使用,但没有很 好实现功能,没有达到预期效果。如次要功能丧失,提 示信息不太准确,用户界面差,操作时间长等。 微小的:指对功能几乎没有影响,产品及属性仍可 使用,如有个别错别字、文字排列不整齐等。
1.1.2
软件测试的必要性
用户所说的
1. 为什么要进行软件测试
信息传递的误差
需求分析人员理解的 《系统需求规格说明书》 开发人员理解的
人不是完美的,在设 计和实现时会出错
实际软件
1.1.2 软件测试的必要性
没有软件工程和项目管理概念下,软件开发现象
工程硕士
12
1.1.2
软件测试的必要性
2. 软件缺陷案例
软件缺陷将造成灾难性危害或对用户产生巨大的影响。 2003年,软件问题造成美国东部及加拿大停电,导致 5000万人受影响,3人丧生,60亿美元的损失。 2000年,美国海军飞机控制软件问题导致飞机坠落,4人 丧生。 1997年韩国空难,导致225人丧生(雷达控制软件问题) 2004年,北美银行已新安装的软件的缺陷,使数以百万 计的客户受影响,缺陷修复花费两个星期,造成亿元损失。 2003年,美国专门为学生贷款的公司由于软件出错,错 误计算80万学生的贷款利率,导致800万元的损失„„
1.1.3
软件缺陷
以计算器为例说明判断规则。 若产品说明书声称能够准确无误地进行加、减、乘、除运算,当你按下 (+)键,结果什么反应也没有;根据第1条规则,是一个缺陷。假如得到 错误答案;根据第1条规则,同样是一个缺陷。 若产品说明书声称永远不会崩溃、锁死或者停止反应,当你任意敲键盘 ,计算器停止接受输入。根据第2条规则,是一个缺陷。 若在测试计算器过程中,发现除了加、减、乘、除之外它还可以求平方 根,而产品说明书中没提到该功能。根据第3条规则,是一个缺陷。 若在测试计算器过程中,发现电池电量很少时,会导致计算不正确,但 产品说明书未指出该问题。根据第4条规则,是一个缺陷。 若“=”键布置的位置使其极不好按,或在明亮光下显示屏难以看清 。根据第5条规则,是一个缺陷。
1.1.1
软件测试的定义
3. 软件测试的目的
基于不同的立场,存在两种完全不同的测试目的。 从用户的角度,希望通过软件测试暴露软件中隐藏 的错误和缺陷,以考虑是否接受该产品。 从开发者的角度,希望通过软件测试表明软件产品 中不存在错误,验证软件已正确地实现了用户的要 求,确立对软件质量的信心。 综合明来,测试的目的是通过对软件错误的原因和 分布进行归纳,来发现并排除软件产品的缺陷,对 在需求和设计过程中存在的问题查缺补漏,确保软 件产品的质量。
软件测试
第一章 软件测试导论 第二章 软件测试技术 第三章 软件测试用例的设计方法 第四章 软件测试的过程方法
第一章
1.1 1.2
软件测试导论
软件测试的基本概念 软件测试的依据与人员组织
1.3
1.4
软件测试的生命周期与模型
软件测试计划及其相关文档
1.1
1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7
1.1.3
软件缺陷
3.软件缺陷的种类
从功能表现形式分,软件缺陷有三种类型: 完全没有实现的功能。例如用户要求实现A、B、C 三个功能,但是软件只实现了A、B两个功能。 基本实现了用户需求的功能,运行时出现功能或性 能上的问题。例如满足软件要求,但运行经常报错、 死机,响应时间要求为5秒,实际为10秒。 实现了用户不需要的功能。例如用户要求实现A、B 、C三个功能,实际实现了A、B、C、D四个功能。
1.1.3
软件缺陷
7.软件缺陷的构成 从按软件开发过程来看,ຫໍສະໝຸດ Baidu同阶段的工作 ,导致软件缺陷的差异性很大,如图所示。需 求分析是软件缺陷出现最多的阶段。
图1-1 软件缺陷构成示意图
1.1.4
软件测试的原则
1. 尽早不断地进行软件测试
IBM的研究结果表明,缺陷存在放大趋势。从图可 见,问题发现越早,解决问题的代价就越小,这是软 件开发过程中的黄金法则。
由小到大是指软 件测试的粒度。即多 个单元组合过渡到集 成测试,集成测试过 渡到系统测试。虚线 是测试阶段的发布基 线,随着测试的逐步 深入,范围的逐步扩 大,测试时间、可用 资源也随之增大。
缺陷类型具体可参见软件异常IEEE标准分类(IEEE,1993)
4.
5. 6. 7. 8. 9. 10.
轻微: 中等: 使人不悦: 影响使用: 严重: 非常严重: 极为严重: 无法忍受: 灾难性: 容易传染:
1.1.3
软件缺陷
5. 软件缺陷的状态
为便于跟踪和管理软件的缺陷,可以定义不同的 状态。软件缺陷的状态一般有3种: 激活状态:问题还没有解决,测试人员新报的bug ,或验证后bug仍然存在。 已修正状态:开发人员针对所存在的缺陷,修改 程序,认为问题已解决,或通过单元测试。 关闭或非激活状态:测试人员验证已经修正的bug 后,确认bug不存在后的状态。
1.1.3
软件缺陷
6.软件缺陷产生的原由
造成软件缺陷的原由归纳起来有3个方面: 技术问题 算法错误。 语法错误。 计算方法与精度要求不匹配或取值精度不够。 结构不合理。 接口参数不匹配。
1.1.3
软件缺陷
团队工作问题 与用户的沟通不够,对需求不是十分清楚。 不同阶段的开发人员对同一问题理解不一致。 设计或编程上的假定或依赖性沟通不充分。 软件本身问题 文档错误、内容不正确或拼写错误。 数据考虑不周全,引起强度或负载不合理。 对边界考虑不周全,如漏掉几个边界条件。 实时软件的同步不精确,引起时间不协调、不一致 没有考虑系统崩溃后在安全性、可靠性的隐患。 硬件或系统软件上存在的错误。 软件开发标准或过程上的错误。
软件测试的基本概念
软件测试的定义 软件测试的必要性 软件缺陷 软件测试的原则 软件测试的误区 软件测试与软件质量保证的关系 软件测试技术的发展
1.1
软件测试的基本概念
软件质量是软件的生命。为了保证软件的质 量,人们在长期的软件开发过程中积累了许多 经验,形成了许多有效的方法(技术的和管理 的)。但是借助这些方法,只能减少软件中的 错误和不足,但不能完全避免错误。
1.1.1
软件测试的定义
1. 什么是软件测试 目前,根据侧重点的不同,主要有以下三种观点: 1983年IEEE将软件测试定义为:“使用人工或自动手段运 行或测定某个系统的过程,其目的在于检验它是否满足规定的 需求或弄清预期结果与实际结果之间的差别”。明确地提出了 软件测试是以检验软件是否满足需求为目的。 Myers认为:“是为了发现错误而执行程序的过程”。明 确提出软件测试是以对软件“寻找错误”为目的。 多数软件开发商认为:软件测试是一种重要的软件质量保 证活动,其动机是通过一些经济、高效的方法,捕捉软件中的 错误,保证软件内在质量。明确提出软件测试是以保证软件内 在质量。
技术:软件开发技术, 软件测试属于技术 管理:软件项目管理
软件产品特点:无形性、逻辑性、复杂性, 一般产品质量通过参数确定,软件产品?
1.1.1
软件测试的定义
1. 什么是软件测试 软件测试就是在软件投入运行前,对软件 需求分析、架构设计和编码实现的最终复审, 是软件质量保证的关键。对软件测试的定义很 多,但一般可描述如下: 软件测试是根据软件开发各阶段的规格说 明和程序的内部结构而精心设计一组测试用例, 利用测试用例去运行程序,以发现程序错误的 过程。简言之,软件测试是为了发现错误而执 行程序的过程。
除了这4种之外,有时需要“建议”级别来处理测试人员所提出的建议或 质疑,如建议程序做适当的修改,来改善程序运行状态,或对设计不合理、不明 白的地方提出质疑。
1.1.3
1.
2. 3.
软件缺陷
词语拼写错误 误导或重复信息 被截断的信息,0.00¥帐单 有些交易没有处理 丢失交易 不正确的交易处理 经常出现“非常严重”的错误 数据库破坏 系统停机 扩展到其他系统的系统停机
1.1.1
软件测试的定义
4. 软件测试的基本职责 软件测试有两个基本职责: 一是验证:前后阶段的需求是否一致。即 正向思维,所有特性功能通过,达到预期。 二是确认:满足最终需求。即反向思维, 存在错误而尽力发现错误,直到找不到错误
1.1.2
软件测试的必要性
1. 为什么要进行软件测试 软件由人开发,人会犯错误——〉软件(程 序+数据+文档)都有缺陷。 无法避免人犯错,但是可以通过努力寻找隐 藏在软件中的缺陷。 多、快、好、省 提高软件质量。
要进行多少次输入?
不计其数! 整型: 从 1+1 到 999999999999999999999999999999+ 999999999999999999999999999999
小数:1.0+0.1,1.0+0.2„等等
键盘上的任何一种组合 乘法和除法运算重复上面的操作
1.1.4
软件测试的原则
1.1.3
软件缺陷
还表现在其他方面。如:特性没有实现或部分实
现;设计不合理;实际结果和预期结果不一致;运行 出错(运行中断、系统崩溃、界面混乱);数据结果不 正确、精度不够;用户不能接受的其他问题(存取时间 过长、界面不美观)。
1.1.3
软件缺陷
4.软件缺陷的级别 软件测试员发现的大多数缺陷是难以觉察 的简单错误,不明显,也不严重;且有些是真 正的错误,有些不是。一般来说,问题越严重 的错误,优先级越高,越应得到及时纠正。软 件公司对缺陷后果的严重程度的定义不尽相同, 但一般可以分为4种级别:
1.1.2
软件测试的必要性
3. 软件测试是软件开发的重要环节 4. 软件测试是保证软件质量的主要手段。
1.1.3 软件缺陷
1.软件缺陷的定义
软件缺陷(bug)的定义很多,综合说来是程序 中存在破坏软件正常运行的问题、错误或瑕疵,导致 软件产品在某种程度上不能满足用户的需要。 软件缺陷是指软件产品中所存在的导致不能完全 满足用户需求的错误。 按IEEE 729标准,软件缺陷的含义有2个方面: • 软件产品的内部:软件缺陷是软件产品开发 或维护过程中所存在的错误、瑕疵等。 • 软件产品的外部:软件缺陷是软件所需要实 现的某种功能的失效或违背。