10自动化测试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ShiZhu_FFH1软件自动化测试基础ShiZhu_FFH2软件自动化测试基础自动化测试基础软件自动化测试工具简述自动化测试解决方案举例ShiZhu_FFH3自动化测试基础自动化测试的定义自动化测试的意义自动化测试的引入自动化测试的原理和方法软件自动化测试生存周期方法学软件自动化测试生存周期方法学的应用自动化测试存在的一些问题和限制建立正确的自动化测试目标自动化测试什么是自动化测试?一般是指软件测试的自动化。自动化测试可理解为测试过程自动化和测试结果分析自动化,包括测试活动的管理与实施、测试脚本的开发与执行。软件自动化测试就是模拟手动测试步骤,控制被测软件的执行,完成全自动或半自动测试的过程。全自动测试:指不需人工干预,由程序自动完成测试的全过程。半自动测试:指在测试过程中,需手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试。ShiZhu_FFH4ShiZhu_FFH5自动化测试的意义软件测试工作量大,重复性高通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。要理解为什么要进行自动化测试,可以从两个方面考虑:一是手工测试的局限性;二是软件自动化测试所带来的好处。ShiZhu_FFH6手工测试的局限性手工测试优点具有创造性;可举一反三,从一个测试用例想到另一些测试用例,特别是可考虑测试用例不能覆盖的一些特殊或边界情况;对那些复杂的逻辑判断、界面是否友好,手工测试有明显优势。手工测试的局限性通过手工测试无法做到覆盖所有代码路径。简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。(接下页)ShiZhu_FFH7手工测试的局限性手工测试的局限性进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。进行系统可靠性测试时,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。ShiZhu_FFH8自动化测试带来的好处缩短软件开发测试周期,可让产品更快投放市场。提高测试效率,充分利用硬件资源。节省人力资源,降低测试成本。增强测试的稳定性和可靠性。提高软件测试的准确度和精确度,增加软件信任度。测试工具使测试工作相对较容易,且能产生更高质量的测试结果。手工不能做的事情,自动化测试能做,如负载、性能测试。软件测试实行自动化进程,绝不是因为厌烦了重复的测试工作,而是因为测试工作的需要,更准确地说是回归测试和系统测试的需要。ShiZhu_FFH9自动化测试的引入正确的认识观在进行自动化测试前,首先要建立一个对软件测试自动化的认识观。软件测试工具能提高测试效率、覆盖率和可靠性等,自动化测试虽然具有很多优点,但它只是测试工作的一部分,是对手工测试的一种补充。自动化测试的引入前提条件通常需要同时满足以下条件:1)软件需求变动不频繁从维护成本考虑:相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。2)项目周期足够长自动化测试本身就是一个测试软件的开发过程,需较长时间完成。如项目周期较短,就没足够的时间去支持这个过程。3)自动化测试脚本可重复使用成本应不大于所创造的经济价值ShiZhu_FFH10ShiZhu_FFH11自动化测试的引入自动化测试和手工测试的范围自动化测试绝不能代替手工测试,它们各有各自的特点,其测试对象和测试范围都不一样:在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法。单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试。那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合自动化测试。工具本身并没有想象力和灵活性,根据报道,自动化测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷。(接下页)ShiZhu_FFH12自动化测试的引入自动化测试和手工测试的范围(续)自动化测试工具在进行功能测试时,其准确的含义是回归测试工具,这时工具不能发现更多的新问题,但可以保证对已经测试过部分的准确性和客观性。多数情况下,手工测试和自动化测试应该相结合,以最有效的方法来完成测试任务。ShiZhu_FFH13自动化测试的引入通常,当软件开发过程具有下列情况时,就需要考虑引入自动化测试:1)测试用例的生成:包括测试输入、测试输出、测试操作指令等;2)测试的执行与控制:包括单机运行和网络多机分布式的运行,在节假日的运行,测试个案调用控制,测试对象、测试范围与测试版本的控制等;3)测试结果与标准输出进行对比;4)不吻合预期的测试结果的分析、记录、分类和通报5)总体测试状况的统计及报表的产生。ShiZhu_FFH14自动化测试的原理和方法软件测试自动化实现的基础是通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为;或者类似于编译系统那样对计算机程序进行检查。软件测试自动化实现的原理和方法主要有:直接对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技术、虚拟用户技术和测试管理技术。自动化测试的原理和方法1)代码分析代码分析类似于高级语言编译系统,一般针对不同的高级语言去构造分析工具,在工具中定义类、对象、函数、变量等定义规则、语法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地方;根据某种质量模型评价代码质量,生成系统的调用关系图等。ShiZhu_FFH15ShiZhu_FFH16自动化测试的原理和方法2)捕获和回放代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。捕获是将用户每一步操作都记录下来。这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。捕获和回放可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。ShiZhu_FFH17自动化测试的原理和方法关于自动化测试中的“录制—回放”技术所谓的“录制-回放”技术,就是先由手工完成一遍需要测试的流程,同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息,这些信息通常是一些协议和数据,并形成特定的脚本程序(Script)。然后在系统的统一管理下同时生成多个虚拟用户,并运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资料。这样,通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试。ShiZhu_FFH18自动化测试的原理和方法3)脚本技术脚本是一组测试工具执行的指令集,也是计算机程序的一种形式。脚本可通过录制测试的操作产生,然后再做修改,这样可减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。脚本中包含的是测试数据和指令,一般包括如下信息:同步(何时进行下一个输入)。比较信息(比较什么,比较标准)。埔获何种屏幕数据及存储在何处。从哪个数据源或从何处读取数据。控制信息等。ShiZhu_FFH19自动化测试的原理和方法脚本技术可以分为以下几类:线性脚本——是录制手工执行的测试用例得到的脚本。结构化脚本——类似于结构化程序设计,具有各种逻辑结构(顺序、分支、循环),而且具有函数调用功能。共享脚本——是指某个脚本可被多个测试用例使用,即脚本语言允许一个脚本调用另一个脚本。数据驱动脚本——将测试输入存储在独立的数据文件中。关键字驱动脚本——是数据驱动脚本的逻辑扩展,将数据文件变为测试用例描述,用一系列关键字指定要执行的任务。自动化测试的原理和方法例:以下语句指示QTP选中Itinerary网页上的所有复选框:SetMyDescrīption=Descrīption.Create()MyDescrīption(htmltag).Value=INPUTMyDescrīption(type).Value=checkboxSetCheckboxes=Browser(Itinerary).Page(Itinerary).ChildObjects(MyDescrīption)NoOfChildObjs=Checkboxes.CountForCounter=0toNoOfChildObjs-1Checkboxes(Counter).SetONNextShiZhu_FFH20ShiZhu_FFH21自动化测试的原理和方法4)自动比较静态比较和动态比较静态比较,在测试过程中不比较,而是将结果存入文件或数据库,最后比较结果;动态测试,在测试过程中比较。简单比较和复杂比较简单比较,实际结果和预期结果完全相同;复杂比较,允许有一定误差。ShiZhu_FFH22自动化测试的原理和方法4)自动比较敏感性测试比较和健壮性测试比较敏感性测试比较,比较尽可能多的信息。如测试用例的每一步都比较;健壮性测试比较,只比较最需要的信息。如最后结果。比较过滤器对预期输出进行预处理,执行过滤任务后,再比较。5)测试管理ShiZhu_FFH23软件自动化测试生存周期方法学自动化测试生存周期方法学1.自动化测试决定2.测试工具获取3.自动化测试引入过程4.测试计划、设计与开发5.测试执行与管理6.测试评审与评估图自动化测试生存周期方法学结构ShiZhu_FFH24软件自动化测试生存周期方法学采用自动化测试方法的确认自动化测试工具的获取自动化测试的引入阶段——包括测试过程分析和测试工具的考查。测试计划与测试设计——包括制订测试计划、建立测试环境、测试设计和设计开发。测试执行与管理测试活动评审与评估ShiZhu_FFH25自动化测试生存周期方法的应用自动化测试生存周期方法学1.自动化测试决定2.测试工具获取3.自动化测试引入过程4.测试计划、设计与开发5.测试执行与管理6.测试评审与评估A.系统生存周期过程评估与改进F.生成维护阶段C.小型工具先导/原型D.系统设计与开发阶段B.业务分析与需求阶段E.组装与测试阶段ShiZhu_FFH26自动化测试存在的一些问题不正确的观念或不现实的期望缺乏具有良好素质和有经验的测试人才测试工具本身的问题影响测试的质量没有进行有效、充分的培训不考虑公司的实际情况、盲目引入测试工具没有形成一个良好的测试工具使用环境其他技术问题和组织问题ShiZhu_FFH27测试自动化限制测试自动化可以带来非常明显的收益,但也有以下限制:不能取代手工测试手工测试比自动测试发现的缺陷更多对测试质量的依赖性极大测试自动化不能提高有效性测试自动化可能会制约软件开发。工具本身并无想象力另外,人工测试比测试工具更优越的另一个方面是可以处理意外事件。虽然工具也能处理部分异常事件,但是对真正的突发事件和不能由软件解决的问题就无能为力。ShiZhu_FFH28建立正确的自动化测试目标克服不正确的观念,需要建立正确的自动化测试目标。测试计划产生:主要靠测试工程师与软件生产质量保证专家的合作,自动化工具只能起到一定的辅助作用。一种测试工具不完全适用于所有测试自动测试不一定会减轻工作量测试进度可能不一定会缩短测试工具不一定易于使用自动化测试的普遍应用存在局限测试覆盖率不会达到百分之百ShiZhu_FFH29软件自动化测试工具简述自动化测试工具的作用及优势自动化测试工具的特征自动化测试工具的分类选择自动化测试工具使用测试工具和自动化的实质常用测试工具概

1 / 80
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功