ch9-软件测试自动化及其框架_第1页
ch9-软件测试自动化及其框架_第2页
ch9-软件测试自动化及其框架_第3页
ch9-软件测试自动化及其框架_第4页
ch9-软件测试自动化及其框架_第5页
已阅读5页,还剩60页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

软件测试方法和技术第9章软件测试自动化自动测试和手工测试手工模拟用户操作第9章软件测试自动化9.1测试自动化的内涵9.2测试自动化实现的原理9.3测试自动化的实施9.4功能测试工具特性要求9.5性能测试工具特性要求9.6自动化测试框架9.1测试自动化的内涵9.1.1手工测试的局限性9.1.2什么是测试自动化9.1.3软件测试自动化的优势测试面临的问题测试用例会越来越多,工作量越来越大,而且许多测试用例会被不断地重复执行。如果由手工来完成,不仅占用很多人力资源,而且工作重复单调,会影响测试人员的积极性,降低测试工作人员的热情…怎么办?9.1.1手工测试的局限性通过手工测试(manualtest)无法做到覆盖所有代码路径;许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行在进行系统可靠性测试时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。如果有大量(几千)的测试用例,可是需要在短时间内完成,手工测试又怎么办呢?测试可以发现错误,并不能表明程序的正确性。

9.1.2什么是测试自动化自动化测试=测试工具?用测试工具执行测试的过程?用工具完成测试任务?自动化测试(automatedtest)是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替测试工具的使用是自动化测试的主要特征简单的实验批处理文件Word的邮件合并功能“工具”“信和邮件”“邮件合并”

Word中的宏自动化测试vs.测试自动化自动化测试焦点集中在测试执行,主要是由测试工具自动地完成测试。测试自动化指“一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”。自动化测试vs.测试自动化........测试自动化

理念

全过程

所有测试活动包括测试设计、测试管理........自动化测试

测试工具测试执行

单项活动

自动化测试的优势:自动运行的速度快,是手工无法相比的。测试结果准确。例如搜索用时是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异。高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍。永不疲劳可靠独特的能力9.1.3软件测试自动化的优势软件测试自动化带来的好处:测试周期缩短更高质量的产品软件过程更规范提高团队士气节省人力资源,降低测试成本充分利用硬件资源,降低企业成本。

手工测试

发现缺陷率高容易实施创造性、灵活性

覆盖率量化困难

重复测试效率低不一致性、可靠性低依赖人力资源

高效率(速度)高复用性覆盖率容易度量准确、可靠不知疲劳激励团队士气

机械、难以发现缺陷一次性投入大测试自动化手工测试vs.测试自动化正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足进一步说明各自应用范围在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用手工测试(黑盒)方法;单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用自动化测试;对那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合测试自动化;功能测试时,工具更能发挥回归测试作用,因为工具缺乏想象力和灵活性而不能发现更多的新问题(自动测试只能发现15%的缺陷,而手工测试可以发现85%的缺陷),但可以保证对已经测试过部分进行测试的准确性和客观性9.2测试自动化实现的原理9.2.1代码分析 9.2.2对象识别 9.2.3脚本技术9.2.4自动比较技术9.2.5测试自动化系统的构成测试自动化的原理和方法代码分析:类似于高级编译系统,在工具中定义类/对象/函数/变量等定义规则、语法规则等,在分析时对代码进行语法扫描,找出不符合编码规范的地方。捕获和回放:代码分析是一种白盒测试的自动化方法,捕获和回放则是一种黑盒测试的自动化方法。直接编写脚本来操作、控制、验证对象:包括对象识别、脚本技术、对运行结果进行比较9.2.1代码分析代码的静态分析的关键是建立各种规则,而这种规则的建立是依赖于相应编程语言的语法。如依据EBNF(扩展巴科斯-诺尔范式)对Java代码的分析。举例代码扫描

编译器规则工具自动化测试的流程举例保存脚本记录执行Log验证测试结果启动应用、执行脚本调用脚本创建脚本录制对象及其操作插入验证点调试脚本启动应用测试报告9.2.2对象识别Windows对象 Mac对象(苹果电脑)WebDOM(文档对象模型)对象逻辑名称:对象属性之一的值数值:用于识别对象名称Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Windows对象识别对象识别工具DOM对象的识别IEDOMInspector

DOM对象识别工具FireBug

9.2.3脚本技术线性脚本:是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。结构化脚本:类似于结构化程序设计,具有各种逻辑结构、函数调用功能。数据驱动脚本:将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。

线性脚本结构化脚本关键字驱动脚本物件动作资料文字字段(用户名称)输入文字<用户名称>物件动作资料文字字段(域)输入文字<域>文字字段(用户名称)输入文字<用户名称>文字字段(密码)输入文字<密码>按钮(登入)单击左键单击是数据驱动脚本的逻辑扩张。

简单的关键字是针对一个物体的一个动作。例如在文字字段中输入用户名称:复杂的关键字是由几个测试步骤,组合成一个有意义的动作。例如:数据驱动脚本测试自动化成本/收益分析结构成本收益净收益非自动化000录制和回放RecordingandPlayback8.3112.7数据池的数据驱动结构Data-drivenstructureusingdatapools8.4189.6框架结构Frameworkstructure9.8155.2侧重于应用和数据池的框架/数据驱动结构Framework/data-driven(hybrid)structurefocusingonviewsoftheapplicationandusingdatapools9.6197.4测试自动化系统的构成机房客户端测试人员工作机文件服务器数据库服务器Web服务器控制程序拷贝测试文件测试结果指令通信分派工作查询结果Build系统编译获取测试任务、数据数据库存取软件包发布指令P223操作请求运行控制9.3测试自动化的实施9.3.1测试工具的分类 9.3.2测试工具的选择 9.3.3测试自动化普遍存在的问题 9.3.4自动化测试的引入和应用9.3.1测试工具的分类根据测试方法不同,分为白盒测试工具和黑盒测试工具、静态测试工具和动态测试工具等。根据工具的来源不同,分为开源测试工具(多数是免费的)和商业测试工具、自主开发的测试工具和第三方测试工具等。根据测试的对象和目的,分为单元测试工具、功能测试工具、性能测试工具、测试管理工具等更细的分类静态测试工具 -扫描分析:Findbugs,JTest/C++Test -规则定义动态测试工具 -内存检测工具 -录制/回放工具 -负载测试工具 -监控工具9.3.2测试工具的选择

需求,自己特定的需求开源、商业、自己开发?功能成熟度运行环境支持、服务价格测试工具的选择步骤P225

9.3.3测试自动化普遍存在的问题

不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才

测试工具本身的问题影响测试的质量测试脚本的质量低劣

没有进行有效的、充分的培训

没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境

其它问题测试自动化项目的本质测试自动化项目本质上是软件开发项目。一个测试自动化项目必须具有:清晰定义并严格实施的过程来自组织各级的支持周密的计划具体的设计和架构对策

正确的认识找准测试自动化的切入点把测试脚本开发纳入整个软件开发体系软件程序开发和测试自动化不可分离资源的合理调度测试自动化依赖测试流程和测试用例降低测试自动化的投入、提高其产出

9.3.4自动化测试的引入和应用

找准测试自动化的切入点把测试开发纳入整个软件开发体系测试自动化依赖测试流程和测试用例软件测试自动化的投入较大进行资源的合理调度自动化测试工作流程收集测试信息测试需求是什么?那里能得到用到的数据?建立基本测试记录用户的操作核实成功回放提高基本测试插入测试点驱动测试数据整体测试关联数据建立综合的测试场景计划1创建2核实和提高3整合4计划自动化测试记录用户操作形成基本测试核实回放并测试提高自动化测试运行多种测试检查数据流9.4功能测试工具特性要求以QTP(Unified

Functional

Tester)为例自动化功能测试基本构成录制测试脚本编辑测试脚本调试脚本执行结果分析对象识别优化脚本验证确定缺陷加验证点功能测试工具特性-1支持(多种)流行脚本语言能引用外部的脚本/编程语言函数库。支持录制和回放的功能。提供对象识别工具(ObjectSpy),用来查看实时对象或测试对象的属性和方法。支持多种方法来识别对象支持抽象层和对象库(ObjectRepository)支持数据驱动测试(Data-DrivenTest)。。。。。。P229-2319.5性能测试工具特性要求以LoadRunner/JMeter为例P232LoadRunner的组件虚拟用户发生器(VisualUserGenerator,VuGen)控制器(Controller)负载发生器(LoadGenerators)分析器(Analysis)LoadRunner

工作过程通过VuGen来设计脚本通过Control设计场景通过负载发生器实现虚拟用户并发执行通过Control监控场景通过分析器分析结果性能测试工具的一般功能能够支持广泛的通信协议和技术提供一个互动的环境通过广域网模拟安全机制网络组合的配置自定义测试结果的分析P2329.6

目前市场上主流的测试工具

目前市场上专业开发软件测试工具的公司有很多,比如MI公司和IBMRational公司。1、MI公司的产品(1)LoadRunner

(2)WinRunner

(3)TestDirector

(4)QTP(quicktestProfessional)2、IBMRational公司的产品(1)RationalTestmanager

(2)RationalClearQuest

(3)RationalRobot

(4)RationalPurify3、Telelogic公司产品

最有名的logiscope白盒测试工具4、Parasoft公司产品

JTest白盒测试工具

C++Test白盒测试工具9.7QTP工具介绍1、QTP简介

QTP的全称是QuickTestProfessional,是MI公司继WinRunner之后开发的一款功能测试工具。

QTP能够测试Windows标准程序、各种Web对象、ActiveX控件、VisualBasic应用程序等。9.7QTP工具介绍2、QTP测试方法使用QTP执行测试与人工测试一样。QTP会仿真鼠标的动作与键盘的输入,会将应用程序的所有操作都记录下来,比如点击一个链接、选择一个复选框等操作都会被QTP捕获,并自动将窗体中的各个控件对象记录下来,存储在对象仓库中。不过QTP比人工测试快得多,可以加速整个测试的过程。9.7QTP工具介绍3、QTP的测试过程(1)编写测试计划(2)录制测试脚本(3)编辑测试脚本(4)运行测试(5)结果分析9.7QTP工具介绍4、QTP的安装用户可以选择的安装版本有:演示版单机版网络版9.7QTP工具介绍5、QTP的界面介绍在QTP界面中包含标题栏、菜单栏、文件工具栏、测试工具栏、调试工具栏、测试脚本管理窗口、数据表窗口、活动窗口和状态栏。QTP界面两个测试案例:

QTP中自带了两个测试案例:(1)Flight是单机版的软件,用来管理民航系统的订票记录,具有新建订单和查询订单的功能(2)MercuryToursWebsite是MI公司开发的一个B/S结构的小型网站录制/执行测试脚本录

温馨提示

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

评论

0/150

提交评论