《软件测试流程和过程模型教学课件电子教案.pptx》由会员分享,可在线阅读,更多相关《软件测试流程和过程模型教学课件电子教案.pptx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 软件测试流程和过程模型软件测试技术董皊本书目录第1章 软件测试概述第3章 软件测试计划第4章 测试用例概述第5章 高效设计测试用例第6章 软件缺陷报告第7章 软件测试报告第8章 易用性测试第9章 Web测试第10章 测试人员的职业能力和技术支持第2章 软件测试流程和过程模型2.2软件测试过程模型2.3软件测试原则2.1软件测试流程2.1.1测试需求分析2.1.2测试计划制定2.1.3测试用例设计2.1.4测试环境搭建2.1.5测试数据准备2.1.6测试执行及缺陷处理2.1.7测试总结报告2.1.8测试文件归档2.1.1 软件需求分析2.1.2 软件测试计划制定2.1.3 软件测试用例设
2、计2.1.4 软件测试环境搭建软件测试环境是指为了完成软件测试工作所必须的计算机硬件、软件、网络设备、历史数据的总称。测试环境要与开发环境分开。2.1.4 软件测试环境搭建大数据的特点:数据规模大、数据多样、计算复杂度高、分布式结构等;需要考虑?根据对大数据所测场景的不同,所需要的测试环境有不同:如果是大数据新业务上线前对系统功能做验证测试,通常需要构造单独的类生产的迷你测试环境;如果是测试实时数据处理业务或是做系统组件的升级测试,则可以按照系统生产环境进行等比例缩放;如果是测试重要业务功能或是做性能测试,则需要直接在生产环境上进行测试。2.1.5 测试数据准备Data generator、d
3、atabenerator、Testgen、 datatect、turbo data自建脚本:Ruby、Python、Fit、FitNesse、Shell脚本传传统统的的创创建建测测试试数数据据的的方方法法手动创建自动化创建手动模拟用户实际操作来创建重要业务流程的测试数据;通过SQL语句中where和update方法来修改数据库数据;导入本地机器上存储的一些符合条件的测试数据;导入并加工线上数据变成测试数据。大数据测试数据准备5V大规模Volume类型多样Variety产生速度快Velocity商业价值高Value数据真实Veracity大数据测试数据准备大数据数据获取常用的通过网络爬虫爬取免费
4、数据向一些数据机构购买有价值的数据共享合作公司提供的数据使用自己公司的自有数据。大数据测试数据准备使用自己公司的自有数据(可以直接使用真实数据,也可以按照某种算法构造)(1)真实数据引流:(2)真实环境数据复制(3)构造数据大数据测试数据的预处理数据预处理是一种数据挖掘技术,本质就是为了把原始数据转换为可以理解的格式或者符合我们挖掘的格式。为什么要进行预处理?数据可能是不完整的,缺少某些属性值;高纬度,数据的属性或字段太多;数据可能存在重复;数据可能会有由于包含代码或者名称的差异导致跟实际需要的数据不一致;可能含噪声。即数据中存在着错误或异常数据。2.1.6 测试执行及缺陷处理2.1.7 软件
5、测试报告2.1.8 测试文件归档SVNVSSGitFTPWiki软件测试流程总结P(Plan)D(Design)C(4C管理)管理)A(2A)目标Goal实施计划Plan收支预算Budget设计方案和布局Check检查Communicate沟通Clean清理Control控制Act执行,对总结检查的结果进行处理Aim,按照目标要求行事,如改善、提高软件测试流程总结PDCA循环:(1)大的测试流程中:制定好测试计划、执行测试、通过测试结果来检查测试计划制定的合理性,然后分析计划偏离的原因,再把总结出来的经验用于指导下一次测试的计划,这样就形成了一个PDCA循环过程。(2)提交一个缺陷也可以应用P
6、DCA循环,先写下来,再检查,然后提交审核,对提出的意见进行分析,总结写的不好的地方,把总结的经验用于指导下一次报告的编写,这样的过程同样是一个PDCA。(3)编写测试用例也是一个PDCA,选择好测试用例的编写方法,开始设计测试用例,然后通过评审来发现更多问题,或者通过执行测试用例来发现bug,再根据执行的情况和bug的情况来分析测试用例的有效性,把这些总结出来的经验用于指导下一次的测试用例设计。这也是一个PDCA循环。2.2软件测试过程模型软件开发过程模型:软件开发全部过程、活动和任务的结构框架。是无数前辈们通过无数项目总结出来的软件开发的全过程,从而沉淀下来的固有模型,是前人智慧的结晶。大
7、爆炸模型编写边改模型瀑布模型原型模型增量模型Scrum2.2软件测试过程模型软件测试专家也通过实践总结了很多过程模型V模型W模型H模型2.2.1V模型2.2.1 V模型V模型是最具有代表意义的测试模型。V模型最早由Paul Rook在20世纪80年代后期提出。V模型是软件开发瀑布模型的变种。V模型的推出就是对此认识的改进,它反映了测试活动与分析、设计、开发的关系,从左到右,描述了基本的开发过程和测试行为,非常明确地表明了测试过程中存在不同的测试级别,并且清楚地描述了这些测试阶段和开发过程各阶段的对应关系。V模型的局限性:它仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽
8、视了测试活动对需求分析、系统设计等活动的验证和确认功能2.2.2 W模型2.2.2 W模型W模型又叫双v模型。W模型是由Evolutif公司提出的。它强调软件测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求、设计以及开发输出的文档。W模型也是有局限性的。最大的局限性就是无法支持迭代。2.2.3 H模型在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试条件就绪时,软件测试即从测试准备阶段进入执行阶段。软件测试不仅仅指测试的执行,还有测试准备工作;2.2.3 H模型概括地说,H模型揭示了:(1)软件测试不仅仅指测试的执行,还包括测试准备
9、工作。(2)软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。(3)软件测试要尽早准备,尽早执行。(4)软件测试是根据被测物的不同而分层次进行的,支持被测物的多次迭代。三种模型的综合运用在实际工作中,不能为了使用模型而使用模型,要灵活运用各种模型的优点,取其精华,去其糟粕。例如可以在W模型的框架下,运用H模型的思想进行独立测试,并同时将测试和开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按期完成预定目标。常见考题请列出V模型的各个环节请说出V模型/W模型/H模型的优缺点?2.3软件测试的原则(1)所有的测试都应该追溯到用户需求软件测试的目的是寻找实际结果和预
10、期结果之间的差异。从用户角度来看,最严重的错误就是那些导致程序无法满足需求的错误。如果系统不能完成客户的需求和期望,那么,这个系统的研发是失败的。通常,所有的测试都是依据用户需求来进行的,一旦在测试过程中发生争执,所有问题的解决都要依据需求说明中的规定,追溯用户需求。(2)尽早开展软件测试工作软件项目中40%60%的问题都是需求分析阶段埋下的“祸根”(Leffingwell 1997)。而软件项目在软件生命周期的各个阶段都可能产生错误。实践证明,缺陷发现的越早,修改缺陷的成本越低。随着时间的推移,修复软件缺陷的费用在成倍的增长,在维护阶段发现缺陷修复成本甚至是在需求阶段的200倍2.3软件测试
11、的原则(3)软件测试中的Pareto法则软件测试发现的80%的错误很可能起源于20%的程序模块。也可以表示,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷的80%(其余20%的80%),最后4%的软件缺陷可能只有在用户大范围、长时间使用后才会暴露出来2.3软件测试的原则(4)程序员应该尽量避免测试自己编写的程序并不是测试自己的程序不可能,而是让独立的第三方来测试会更客观、有效,并容易取得成功;不愿意否定自己的工作的心里。需求理解错误的缺陷无法找出来。(5)穷尽测试是不可能的即使是功能很简单的程序,输入的组合数量也非常庞大(6)软件测试是有风险的因为
12、穷尽测试不可能,所以遗漏缺陷的可能性就存在。(7)Good-Enough原则既不要做过多的测试,也不要做不充分的测试,这就是“Good-Enough原则,也就是说当软件测试到达一个“最优工作量”的时候就停止测试。2.3软件测试的原则(8)程序中存在软件缺陷的可能性与该部分已经发现的缺陷成正比通常一段程序中已发现的错误数越多,意味着这段程序的潜在错误也较多,这是软件缺陷的集群现象。人总是会反复犯下自己容易犯的错误,程序员也不例外。另外一个可能是,错误聚集的模块是软件的底层架构,这样的位置牵一发而动全身。(9)软件测试经常会有免疫现象发生在软件测试中,免疫现象用来描述测试人员对同一测试对象进行的测
13、试次数越多,发现的缺陷就会越来越少的现象。这是1990年,Boris Beizer在其编著的软件测试技术第二版一书中提出的。为了克服免疫现象,软件测试人员必须常常采用新技术,编写不同的测试程序,对程序的不同部分进行测试,以发现更多的缺陷。也可以引入新人来测试软件,往往新人能发现一些意想不到的问题。(10)无法通过软件测试发现所有的软件缺陷软件测试是质量保证中的一环,只能保证尽量暴露软件中的缺陷。通过软件测试可以证明缺陷存在,但不能证明系统不存在缺陷。测试可以减少软件中遗漏的缺陷数量,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全没有缺陷的,软件测试无法揭示潜伏的软件缺陷。2.3软件测试
14、的原则(11)并非所有的软件缺陷都会修复到项目发布时间了,没有足够的时间修复缺陷了不是真正的缺陷,而是理解错误或测试错误或者说明书变更导致的修复一个缺陷,有可能会引入更多或者更严重的缺陷一些随机缺陷或者出现在不常使用的模块中的软件缺陷是可以暂时放过的(12)前进两步,后退一步这是指修复软件缺陷,总会以20%50%的几率引入新的缺陷,所以整个过程是前进两步,后退一步的。通过合理的回归测试可以有效的解决部分这种问题。常见的题目一、单选题(1)下面哪一项不是常见的软件测试过程模型?()AH模型BV模型CW模型D瀑布模型(2)以下哪一项属于W模型的测试环节?()A需求分析B概要设计C详细设计D验收测试
15、(3)下面不属于测试原则的是()A.软件测试是有风险的行为B.穷尽测试程序是不可能的C.测试无法显示潜伏的软件缺陷D.找到的缺陷越多,证明软件的潜在缺陷就越少(4)关于软件测试的原则,以下说法错误的是()A.所有的测试都应追溯到用户需求B.软件测试应尽早启动C.程序员自己测试自己的程序可以达到最佳效果D.软件测试是有风险的常见的题目二、多选题(1)下面哪几个项是属于软件测试流程中的重要环节?( )。A编写需求文档B设计测试用例C执行软件测试D进行项目总结(2)W模型中,以下哪些文档需要测试人员参与评审?()A需求说明书B详细设计文档C测试用例D测试总结报告(3)关于二八原则,以下说法正确的是(
16、)A.80%的缺陷来自于20%的程序模块中。B.在需求、设计、实现阶段,测试能发现80%的软件缺陷。C.系统测试能找出其余20%的缺陷中的80%,也就是16%的软件缺陷。D.用户可能会在长时间、大范围的使用中发现20%的缺陷。(4)软件测试需要由第三方去执行,关于这一点说法正确的是()A.开发人员找自己程序的缺陷可能会有心里障碍。B.开发人员可能对需求理解有误,导致无法找出缺陷。C.第三方测试一般都有专业成熟的测试技术。D.开发人员比较忙,没有时间测试自己的程序。常见的题目(5)获取自有数据常用的方法有几种?()A.购买数据B.生产环境真实数据引流C.生产环境数据复制D.构造数据(6)H模型揭
17、示了以下几个内容,说法正确的是()A. 软件测试不仅仅指测试的执行,还包括很多其他的活动。B.软件测试是一个独立的流程,贯穿产品生命周期,与其他流程并行。C. 软件测试要尽早准备、尽早执行D.软件测试是根据被测物的不同而分层次进行的。(7)大数据测试环境有什么特点?()A.数据规模大B.数据多样C.计算复杂度高D.分布式结构等常见的题目三、判断题(1)V模型存在一定的局限性,是指V模型仅仅把软件测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人误解软件测试是软件开发过程的最后一个阶段,有可能需求分析阶段隐藏的问题会一直到后期的验收测试才被发现。()(2)W模型不能很好的支持迭代,不能体现测试流程的完整性。()(3)软件测试报告可以展示软件测试人员的工作成果。()下节更精彩