Ch3软件测试基础知识ppt课件

上传人:我*** 文档编号:148516873 上传时间:2020-10-20 格式:PPT 页数:117 大小:297.50KB
返回 下载 相关 举报
Ch3软件测试基础知识ppt课件_第1页
第1页 / 共117页
Ch3软件测试基础知识ppt课件_第2页
第2页 / 共117页
Ch3软件测试基础知识ppt课件_第3页
第3页 / 共117页
Ch3软件测试基础知识ppt课件_第4页
第4页 / 共117页
Ch3软件测试基础知识ppt课件_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《Ch3软件测试基础知识ppt课件》由会员分享,可在线阅读,更多相关《Ch3软件测试基础知识ppt课件(117页珍藏版)》请在金锄头文库上搜索。

1、2020/10/20,1,Part One 软件测试基础,Chapter 3 软件测试基础知识,2020/10/20,2,软件测试基础知识,内容概要: 序言 软件测试定义 软件测试目的 对软件测试的认识 软件测试理论 软件测试原则 软件测试的分类 软件测试的术语和定义 其它,2020/10/20,3,3.1序言,困惑: 软件测试可以说是一个非常令人捉摸不定的领域。“应该怎样对我们的产品进行测试?”和“怎样才算对产品进行了足够的测试?”等问题,对于不同企业的不同类产品、同一企业的不同类产品、或不同企业的同一类产品, 实际操作上都会有很大的不同。,2020/10/20,4,软件过程现状,实际项目中

2、,看不到完全符合客户需求的产品需求规格说明书。 客户需求不断变化。 代码频繁更改。 资源有限,进度逼人 理想的软件过程只是追求的目标。测试人员应该面对现实。,2020/10/20,5,软件测试现状,软件测试的技术和方法多年以来并没有取得令人振奋的进展。软件测试的效果主要还是依赖于测试人员的经验。,2020/10/20,6,对软件测试的认识的发展,测试=调试 测试是证明软件正确 测试是发现软件中的错误 测试是减小软件不工作的风险 测试是一种认识上的训练,2020/10/20,7,关于软件测试的讨论,这个软件已经经过了测试。 这个软件已经经过了严格的测试。 这个软件通过了测试。,STE概述,202

3、0/10/20,8,软件测试的发展,二十世纪70年代以前 Ad-hoc testing,指的是测试者想到哪测到哪,没有周密的测试计划和过程,没有测试文档,测试不能复用,与调试没有区分。 70年代末80年代中期 测试基础理论和实用技术形成,测试作为软件质量保证(SQA)的主要职能。,2020/10/20,9,软件测试的发展,80年代末90年代中期 测试工具在质量和数量上不断增长,测试与SQA分离,SQA注重于过程和质量监督,专职测试岗位产生。并且注重工具对测试效率的影响,测试自动化开始广泛应用。 90年代后期 关注有效的过程管理对于软件测试的重要性,形成各种测试模型、测试能力成熟度模型。,202

4、0/10/20,10,软件测试的发展,二十一世纪初 软件测试的重要性越来越被人们接受,甚至出现了软件开发活动应以测试为主导的思潮,如XP方法。而且,随着软件测试分工的细化和成熟,软件企业注重于自身核心竞争力的提升,促使大量的独立软件测试服务机构涌现出来。这些测试服务机构运作机制日趋成熟,从单一的第三方认证评测,逐步转向参与整个软件开发过程的测试服务,并按照软件领域形成市场细分,已经形成一个成熟和广阔的市场区间。,2020/10/20,11,软件测试的发展,官方软件评测机构 软件工程师资格认证 专业软件测试企业 专门的软件测试课程 专门的软件测试学位(不远的将来),2020/10/20,12,4

5、.2软件测试定义,曾有的定义: 软件测试是为了发现错误而执行程序的过程。 软件测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。,2020/10/20,13,软件测试的定义(推荐),【国家标准GBT 114571995 】 由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间的差别。 【ISO/IEC2号导则】 测试是指由给定产品、过程或按照规定的规程服务的一个或多个特性的测定组成的技术操作。,2020/10/20,14,软件测试定义(

6、推荐),【 IEEE/ANSI, std829-1983 】 对软件进行分析,找出其现有状况与要求状况之间的差异。,基础概念,2020/10/20,15,关于软件测试的著名论点,关于软件测试的著名论点 Grenford J. Myers: 测试是为了发现错误而执行程序的过程 一个好的测试是指很可能找到尚未发现的错误的测试 一个成功的测试是指发现了至今未发现的错误的测试 Hetzel: 软件测试是对软件建立信心的过程 测试是评估软件或系统的品质或能力的一种积极的行为 测试是对软件质量的度量,2020/10/20,16,4.3软件测试目的,Grenford J. Myers关于软件测试的著名论点:

7、 测试是程序的执行过程,目的在于发现错误; 一个好的测试用例在于能够发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。,2020/10/20,17,软件测试目的,个人认为这是一种比较狭窄的观点。,2020/10/20,18,软件测试目的,一个被人忽略的软件测试目的是:测试可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行改进。 测试并不仅仅是为了要找出错误。,2020/10/20,19,软件测试目的,通过分析错误产生的原因, 分析错误产生于哪一个开发阶段、而又在哪一个阶段被发现,我们可以判断从错误的产生到错误的发现,跨越了多少个开发阶段。 一个错误能够超越本开发阶段而

8、不被发现,就指明了该开发阶段的检测手段有缺陷,从而有针对性地制定出加强的措施与办法。这也就是软件过程改进的一项重要内容。,2020/10/20,20,对软件测试目的理解,以最少时间和最小代价,发现最多数量的错误。 测试具有发现错误的能力,但不能说明软件中不存在错误,恰恰相反,测试只能证明软件中存在错误。 测试可以减少软件中的错误。 测试过程中的数据和测试结果,可以为软件质量的评价提供依据,可以得到软件性能指标。 对测试而言,困难和挑战在于无法预知软件中潜在的错误总 量。但完整的测试是评定软件质量的一种方法。 没有发现错误的测试也是有价值的。,2020/10/20,21,4.4对软件测试的认识,

9、软件测试能做什么? 发现软件中残存的错误 为软件质量的评价提供支持 为软件开发过程的改进提供帮助 一种有效的软件工程验证与确认方法,2020/10/20,22,测试设计,测试是需要设计的。 一个好的测试计划和测试用例往往能达到事半功倍的效果。 测试是一项具有很大创造性的工作,其工作量一点也不比软件设计小。 软件测试的创造性主要表现在测试方案选择、测试计划制定、测试用例设计、测试结果的分析以及测试过程的管理等方面,2020/10/20,23,测试目标,测试目标 我们的目标是设计一个能够系统地发现不同阶段的错误的测试,且消耗最短的时间和最小的工作量。 测试的附带收获 示证了软件的功能依据其需求说明

10、而工作 表明软件满足其性能需求 测试中收集的数据提供了软件可靠性和软件质量的部分信息,2020/10/20,24,对软件测试的理解,基于上述定义,测试并不仅仅意味着运行程序的动态测试,也包括对需求定义和设计等进行分析的静态测试。 测试是攻击和破坏软件的方法和过程,以达到提高软件质量的目的。 测试是努力发现上述三类软件错误的活动,即: 努力发现偏离错误 努力发现语言使用错误 努力发现功能缺陷,基础概念,2020/10/20,25,对软件测试的理解,从软件过程的角度来看测试: 测试是指软件产品生命周期内所有的检查、评审和确认活动。如:设计评审、代码走查、系统测试等。 测试的最终目的是确保交给用户的

11、产品符合用户的需求。,2020/10/20,26,对软件测试的理解,软件测试要解决的问题是:软件的行为是否符合“规定的”要求。 它有两个方面的含义:第一,软件测试要解决的问题是,是否做了规定要做的事;第二,软件是否做了没有规定要做的事?,2020/10/20,27,软件测试的局限性,无法实现彻底的测试 被测系统存在故障敏感性和巧合正确性 不能直接验证需求 获得预期结果困难,甚至不可能 测试本身也可能存在错误,2020/10/20,28,软件测试的致命缺陷,测试的不完全、不彻底性。 由于任何软件只能进行有限的测试,发现了错误说明软件有问题;未发现错误不能说明软件没有问题。,2020/10/20,

12、29,对测试的正确认识,软件测试不是解决软件质量问题的唯一方法; 软件测试不能取代其他的质量保证手段; 软件测试不能保证发现软件中的所有错误,完全的测试是不现实的; 软件测试是巨大的效益和艰苦的工作并存,测试的组织和管理就是在其中取得平衡。,2020/10/20,30,软件测试的重要性,2020/10/20,31,软件测试重要性,Close the Quality Gap So We Can Release Working Software on time,2020/10/20,32,软件测试重要性,2020/10/20,33,越早测试越好 自动的测试 测试每一个版本,传统的测试是在代码实现之

13、后进行,软件测试重要性,2020/10/20,34,一个好的软件工程的守则,软件开发全过程检测,力争本阶段修正错误。 单元测试是在软件开发的“实现阶段”才开始的,在此之前的“可行性研究与计划阶段”,“需求分析阶段”,“概要设计阶段”,和“详细设计阶段”,都必须有切实的手段与措施对开发结果进行检验,以保证阶段的正确完成,2020/10/20,35,测试的重要性,测试是软件生存周期中一个独立的、关键的阶段,是保证软件质量的重要手段,也是软件质量保证的最后一个环节。 测试活动贯穿于软件活动中的所有阶段。 从需求阶段高层设计低层设计编码阶段单元测试集成测试系统测试验收测试 测试越早开始,故障越早被发现

14、,消除故障的成本越少。,2020/10/20,36,内容概要:,序言 软件测试定义 软件测试目的 对软件测试的认识 软件测试理论 软件测试原则 软件测试的分类 软件测试的术语和定义 其它,2020/10/20,37,3.5软件测试理论,后面总结了9条软件测试的基本原理,是软件测试和软件开发的“交通规则”、“生活法则”。 理解它们有助于透彻了解软件过程。,2020/10/20,38, Parito法则,一般情况下,在分析、设计、实现阶段的复审和测试工作只能够发现和避免80%的Bug,而系统测试也只能找出其余Bug中的80%,最后剩余的Bug只有在用户的大范围、长时间使用后才有可能会曝露出来。因为

15、测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。 也称80-20理论。,2020/10/20,39,木桶理论,在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。木桶理论就是要强调改进我们木板最短的那一块.只有短木板变为长木板,桶装水才会更多。,2020/10/20,40,测试不能证明软

16、件无错,软件测试的不完全、不彻底性。 测试无法显示潜伏的软件缺陷。 由于任何程序只能进行有限的测试, 在发现错误时能说明程序有问题; 但在测试未发现错误时,不能说明程序中没有错误。,2020/10/20,41,完全测试软件是不可能的,主要原因: 输入量太大 输出结果太多 软件实现的途径太多 软件需求规格说明书没有客观标准。 “太多”的可能性加在一起,致使测试条件难以确定。,2020/10/20,42,完全测试软件是不可能的,例如:WinX操作系统带的计算器程序。 单个数据、多个数据的组合;+,-,*./各种算法组合;正常、异常情况组合 输入组合无穷多,无法完全测试。 注:如果觉得某些测试条件是重复的或者无必要的而将其剔除,那么就不能称作完全测试。,2020/10/20,43,软件测试是有风险的行为,如果决定不去测试所有的情况,那就是选择了风险。(泄漏故障的可能性) (碰巧在某个特定的输入组合下软件留有缺陷) 如何把无边无际的输入可能减少到可以控制的范围? 去粗存精,减小风险。,2020/10/20,44,测试量和发现的软件缺陷数量之间的关系,2020/

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

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

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