测试技术-深层讲解

上传人:c****d 文档编号:242973749 上传时间:2024-09-13 格式:PPTX 页数:37 大小:164.55KB
返回 下载 相关 举报
测试技术-深层讲解_第1页
第1页 / 共37页
测试技术-深层讲解_第2页
第2页 / 共37页
测试技术-深层讲解_第3页
第3页 / 共37页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/10/2011,#,软件测试,_,1,shell frame,需求分析,设计,编程,测试,维护,2,软件生存周期图,.,制定规划,系统与软件需求分析,软件设计,编程和单元测试,集成与系统测试,运行与维护,定义阶段,开发阶段,运行与维护阶段,3,软件测试的生存周期模型,制定测试计划,确定测试需求,制定测试策略,明确测试准则,明确资源和进度,评审测试计划,测试设计,设计测试用例(输入,输出,环境配置),定义测试过程(规定测试步骤,验证方法,评审并完善测试过程),实施测试,建立测试脚本,单元测试,执行单元测试,记录测试结果,回归测试,集成测试,执行集成测试,记录测试结果,回归测试,系统测试,执行系统测试,记录测试结果,回归测试,评估测试,分析测试结果,提出变更请求,分析测试情况,建立测试分析报告,4,软件测试的概念及目的,软件测试,就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。,80-20,原则,测试的目的,是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。,5,软件测试的分类,从是否需要执行被测试软件的角度分类(,静态测试和动态测试,)。,如果在测试过程中执行被测试软件,则称为动态测试,反之则为静态测试。,从测试是否针对软件结构与算法的角度分类(,白盒测试和黑盒测试,)。,如果在测试过程中不关心软件的内部结构和具体实现算法,在无需了解软件结构与算法的情况下进行测试,称之为黑盒测试,反之则为白盒测试。,从测试的不同阶段分类(,单元测试、集成测试、系统测试、验收测试,)。,6,分类表,分类依据,名称,基于是否关注软件结构与算法,黑盒测试,白盒测试,基于是否执行被测试软件,动态测试,静态测试,基于测试的不同阶段,单元测试,集成测试,系统测试,验收测试,7,黑盒测试,黑盒测试,也称功能测试,,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。,黑盒测试的流程,测试计划,测试设计,测试开发,测试执行,测试评估,8,白盒测试,白盒测试,也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。,白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定,/,条件覆盖、条件组合覆盖和路径覆盖。,9,静态测试,静态测试,是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,静态测试结果可用于进一步的查错,并为测试用例选取提供指导。,静态测试包括代码检查、静态结构分析、代码质量度量等,。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。代码检查包括代码走查、桌面检 查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的 问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查 和程序结构检查等内容。,10,动态测试,动态测试,是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。,所谓软件的动态测试,就是通过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。,动态测试的步骤,单元测试,集成测试,系统测试,验收测试,回归测试,11,单元测试,单元测试也称为模块测试,它是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。,单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。,集成测试,也叫组装测试,是单元测试的逻辑扩展。它的最简单的形式将两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。,12,系统测试,系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。,系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。,验收测试,验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。,验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。,13,单元测试,单元测试,是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。因 此,所有的测试都必须在整个软件系统的生命周期中进行维护。,经常与单元测试联系起来的另外一些开发活动包括代码走读,(Code review),,静态分析,(Static analysis),和动态分析,(Dynamic analysis),。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。动态分析就是通过观察软件运行时 的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。,14,单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。,由谁测试?单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码。测试部门可以作一定程度的审核。对于程序员来说,如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。,15,单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。因此,所有的测试都必须在整个软件系统的生命周期中进行维护。,经常与单元测试联系起来的另外一些开发活动包括代码走读,(Code review),,静态分析,(Static analysis),和动态分析,(Dynamic analysis),。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。动态分析就是通过观察软件运行时 的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。,单元测试的优点,它是一种验证行为。,它是一种设计行为。,它是一种编写文档的行为。,它具有回归性。,16,系统测试,系统测试,英文是,System Testing,。是将已经确认的软件 计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了 需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基 于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持 软件及其接口等。,由于系统测试的目的是验证最终软件系统满足用户规定的需求。因此测试内容很多:,功能测试,即测试软件系统的功能是否正确,其依据是需求文档,如,产品需求规格说明书,。由于正确性是软件最重要的质量因素,所以功能测试必不可少。,17,健壮性测试,即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。,性能测试,即测试软件系统处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。,用户界面测试。重点是测试软件系统的易用性和视觉效果等。,安全性测试,是指测试软件系统防止非法入侵的能力。“安全”是相对而言的,一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、危险等因素)高于得到的好处,那么这样的系统可以认为是安全的。,安装与卸载测试。,18,步骤,步骤,1.,制定系统测试计划,系统测试小组各成员共同协商测试计划。测试组长按照指定的模板起草,系统测试计划,。该计划主要包括:,测试范围(内容),测试方法,测试环境与辅助工具,测试完成准则,人员与任务表,项目经理审批,系统测试计划,。,步骤,2.,设计系统测试用例,系统测试小组各成员依据,系统测试计划,和指定的模板,设计(撰写),系统测试用例,。,测试组长邀请开发人员和同行专家,对,系统测试用例,进行技术评审。,19,步骤,3,.,执行系统测试,系统测试小组各成员依据,系统测试计划,和,系统测试用例,执行系统测试。,将测试结果记录在,系统测试报告,中,用“缺陷管理工具”来管理所发现的缺陷,并及时通报给开发人员。,步骤,4,.,缺陷管理与改错,从,1,至,3,,任何人发现软件系统中的缺陷时都必须使用指定的“缺陷管理工具”。该工具将记录所有缺陷的状态信息,并可以自动产生,缺陷管理报告,。,开发人员及时消除已经发现的缺陷。,开发人员消除缺陷之后应当马上进行回归测试,以确保不会引入新的缺陷。,20,系统测试流程图,.,检查进入标准,检查结束标准,执行系统测试,建立测试环境,执行测试用例,记录测试结果,报告测试结果,管理软件错误,21,1.,单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。,2.,集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。,3.,系统测试主要针对 概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能,4.,验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要,(,需求,),。,22,测试,V,模型,23,测试,V,模型,是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。,V,模型从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。,模型左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。,V,模型的缺陷,仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段 忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。,24,功能测试,功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。,功能测试也称为行为测试,根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证软件达到用户的需求。,功能测试也叫黑盒测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码,.,一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。,25,性能测试,性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。,1,评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。,2,识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。,3,系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。,4,验证稳定性,可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。,26,性能测试的步骤,性能测试的步骤,1, 制定目标和分析系统,2, 选择测试度量的方法,3, 学习的相关技术和工具,4, 制定评估标准,5, 设计测试用例,6, 运行测试用例,7, 分析测试结果,27,自动化测试,自动化测试,一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。,通常需要同时满足以下条件:,1),软件需求变动不频繁。,2),项目周期足够长。,3),自动化测试脚本可重复使用。,(自动化测试工具:,QTP,,,Load-Runner,),28,测试步骤,需求分析阶段,主要针对产品的需求点,测试计划阶段,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。,测试设计阶段,一般由对需求很熟的高资深的测试工程师设计,需求点设计包括需求点简介,测试思路和详细测试方法。编写完成后需要进行评审,29,测试方案阶段,主要是对测试用例和规程的设计。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。,测试执行阶段,执行测试用例,及时提交有质量的,Bug,和测试记录,测试报告等相关文档。,30,测试关键点,编写测试计划,测试用例、测试缺陷报告,并执行测试用例,搭建测试环境。,31,详细测试步骤:,1.,书写测试计划,2.,审核测试计划,未通过返回第一步,3.,书写测试用例;,4.,审核测试用例,未通过返回第三步,5.,测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例),6.,测试过程中发现,bug,,将,bug,填写在,bugzilla,上发给集成部经理;(,bug,状态,NEW,),32,7.,集成部经理接到,bugzilla,发过来的,bug,7.1,对于明显的并且可以立刻解决的,bug,,将,bug,发给开发人员;(,bug,状态,ASSIGNED,),;,7.2,对于不是,bug,的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改,;,(,bug,状态,RESOLVED,,决定设置为,INVALID,),;,7.3,对于目前无法修改的,将这个,bug,放到下一轮次进行修改;(,bug,状态,RESOLVED,,决定设置为,REMIND,),8.,开发人员接到发过来的,bug,立刻修改,;,(,bug,状态,RESOLVED,,决定设置为,FIXED,),9.,测试人员接到,bugzilla,发过来的错误更改信息,应该逐项复测,填写新的测试报告(测试报告必须覆盖上一次中所有,REOPENED,的测试用例);,33,10.,如果复测有问题返回第六步(,bug,状态,REOPENED,),11.,否则关闭这项,BUG,(,bug,状态,CLOSED,),12.,本轮测试中测试用例中有,95%,一次性通过测试,结束测试任务;,13.,本轮测试中发现的错误有,98,%,经过修改并且通过再次测试(即,bug,状态,CLOSED,),返回第五步进行新的一轮测试;,14.,测试任务结束后书写测试总结报告;,15.,正规测试结束进入非正规测试,首先是,ALPHA,测试,请公司里其他非技术人员以用户角色使用系统。发现,bug,通知测试人员,测试人员以正规流程处理,bug,事件;,16.,然后是,BETA,测试,请用户代表进行测试。发现,bug,通知测试人员,测试人员以正规流程处理,bug,事件。,34,首先测试程序的核心功能,然后测试辅助功能。,首先测试功能,然后测试性能。,首先测试常见情况,然后测试异常情况。,首先测试经过变更的部分,然后测试没有变更的部分。,首先测试影响大的问题,然后测试影响小的问题。,首先测试必须测试的部分,然后测试可选或没有要求测试的部分,Tester,个人素养,专心,细心,耐心,责任心,自信心。,35,测试用例模板,XX,系统,测试用例,36,目,录,第一章,任务概述,2,1.1.,目标,2,1.2.,需求与设计概述,2,1.3.,运行环境,2,1.4.,测试环境,2,1.5.,条件与限制,2,1.6.,参考资料,2,第二章,测试内容说明,2,2.1.,测试方案,2,2.2.,需要测试内容说明,2,2.3.,测试准备工作,2,第三章,功能测试用例设计,2,3.1.,公用测试用例,2,3.2.,系统登录及界面,2,3.2.1.,模块一,2,第四章,性能测试用例设计,2,4.1.,性能测试,2,4.2.,恢复测试,2,4.3.,安全性测试,2,4.4.,强度测试,2,第五章,评价准则,2,5.1.,范围,2,5.2.,准则,2,第六章,测试用例列表,2,6.1.,页面测试,2,37,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!