软件自动化测试基础_第1页
软件自动化测试基础_第2页
软件自动化测试基础_第3页
软件自动化测试基础_第4页
软件自动化测试基础_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件自动化测试基础第一页,共四十四页,编辑于2023年,星期三软件测试自动化简介软件测试自动化是一项让计算机代替人进行软件测试的技术。那么我们为什么要引入自动化测试呢?第二页,共四十四页,编辑于2023年,星期三为什么要引入软件测试自动化呢?软件测试是一项繁重的任务,全靠手工去完成测试是很难按时保质保量的完成。有些测试在成本一定的情况下,几乎不可能去完成。例如:需要多次回归测试的软件(例如迭代开发或增量开发的软件,某些精确度要求比较高的重要软件)。频繁回归测试使测试人员的工作热情受损,工作质量降低。测试时间比较长甚至需要几个通宵去进行测试的功能并发性测试,可靠性测试,白盒逻辑覆盖测试等手工很难完成的测试。第三页,共四十四页,编辑于2023年,星期三软件测试自动化简介软件测试自动化是一项让计算机取代人的进行软件测试技术。通过自动化测试技术可以自动运行大批量的测试用例,也可以完成某些手工测试难以完成的测试用例。从而节省了人力、时间和硬件资源。测试自动化是借助测试工具来实现的。不同类型的测试具有不同的测试工具。自动化测试工具中的测试用例是以脚本的形式存在的第四页,共四十四页,编辑于2023年,星期三自动化测试带来的优点提高软件测试效率。自动化测试执行用例的速度比手工测试快的多。方便回归测试。可执行更多、更繁琐测试。提高测试人员的积极性,测试人员把时间和精力放在软件中新的项目上。提高测试的准确性,从而使软件测试的可信度提高。测试的主观因素和误操作少了。测试具有一致性和可重复性。第五页,共四十四页,编辑于2023年,星期三自动化测试带来的优点测试的复用性。(这与软件开发里的代码复用性意思相同,测试用例是以脚本—一种代码的形式存在)可执行一些手工测试困难或不可能进行的测试。例如:并发行测试等第六页,共四十四页,编辑于2023年,星期三软件测试自动化存在的不足既然软件测试自动化这么多优点,是不是我们的测试活动的目标就是追求100%的自动化测试呢?软件自动化测试的缺点:需要一定的时间去编写、调试和维护脚本。需要测试人员的水平要高。不能实现某些需要人脑去判断结果的测试用例。(例如,界面是否人性化的测试)工具本身没有想象力完全依赖测试设计,因此,自动化测试对测试设计依赖太大。手工测试发现的错误比自动化测试要多的多。第七页,共四十四页,编辑于2023年,星期三自动化测试和手工测试的关系由于自动化测试的缺陷,在实践的测试活动中,尤其是黑盒测试中,它只是手工测试的一个有益的补充。但是,目前测试界和一些测试自动化工具商过分夸大了自动化测试的优点,使很多的软件测试学员对自动化测试产生了误解,下面我们看下对自动化测试存在的5个误区:第八页,共四十四页,编辑于2023年,星期三自动化测试的认识误区1/5错误期望一:自动化测试应完全取代人工测试。测试过程中80%以上的缺陷是手工测试发现的,仅有不到20%的缺陷是自动测试发现的,而且这20%的发现要求测试人员合理的运用工具。在测试前,分析下软件的需求,确定哪些功能、性能等因素需要用到自动化测试,然后有针对性的在项目中使用自动化。一味的追求测试自动化,会使测试工作的成本增加。(例如:手工测试1分钟可以完成,自动化测试得好几个小时才可以)第九页,共四十四页,编辑于2023年,星期三自动化测试的认识误区2/5错误期望二:测试用例可完全由测试工具生成白盒测试中,利用某些测试工具可以自动生成部分测试用例,(例如逻辑覆盖测试),但是由于测试工具无法自动了解程序的功能,仍然需要测试人员手工干预测试用例的设计和生成。黑盒测试中,几乎所有测试用例都需要手工去设定。例如:网站并发性测试,需要测试员分析需求,找到被测的业务流程,编写脚本,设定预期结果等等。第十页,共四十四页,编辑于2023年,星期三自动化测试的认识误区3/5错误期望三:测试工具可以在任何场合使用。工具都是针对解决某些特定的问题而开发的,所以必然有其局限性。而且测试工具自身同时也是软件,因此也会存在软件兼容性等不可避免的软件通病。例如:某些测试工具只能在windows上运行;某些白盒测试工具只是针对某几种语言;某些网络测试工具只是针对某几种网络等等。第十一页,共四十四页,编辑于2023年,星期三自动化测试的认识误区4/5错误期望四:自动化后测试效率立刻提高(如:测试工作马上减轻,进度缩短)。企业引入自动化测试需要做大量的前期准备工作,包括技术上的,资金上的,人员上的准备等等。如果不做好准备盲目引进自动化测试,可能会后期测试带来一些意想不到的麻烦。由于在测试过程中增加了新的元素,必然增加了测试过程的复杂度。因此在使用工具的初期通常会使工作量、消耗时间等各项成本较手动测试增加25%--50%,而不是象多数人想象的那样可以很快降低成本。第十二页,共四十四页,编辑于2023年,星期三自动化测试的认识误区5/5错误期望五:自动化测试顺利引入后就一劳永逸了。自动化测试能否达到应有的效果还取决于实施过程中的多方面因素。⑴自动化测试不会创造性地发现测试方案里没有的设计缺陷。因此,需要有经验的测试人员对测试方案进行系统、周密的设计和不断修改。⑵自动化测试代码需要使用配置工具来管理和维护。此外,还应该对自动化测试工作流程的规范性进行考查,从而对自动化测试的实施进行监督和评估。第十三页,共四十四页,编辑于2023年,星期三实战中,如何运用自动化测试和手工测试1/2在软件测试活动中,通常需要把自动化测试和手工测试结合起来,对被测软件进行测试。在现实中,根据被测软件的需求,判定哪些需要自动化测试,哪些不需要。要充分发挥自动化测试和手工测试的优势,既能尽可能多的发现软件的缺陷,又能节省软件测试的时间和人力。那么哪些部分需要自动化测试呢?值得我们去用自动化测试呢?这里引入一个名词“投资回报率”。第十四页,共四十四页,编辑于2023年,星期三实战中,如何运用自动化测试和手工测试2/2投资回报率是指节省的时间成本、人员成本以及其它成本与投入测试工具的费用之比。投资回报率越高,引入的自动化技术越成功。例如:用户登录功能(只进行2次测试)。某功能,10分钟点击150次。从投资回报率上看,1不必用自动化测试,2建议使用自动化测试。第十五页,共四十四页,编辑于2023年,星期三软件测试自动化工具使用的前提软件测试需求变动不频繁。通常是对需求比较稳定的模块使用自动化测试技术。项目周期要足够长,要有足够的时间设计和开发自动化测试。自动化测试脚本可重复利用。第十六页,共四十四页,编辑于2023年,星期三我们一般什么时候使用自动化测试呢??一般来说,投资回报率高的或者手工难以进行的测试优先选择自动化测试工具。我列了几种可以考虑使用自动化工具的情况:白盒测试大型软件的回归测试某些需要频繁测试的功能或性能准确度和精确度比较高的软件某些需要长时间运行的测试手工很难完成的测试第十七页,共四十四页,编辑于2023年,星期三自动化测试工具的选取需要考虑如下几个因素:1、与被测软件是否兼容2、经费是否允许3、售后技术支持质量4、自动化工具的资料是否容易获得总之,不必选最贵的,只选最合适的自动化测试的实施流程第十八页,共四十四页,编辑于2023年,星期三自动化测试的原理和方法软件测试自动化实现的基础是可以通过设计的特殊程序模拟测试人员对计算机的操作(黑盒测试),或者类似于编译系统那样对计算机程序进行检查(白盒测试)。软件测试自动化实现的原理和方法主要有:对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技术、虚拟用户技术和测试管理技术。第十九页,共四十四页,编辑于2023年,星期三自动化测试的原理和方法(1)代码分析(白盒测试的自动化测试)不管是静态白盒测试还是动态白盒测试,一般都需要借助白盒代码分析工具去完成测试。代码分析工具类似于高级编译系统,一般针对不同的高级语言去构造不同分析工具,在工具中有类、对象、函数、变量等定义规则、语法规则。在分析时,对代码进行扫描,找出代码的缺陷,评价软件的质量。第二十页,共四十四页,编辑于2023年,星期三自动化测试的原理和方法(2)捕获和回放(黑盒测试的自动化测试)

捕获是将用户每一步操作都记录下来(包括被测软件的窗口和控件的位置以及相对应的操作、状态变化或是属性变化)。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。

回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较,最后得出测试结果,有些自动化测试软件可以根据测试结果对被测软件进行评估。这可以大大减轻黑盒测试的工作量,尤其是在回归测试中。第二十一页,共四十四页,编辑于2023年,星期三自动化测试的原理和方法关于自动化测试中的“录制—回放”技术举例目前的网站并发性测试几乎都是采用“录制-回放”的技术。所谓的“录制-回放”技术,就是先由手工完成一遍需要测试的流程,同时由计算机记录下这个流程期间客户端和服务器端之间的通信信息,并形成特定的脚本程序(Script)

。然后在系统的统一管理下同时生成多个虚拟用户,并运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资料。这样,通过几台机器就可以模拟出成百上千的用户对应用系统进行负载能力的测试。第二十二页,共四十四页,编辑于2023年,星期三自动化测试的原理和方法(3)测试脚本技术测试脚本是与特定测试对应的一系列指令(及数据),这些指令可以被测试工具自动执行。脚本一种形式的程序。不同的工具,脚本程序的规则有所不同。将loadrunner脚本用的类C语言,QTP用的VBscript语言。脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。当然,也可以直接按照脚本语言的规则编写脚本。由于支持录制,所以学习脚本语言相对容易些第二十三页,共四十四页,编辑于2023年,星期三脚本技术分类脚本技术可以分为以下几类:线性脚本——是录制手工执行的测试用例得到的脚本。线性脚本很简单,通过录制就可以得到。结构化脚本——在线性脚本的基础上,加上控制结构(顺序、循环和分支结构)。脚本的逻辑判断能力以及处理问题的灵活性得到增强,基本上实现脚本的模块化。第二十四页,共四十四页,编辑于2023年,星期三脚本技术分类共享脚本——是指某个脚本可被多个测试使用,一个脚本可以被另一个脚本调用。减少了脚本的数量,也使脚本容易维护。数据驱动脚本——将测试输入存储在独立的数据文件中,实现了数据和脚本的分离。(例如使用QTP,登录系统测试中,可以将用户名和密码数据存储在外部的excel文件。)关键字驱动脚本——是数据驱动脚本的逻辑扩展。通过外部的一系列关键字数据去驱动测试的运行。第二十五页,共四十四页,编辑于2023年,星期三虚拟用户技术和测试管理技术虚拟用户技术,是指在有限的测试主机上,虚拟出成千上万或者更多个用户的技术。例如:网站并发性测试,我们可以用性能测试工具loadrunner虚拟多个用户。测试管理技术,通过测试管理工具(例如:TestManager)对整个测试流程进行管理,包括需求分析、计划测试、设计测试用例、缺陷处理、测试报告等内容。第二十六页,共四十四页,编辑于2023年,星期三软件自动化测试的运用测试用例的生成测试的执行与控制测试结果与标准输出的对比不吻合测试结果的分析处理测试状态的统计和报表的生成采用自动化比较技术(例如:检查点技术)第二十七页,共四十四页,编辑于2023年,星期三软件自动化测试工具测试工具主要分为测试管理工具、性能测试工具、功能测试工具和白盒测试工具。这些工具主要是HPMercury、IBMRational等公司的产品,以及相当数量的开源测试工具。其中,HPMercury占有的市场份额是最大。Mercury公司是国际上最大的测试工具开发商,被HP公司收购后,我们就称其为HPMercury公司。第二十八页,共四十四页,编辑于2023年,星期三测试管理工具

测试管理工具是对测试配置和测试过程进行管理,对缺陷进行跟踪管理。QualityCenter简称QC,其前身是大名鼎鼎的TestDirector,简称TD(HPMercury公司)主要功能:需求管理;计划测试;安排和执行测试;缺陷管理;图形化和报表输出TestManager(IBMRational)第二十九页,共四十四页,编辑于2023年,星期三TestDirector第三十页,共四十四页,编辑于2023年,星期三功能测试工具Winrunner(HPMercury公司)自动录制-检测-回放,侧重于测试c/s架构QuickTestPro,简称QTP(HPMercury公司)自动录制-检测-回放,侧重于测试b/s架构目前Winrunner不再发布新版本,已经完全被QTP给取代,在后续的课程中我们会学习使用QTP。Robot(IBMRational公司)功能和性能测试软件,可以去TestManager完美结合第三十一页,共四十四页,编辑于2023年,星期三Robot第三十二页,共四十四页,编辑于2023年,星期三WinRunner第三十三页,共四十四页,编辑于2023年,星期三QTP第三十四页,共四十四页,编辑于2023年,星期三性能测试工具LoadRunner(HPMercury公司)当前市场上最强大的性能测试工具,在后续的课程中,我们会学习loadrunner工具的使用。Robot(IBMRational公司)第三十五页,共四十四页,编辑于2023年,星期三Loadrunner工作过程(了解)①通过VuGen来设计脚本②通过Control设计场景③通过负载发生器实现虚拟用户并发执行④通过Control监控场景⑤通过分析器分析结果第三十六页,共四十四页,编辑于2023年,星期三LoadRunner的虚拟用户发生器第三十七页,共四十四页,编辑于2023年,星期三白盒测试工具Parasoft公司JtestJava代码分析和动态类、组件测试JcontractJava实时性能监控以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论