版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 自动化测试自动化测试人人 与与 工工 具具工欲善其事工欲善其事必先利其器必先利其器测试面临的问题测试面临的问题测试用例越来越多,工作量越来越大,许多测试用例会被重复执测试用例越来越多,工作量越来越大,许多测试用例会被重复执行。若手工完成,不仅占用很多人力资源,且工作重复单调,影行。若手工完成,不仅占用很多人力资源,且工作重复单调,影响积极性,降低工作热情响积极性,降低工作热情 怎么办?怎么办?自动化测试自动化测试本本 章章 内内 容容1 测试自动化的内涵测试自动化的内涵2 自动化测试的原理自动化测试的原理3 测试工具的分类和选择测试工具的分类和选择4 自动化测试的引入自动化测试的引
2、入本本 章章 内内 容容1 测试自动化的内涵测试自动化的内涵2 自动化测试的原理自动化测试的原理3 测试工具的分类和选择测试工具的分类和选择4 自动化测试的引入自动化测试的引入1 测试自动化的内涵测试自动化的内涵1.1 简单的实验简单的实验1.2 自动化测试的例子自动化测试的例子1.3 什么是自动化测试什么是自动化测试1.4 自动化测试的特点和优势自动化测试的特点和优势简简 单单 的的 实实 验验v批处理批处理文件文件vWord的邮件合并功能的邮件合并功能 “工具工具”“信和邮件信和邮件”“邮件合邮件合并并” Word中的宏中的宏 自动化测试的例子自动化测试的例子v先下载并安装先下载并安装Se
3、lenium IDE/projects/ide/ 自动化测试的例子自动化测试的例子1. 录制操作录制操作2. 查看脚本查看脚本3. 回放脚本回放脚本自自 动动 化化 测测 试试 (automated test)v定义:是相对手工测试(定义:是相对手工测试(manual test)而存)而存在的一个概念,由手工逐个运行测试用例的操在的一个概念,由手工逐个运行测试用例的操作过程被测试工具自动执行的过程所代替。作过程被测试工具自动执行的过程所代替。v主要特征:测试工具的使用主要特征:测试工具的使用自动化测试自动化测试 vs. 测试自动化测试自动化v自动化测试自
4、动化测试 焦点集中在测试执行,主要是由测试工具焦点集中在测试执行,主要是由测试工具自动地完成测试。自动地完成测试。v测试自动化测试自动化 一切可以由计算机系统自动完成的测试任一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序务都已经由计算机系统或软件工具、程序来承担并自动执行。来承担并自动执行。 自动化测试自动化测试 vs. 测试自动化测试自动化.测试自动化测试自动化n 理念理念n 全过程全过程n 所有测试活动所有测试活动n 包括测试设计包括测试设计n 测试管理测试管理.自动化测试自动化测试 n 测试工具测试工具 n 测试执行测试执行n 单项活动单项活动手工测试的局限性手
5、工测试的局限性p无法做到覆盖所有代码路径无法做到覆盖所有代码路径p很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误p难以实施系统难以实施系统负载负载/ /性能测试性能测试,因为需要模拟大量数据或大,因为需要模拟大量数据或大量并发用户量并发用户p难以实施系统难以实施系统可靠性测试可靠性测试,因为需要模拟系统运行十年、甚,因为需要模拟系统运行十年、甚至几十年至几十年p难以在短时间内完成大量(如几千个)的难以在短时间内完成大量(如几千个)的(回归)测试用例(回归)测试用例p面对测试条件组合爆炸,无能为力或效率非常低面对测试条件组合爆炸,无能为力
6、或效率非常低您的看法?您的看法?自动化测试的特点自动化测试的特点1. 速度快速度快2. 结果准确结果准确。例如搜索用时是。例如搜索用时是0.33秒,系统秒,系统都会发现问题,不会忽视任何差异都会发现问题,不会忽视任何差异3. 高复用性高复用性。一旦完成所用的测试脚本,可。一旦完成所用的测试脚本,可以一劳永逸运行很多遍以一劳永逸运行很多遍4. 永不疲劳永不疲劳 5. 可靠可靠 自动化测试带来的好处自动化测试带来的好处1. 测试周期缩短测试周期缩短2. 更高质量的产品更高质量的产品3. 软件过程更规范软件过程更规范4. 高昂的团队士气高昂的团队士气5. 节省人力资源节省人力资源6. 充分利用硬件资
7、源充分利用硬件资源p 发现缺陷率高发现缺陷率高p 容易实施容易实施 p 创造性、创造性、灵活性灵活性p 覆盖率量化困难覆盖率量化困难p 重复测试效率低重复测试效率低p 不一致性、可靠性低不一致性、可靠性低p 依赖人力资源依赖人力资源u 高效率(速度)高效率(速度)u 高复用性高复用性u 覆盖率容易度量覆盖率容易度量u 准确、准确、可靠可靠u 不知疲劳不知疲劳u 激励团队士气激励团队士气u 机械、难以发现缺陷机械、难以发现缺陷u 一次性投入大一次性投入大手工测试手工测试 vs.自动测试自动测试两者相互补充两者相互补充p手工测试手工测试适用于:适用于: 功能逻辑测试、验收测试、适用性测试、交互功能
8、逻辑测试、验收测试、适用性测试、交互性测试性测试、不稳定且开发周期短或一次性的软件不稳定且开发周期短或一次性的软件p自动测试自动测试适用于:适用于: 单元测试、集成测试、系统负载或性能测试、单元测试、集成测试、系统负载或性能测试、可靠性测试可靠性测试工具本身缺乏想象力和创造性工具本身缺乏想象力和创造性自动测试:发现自动测试:发现15%的缺陷的缺陷手工测试:发现手工测试:发现85%的缺陷的缺陷本本 章章 内内 容容1 测试自动化的内涵测试自动化的内涵2 自动化测试的原理自动化测试的原理3 测试工具的分类和选择测试工具的分类和选择4 自动化测试的引入自动化测试的引入2 自动化测试的原理自动化测试的
9、原理2.1 代码分析代码分析2.2 GUI对象识别对象识别2.3 自动比较技术自动比较技术2.4 脚本技术脚本技术自动化测试的流程举例自动化测试的流程举例保存脚本记录执行Log验证测试结果启动应用、执行脚本调用脚本创建脚本录制对象及其操作插入验证点调试脚本启动应用测试报告测试工具实现的原理测试工具实现的原理p 代码扫描及其分析代码扫描及其分析 p 对象识别对象识别p 捕获和回放(捕获和回放(record/playback)p 脚本技术脚本技术p 自动结果比较自动结果比较代代 码码 分分 析析v代码的静态分析的关键是代码的静态分析的关键是建立各种规则建立各种规则,而这种规则的建立是依赖于相应编程
10、语言而这种规则的建立是依赖于相应编程语言的的语法语法。如依据。如依据EBNF(扩展巴科斯(扩展巴科斯-诺尔诺尔范式)范式) 对对 Java代码的分析。代码的分析。v参考参考Parasoft Jtest 或或C+test代码规则表示举例代码规则表示举例代代 码码 扫扫 描描p 编译器编译器 p 规则规则p 工具工具v逻辑名称:是对象属性之一的值逻辑名称:是对象属性之一的值v数值数值:用于识别对象名称用于识别对象名称Nativeclass: EditAttached Text: Agent Name:Enabled: TrueFocused: TrueHeight: 20Text: HaroldW
11、idth: 119Windows对象识别对象识别Windows对象识别对象识别 2对象库:本地在测试结构范围内存储对象信息。对象库:本地在测试结构范围内存储对象信息。对象库对象库例如对象例如对象 (属性属性) 包含登陆包含登陆窗口在记录过程中捕获的窗口在记录过程中捕获的:- Agent Name field- Password field- OK button- Cancel button- Help button对象识别工具对象识别工具DOM对象的识别对象的识别IE DOM Inspector DOM对象识别工具对象识别工具FireBug 脚脚 本本 技技 术术p 线性脚本线性脚本:录制手工
12、执行的测试用例得到的脚本,这:录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。的测试用例都可以得到完整的回放。p 结构化脚本结构化脚本:类似于结构化程序设计,具有各种逻辑:类似于结构化程序设计,具有各种逻辑结构、函数调用功能。结构、函数调用功能。p 数据驱动脚本数据驱动脚本:将测试输入存储在独立的(数据)文:将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。件中,而不是存储在脚本中。p 关键字驱动脚本关键字驱动脚本:数据驱动脚本的逻辑扩张。:数据驱动脚本的逻辑扩张。 线线
13、 性性 脚脚 本本结结 构构 化化 脚脚 本本关键字驱动脚本关键字驱动脚本数据驱动测试脚本数据驱动测试脚本Order ID changes with each order placedTest Fails when comparing static baseline to dynamic dataTest Passes when comparing pattern baseline to dynamic data动态内容匹配动态内容匹配利用模式匹配技术来验证数据利用模式匹配技术来验证数据如不是验证如不是验证 “Order ID 230”, 而是而是 “Order ID #” 当验证应用的行为时
14、,考虑了各种不同的合法响应当验证应用的行为时,考虑了各种不同的合法响应另外一个例子另外一个例子对对 象象 映映 射射Determines MatchTesterseesToolsees自自 动动 比比 较较 p 静态比较和动态比较静态比较和动态比较p 简单比较和复杂比较简单比较和复杂比较 p 敏感性测试比较和健壮性测试比较敏感性测试比较和健壮性测试比较p 比较过滤器比较过滤器Selenium中验证命令的示例中验证命令的示例 验证点命令验证点命令对象对象值值verifyTitle My Page verifyValue nameField John Smith verifySelected do
15、rpdown2 value=js*123 verifyTextPresent You are now logged in verifyAttribute txt1class bigAndBlod verfyVisible postcode ComboBoxVPEditBoxVPFileVPHTMLLinkVP HTMLDocumentVPListViewVPWindowVPJavaListViewVP Syntax of WindowVP function: Result = WindowVP (action%, recMethod$, parameters$) action can be o
16、ne of following values CompareImage CompareMenu CompareProperties Exists/DoesNotExist WindowVP (CompareImage, Caption=Paint, VP=PICT1A) This function returns 1 if the action performed passes Return 0 if the action performed fails. Robot验证点验证点本本 章章 内内 容容4.1 测试自动化的内涵测试自动化的内涵4.2 自动化测试的原理自动化测试的原理4.3 测试工
17、具的分类和选择测试工具的分类和选择4.4 自动化测试的引入自动化测试的引入各类测试工具各类测试工具1. 按测试方法分:按测试方法分: 白盒白盒和和黑盒黑盒测试工具、测试工具、静态静态和和动态动态测试工具测试工具2.按工具来源分:按工具来源分: 开源(多数免费)和商业测试工具、开源(多数免费)和商业测试工具、 自主开发和第三方测试工具自主开发和第三方测试工具3.按测试对象和目的分:按测试对象和目的分: 单元单元、功能功能、性能性能测试工具、测试工具、测试测试管理工具管理工具测试工具的分类测试工具的分类静态测试工具静态测试工具 - 扫描分析:扫描分析:Findbugs, JTest/C+Test-
18、 规则定义规则定义动态测试工具动态测试工具- 内存检测工具内存检测工具- 录制录制/回放工具回放工具- 负载测试工具负载测试工具- 监控工具监控工具商业工具解决方案商业工具解决方案v 单元测试单元测试:Parasoft JTest /C+test, PR QAC/C+、CompuWare DevPartner for Visual C+ CompuWare BounceChecker, IBM Rational PurifyPlus/PureCoverage, CompuWare TrueCoverage, TeleLogic Logiscopv 功能测试功能测试:HP QTP/WinRunn
19、er, IBM Rational Functional Tester/Robot, Segue SilkTest, Oracle Empirix e-Test Suite , Compuware Test Partner, Parasoft WebKingv 性能测试性能测试:HP LoadRunner, Borland SilkPerformer, IBM Rational Performance Tester, Radview WebLoad, Compuware QA Load开源工具解决方案开源工具解决方案v 单元测试:单元测试:JUnit & XUnit 家族家族 v 功能测试:功能
20、测试:Selenium、Abbot AutoIT/AutoHotkey v 性能测试:性能测试:JMeterv 数据库:数据库:DBprobev 网络监控:网络监控:Wireshark/Ethereal, Netcat, Snort DemovJUnitDemovSelenium工具选择的过程工具选择的过程本本 章章 内内 容容1 测试自动化的内涵测试自动化的内涵2 自动化测试的原理自动化测试的原理3 测试工具的分类和选择测试工具的分类和选择4 自动化测试的引入自动化测试的引入正确认识测试自动化正确认识测试自动化v不现实的期望注定测
21、试自动化的失败不现实的期望注定测试自动化的失败v测试自动化测试自动化能能: 显著降低重复手工测试的时间显著降低重复手工测试的时间 建立可靠、重复的测试,减少人为错误建立可靠、重复的测试,减少人为错误 增强测试质量和覆盖率增强测试质量和覆盖率v测试自动化测试自动化不能不能: 完全替代手工测试和手工测试工程师完全替代手工测试和手工测试工程师 保证保证100%100%的测试覆盖率的测试覆盖率 弥补测试实践的不足弥补测试实践的不足 测试自动化普遍存在的问题测试自动化普遍存在的问题p 不正确的观念或不现实的期望不正确的观念或不现实的期望p 缺乏具有良好素质、经验的测试人才缺乏具有良好素质、经验的测试人才p 测试工具本身的问题影响测试的质量测试工具本身的问题影响测试的质量p 测试脚本的质量低劣测试脚本的质量低劣p 没有进行有效的、充分的培训没有进行有效的、充分的培训p 没有考虑到公司的实际情况,盲目引入测试工具没有考虑到公司的实际情况,盲目引入测试工具p 没有形成一个良好的使用测试工具的环境没有形成一个良好的使用测试工具的环境对对 策策p 正确的认识正确的认识 p 找准测试自动化的切入点找准测试自动化的切入点p 把测试脚本开发纳入整个软件开发体系把测试脚本开发纳入整个软件开发体系p 软件程序开发和测试自动化不可分离软件程序开发和测试自动化不可分离 p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度夫妻协议离婚范本:离婚后双方财产分割与子女赡养合同
- 2025个人虾池承包土地使用及租赁合同样本4篇
- 2025年度矿产资源开采土地承包合同解除与环保协议
- 二零二五版养老产业派遣护理人员服务合同规范4篇
- 2025年度美甲美睫店员工正式聘用合同范本(员工福利待遇升级)
- 二零二五年度平面模特形象使用权授权合同范本
- 二零二五年度坡屋面小青瓦施工节能减排技术合同4篇
- 二零二五年度无人机销售安装及培训合同范本3篇
- 二零二五年度新能源电站运维人员派遣合同范本
- 课题申报参考:明清近代诗文与江南文脉研究
- 高考满分作文常见结构完全解读
- 专题2-2十三种高考补充函数归类(讲练)
- 理光投影机pj k360功能介绍
- 六年级数学上册100道口算题(全册完整版)
- 八年级数学下册《第十九章 一次函数》单元检测卷带答案-人教版
- 帕萨特B5维修手册及帕萨特B5全车电路图
- 系统解剖学考试重点笔记
- 小学五年级解方程应用题6
- 云南省地图含市县地图矢量分层地图行政区划市县概况ppt模板
- 年月江西省南昌市某综合楼工程造价指标及
- 作物栽培学课件棉花
评论
0/150
提交评论