第9章 自动化测试_第1页
第9章 自动化测试_第2页
第9章 自动化测试_第3页
第9章 自动化测试_第4页
第9章 自动化测试_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

软件测试第9章

自动化测试人与工具工欲善其事必先利其器测试面临的问题测试用例越来越多,工作量越来越大,许多测试用例会被重复执行。若手工完成,不仅占用很多人力资源,且工作重复单调,影响积极性,降低工作热情…怎么办??自动化测试本章内容1测试自动化的内涵2自动化测试的原理3测试工具的分类和选择4自动化测试的引入本章内容1测试自动化的内涵2自动化测试的原理3测试工具的分类和选择4自动化测试的引入1测试自动化的内涵1.1简单的实验1.2自动化测试的例子1.3什么是自动化测试1.4自动化测试的特点和优势简单的实验批处理文件Word的邮件合并功能“工具”“信和邮件”“邮件合并”

Word中的宏自动化测试的例子先下载并安装SeleniumIDE/projects/ide/

自动化测试的例子录制操作查看脚本回放脚本自动化测试

(automatedtest)定义:是相对手工测试(manualtest)而存在的一个概念,由手工逐个运行测试用例的操作过程被测试工具自动执行的过程所代替。主要特征:测试工具的使用自动化测试vs.测试自动化自动化测试焦点集中在测试执行,主要是由测试工具自动地完成测试。测试自动化一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行。自动化测试

vs.测试自动化........测试自动化

理念

全过程

所有测试活动包括测试设计

测试管理........自动化测试

测试工具测试执行

单项活动手工测试的局限性无法做到覆盖所有代码路径很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误难以实施系统负载/性能测试,因为需要模拟大量数据或大量并发用户难以实施系统可靠性测试,因为需要模拟系统运行十年、甚至几十年难以在短时间内完成大量(如几千个)的(回归)测试用例面对测试条件组合爆炸,无能为力或效率非常低您的看法?自动化测试的特点速度快结果准确。例如搜索用时是0.33秒,系统都会发现问题,不会忽视任何差异高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍永不疲劳

可靠自动化测试带来的好处测试周期缩短更高质量的产品软件过程更规范高昂的团队士气节省人力资源充分利用硬件资源发现缺陷率高容易实施

创造性、灵活性

覆盖率量化困难

重复测试效率低不一致性、可靠性低依赖人力资源高效率(速度)高复用性覆盖率容易度量准确、可靠不知疲劳激励团队士气

机械、难以发现缺陷一次性投入大手工测试vs.自动测试两者相互补充手工测试适用于:功能逻辑测试、验收测试、适用性测试、交互性测试、不稳定且开发周期短或一次性的软件自动测试适用于:单元测试、集成测试、系统负载或性能测试、可靠性测试…工具本身缺乏想象力和创造性自动测试:发现15%的缺陷手工测试:发现85%的缺陷本章内容1测试自动化的内涵2自动化测试的原理3测试工具的分类和选择4自动化测试的引入2自动化测试的原理2.1代码分析2.2GUI对象识别2.3自动比较技术2.4脚本技术自动化测试的流程举例保存脚本记录执行Log验证测试结果启动应用、执行脚本调用脚本创建脚本录制对象及其操作插入验证点调试脚本启动应用测试报告测试工具实现的原理代码扫描及其分析对象识别捕获和回放(record/playback)脚本技术

自动结果比较代码分析代码的静态分析的关键是建立各种规则,而这种规则的建立是依赖于相应编程语言的语法。如依据EBNF(扩展巴科斯-诺尔范式)对Java代码的分析。参考ParasoftJtest或C++test代码规则表示举例代码扫描编译器规则工具逻辑名称:是对象属性之一的值数值:用于识别对象名称Nativeclass: EditAttachedText:AgentName:Enabled: TrueFocused: TrueHeight: 20Text: HaroldWidth: 119Windows对象识别Windows对象识别-2对象库:本地在测试结构范围内存储对象信息。对象库例如对象(属性)包含登陆窗口在记录过程中捕获的:-AgentNamefield-Passwordfield-OKbutton-Cancelbutton-Helpbutton对象识别工具DOM对象的识别IEDOMInspector

DOM对象识别工具FireBug

脚本技术

线性脚本:录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。

结构化脚本:类似于结构化程序设计,具有各种逻辑结构、函数调用功能。

数据驱动脚本:将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。

关键字驱动脚本:数据驱动脚本的逻辑扩张。

线性脚本结构化脚本关键字驱动脚本数据驱动测试脚本OrderIDchangeswitheachorderplacedTestFailswhencomparingstaticbaselinetodynamicdataTestPasseswhencomparingpatternbaselinetodynamicdata动态内容匹配利用模式匹配技术来验证数据如不是验证“OrderID230”,而是“OrderID###”当验证应用的行为时,考虑了各种不同的合法响应另外一个例子对象映射Version1.0Version

2.0DeterminesMatch

??Tester

seesTool

sees自动比较静态比较和动态比较简单比较和复杂比较敏感性测试比较和健壮性测试比较比较过滤器

Selenium中验证命令的示例验证点命令对象值verifyTitleMyPageverifyValuenameFieldJohnSmithverifySelecteddorpdown2value=js*123verifyTextPresentYouarenowloggedin

verifyAttributetxt1@classbigAndBlodverfyVisiblepostcode

ComboBoxVPEditBoxVP FileVPHTMLLinkVPHTMLDocumentVPListViewVP WindowVP JavaListViewVP

SyntaxofWindowVPfunction:Result=

WindowVP

(action%,recMethod$,parameters$)[actioncanbeoneoffollowingvalues]

CompareImageCompareMenuComparePropertiesExists/DoesNotExist…WindowVP(CompareImage,"Caption=Paint","VP=PICT1A")Thisfunctionreturns1iftheactionperformedpassesReturn0iftheactionperformedfails.Robot验证点本章内容4.1测试自动化的内涵4.2自动化测试的原理4.3测试工具的分类和选择4.4自动化测试的引入各类测试工具1.按测试方法分:

白盒和黑盒测试工具、静态和动态测试工具2.按工具来源分:开源(多数免费)和商业测试工具、自主开发和第三方测试工具3.按测试对象和目的分:

单元、功能、性能测试工具、测试管理工具测试工具的分类静态测试工具

-扫描分析:Findbugs,JTest/C++Test -规则定义动态测试工具 -内存检测工具 -录制/回放工具 -负载测试工具 -监控工具商业工具解决方案

单元测试:ParasoftJTest/C++test,PRQA•C/C++、CompuWareDevPartnerforVisualC++

CompuWareBounceChecker,IBMRationalPurifyPlus/PureCoverage,CompuWareTrueCoverage,TeleLogicLogiscop

功能测试:HPQTP/WinRunner,IBMRationalFunctionalTester/Robot,SegueSilkTest,OracleEmpirixe-TestSuite,CompuwareTestPartner,ParasoftWebKing

性能测试:HPLoadRunner,BorlandSilkPerformer,IBMRationalPerformanceTester,RadviewWebLoad,CompuwareQALoad开源工具解决方案单元测试:JUnit&XUnit家族功能测试:Selenium、AbbotAutoIT/AutoHotkey

性能测试:JMeter数据库:DBprobe网络监控:Wireshark/Ethereal,Netcat,Snort

DemoJUnitDemoSelenium工具选择的过程本章内容1测试自动化的内涵2自动化测试的原理3测试工具的分类和选择4自动化测试的引入正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少人为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足

测试自动化普遍存在的问题不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才

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

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

没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境对策正确的认识找准测试自动化的切入点把测试脚本开发纳入整个软件开发体系软件程序开发和测试自动化不可分离资源的合理调度测试自动化依赖测试流程和测试用例降低测试自动化的投入、提高其产出系统解决方案缺陷报告代码功能测试性能测试单元测试录制/编写软件脚本测试环境配置管理配置管理完整解决方案举例CoverageQuantifyPurify测试计划TestManager测试设计测试开发Robot/RobotJClearQuest配置管理-ClearQuestandClearCaseLTRationa

温馨提示

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

评论

0/150

提交评论