ST第4章自动化测试精品PPT课件
合集下载
第4章软件自动化测试精品PPT课件

Version 01
12/10/2020
Slide 4
4.1软件自动化测试的概念
4.1.2 软件自动化测试的应用场合
2.不适合做自动化测试的系统或场合 (1)逻辑测试、验收测试、适应性测试、涉及到物理交互 的测试; (2)系统业务逻辑和交互过于复杂; (3)需求频繁变动,稳定性不好的软件; (4)开发周期很短的软件; (5)一次性开发的软件。
Version 01
12/10/2020
Slide 2
4.1软件自动化测试的概念
4.1.1软件自动化测试的意义
2.自动化测试的优势 (1)回归测试方便,缩短了软件测试周期; (2)能够执行繁琐的程序测试,效率高; (3)测试覆盖率高; (4)测试的一致性好,具有可重复性; (5)测试的稳定性和可靠性高; (6)能够执行手工无法做的测试工作; (7)节省了人力资源,降低了测试成本。
第四章 软件自动化测试
4.1软件自动化测试的概念
软件自动化测试的定义:根据测试规则编制计算机软件 ,并在计算机环境中运行,自动验证被测程序的响应和行为。
4.1.1软件自动化测试的意义 (1)提高软件测试质量; (2)提高软件测试效率; (3)将测试人员从繁重的重复性劳动中解放出来 。
Version 01
Version 01
12/10/2020
Slide 5
4.1软件自动化测试的概念
4.1.3 软件自动化测试的重要问题
1.自动化测试的时间点 (1)功能稳定的系统与开发过程同时准备; (2)功能变化的系统待开发过程完成进行; (3)GUI稳定后再开始自动化测试。
2.自动化测试的覆盖率 不要追求在很短的时间实现自动化测试,也不要追求100% 的自动化测试覆盖率。积累经验,循序渐进的自动化测试,效 果会更好。
自动化测试讲解 PPT课件

5
一、简述自动化测试框架
• 也许很多人印象里的自动化测试框架就是一个能够进 行自动化测试的程序似的。其实这不全面,真正的自 动化测试框架可以不是一个程序,它仅仅是一种思想 和方法的集合,说白了,就是一个架构,大家应该都 知道操作系统其实也是一个架构吧,你可以把其理解 成一个基础的自动化测试框架为一个简单的操作系统, 它定义了几层架构,定义了各层互相通信的方式。通 过这个架构我们才能在上面进行拓展我们的测试对象 (核心体)、测试库(链接库)、测试用例集(各个 windows进程)、测试用例(线程),而其之间的通 过参数的传递进行通信(即相当于系统中的消息传 递)。
重要性不言而喻; • 集成测试在很多情况下非常适合使用自动化的手段去运行,最明显的例子是rails里的integration test;
(unit test:就是独立测试每个功能块的功能.integration test:是测试那些有相互联系的功能块之间的 联系, 和共同运行的结果.system test: 测试整个系统,所有的功能块都要考虑.) • 当单元测试和集成测试都没做好,甚至是没有做的情况下,UI级的自动化测试可以扮演救火队员的 角色,尽管成本很高,但是可维护的UI测试代码是回归测试的福音,也是提高测试生产力的重要手 段; • 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低, 而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚 信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的 代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。 那么自动化测试如何去学习呢?这里给出一个很平滑的线路图。 • 学习一门脚本语言,ruby python or javascript。当然,如果你信仰优雅,追求美感的话,你可以学 习ruby(本框架使用的语言) • 学习语言的过程是漫长而枯燥的,你可以通过使用selenium webdriver api来更加有效率的学习。在 学会自动化测试的同时也搞定了一门语言,而且每一步都很有成就感。
一、简述自动化测试框架
• 也许很多人印象里的自动化测试框架就是一个能够进 行自动化测试的程序似的。其实这不全面,真正的自 动化测试框架可以不是一个程序,它仅仅是一种思想 和方法的集合,说白了,就是一个架构,大家应该都 知道操作系统其实也是一个架构吧,你可以把其理解 成一个基础的自动化测试框架为一个简单的操作系统, 它定义了几层架构,定义了各层互相通信的方式。通 过这个架构我们才能在上面进行拓展我们的测试对象 (核心体)、测试库(链接库)、测试用例集(各个 windows进程)、测试用例(线程),而其之间的通 过参数的传递进行通信(即相当于系统中的消息传 递)。
重要性不言而喻; • 集成测试在很多情况下非常适合使用自动化的手段去运行,最明显的例子是rails里的integration test;
(unit test:就是独立测试每个功能块的功能.integration test:是测试那些有相互联系的功能块之间的 联系, 和共同运行的结果.system test: 测试整个系统,所有的功能块都要考虑.) • 当单元测试和集成测试都没做好,甚至是没有做的情况下,UI级的自动化测试可以扮演救火队员的 角色,尽管成本很高,但是可维护的UI测试代码是回归测试的福音,也是提高测试生产力的重要手 段; • 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低, 而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚 信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的 代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。 那么自动化测试如何去学习呢?这里给出一个很平滑的线路图。 • 学习一门脚本语言,ruby python or javascript。当然,如果你信仰优雅,追求美感的话,你可以学 习ruby(本框架使用的语言) • 学习语言的过程是漫长而枯燥的,你可以通过使用selenium webdriver api来更加有效率的学习。在 学会自动化测试的同时也搞定了一门语言,而且每一步都很有成就感。
2019自动化测试.ppt

7
5.5
8.1 8.1
9
- Priority # / Order
Assuming test cases for all risks and complexities are in-scope for each test cycle.
自动化测试目标
初级阶段目标
高级阶段目标
只适用于功能测试阶段,因为 一般会: 给定预算,进度,资源 给定平均或期望的测试运行次 数 根据业务流程的不同(复杂度 和风险)最大化自动化率(只 能达到有限值)
Risk High Medium Low 5.0 1 6.6 5 5.0 2 # - Priority # / Order 7.3 7 7.3 6 8.1 9 5.9 4 8.1 8 5.5 3
Assuming test cases for all risks and complexities are in-scope for each test cycle.
测试阶段的 功能测试
– 背景:在高覆盖率要求的前提下,每个功能的测试案例量很大,并且由于 测试阶段中不断的代码修改、集成,重复测试的次数很多 – 应用:自动化功能测试,包括接口功能测试、界面安全性测试、业务功能 测试,提高测试的覆盖率,降低测试的工作强度 – 限制:由于测试阶段中的代码和界面的频繁变更,自动化的覆盖率应以少 量覆盖、关键覆盖为原则
一、 技术发展趋势-1
没有测试
手工测试
• • • • •
时间紧 可靠性低 人力缺乏 无法保证一致性 无法重复
快速 可重复 高覆盖率 高可靠性 重用性强
自动测试
1、 将乏味且人工容易出错的工作进行自动化,实现功能的回归测试,在应用程序 修改之后,运行自动化测试脚本,快速完成回归测试
《自动化测试》课件

提高自动化测试效率的技巧
合理选择自动化测试工具
定期维护和更新测试脚本
制定详细的测试计划和测试用例 优化测试脚本,减少重复代码
提高测试人员的技能和经验
采用持续集成和持续部署(CI/CD) 方法
自动化测试与手动测试的协同工作方式
自动化测试与手 动测试的优缺点
自动化测试与手 动测试的适用场 景
自动化测试与手 动测试的协同策ቤተ መጻሕፍቲ ባይዱ略
执行测试用例:按照设计的 测试用例执行测试
评估测试结果:根据测试结 果评估测试效果,包括通过
率、覆盖率等指标
测试环境搭建
硬件环境:服务器、 网络设备、存储设 备等
软件环境:操作系 统、数据库、中间 件等
测试工具:自动化 测试框架、测试脚 本、测试数据等
测试数据:模拟真 实数据,确保测试 结果的准确性
工具的稳定性和 可靠性:是否稳 定可靠,是否会 出现崩溃、错误 等现象
工具的社区支持 和文档:是否有 活跃的社区支持, 文档是否齐全, 是否容易找到解 决方案
自动化测试工具的使用方法
安装自动化 测试工具, 如Selenium、 Appium等
编写自动化 测试脚本, 包括测试步 骤、预期结 果等
执行自动化 测试脚本, 观察测试结 果
自动化测试与手 动测试的协同工 具和技巧
06
未来自动化测试的发展 趋势
AI技术在自动化测试中的应用前景
提高测试覆盖率:AI技术可 以自动识别测试盲点,提高 测试覆盖率
提高测试准确性:AI技术可 以自动识别测试错误,提高
测试准确性
提高测试效率:AI技术可以 自动生成测试用例,提高测 试效率
提高测试智能化:AI技术可 以自动分析测试结果,提高
ST-第4章+自动化测试

件中,而不是存储在脚本中。
zhu.kerry@ /Kerryzhu
线性脚本
zhu.kerry@ /Kerryzhu
结构化脚本
zhu.kerry@ /Kerryzhu
zhu.kerry@
代码规则表示举例
zhu.kerry@ /Kerryzhu
代码扫描
编译器 规则
工具
zhu.kerry@ /Kerryzhu
Windows对象识别
调试脚本
保存脚本
调用脚本
zhu.kerry@ /Kerryzhu
测试工具实现的原理
代码扫描及其分析
对象识别
捕获和回放(record/playback) 脚本技术 自动结果比较
zhu.kerry@
代码分析
代码的静态分析的关键是建立各种规则,而这种 规则的建立是依赖于相应编程语言的语法。如依 据EBNF(扩展巴科斯-诺尔范式) 对 Java代码 的分析。 参考Parasoft Jtest 或C++test
关键字驱动脚本
zhu.kerry@ /Kerryzhu
数据驱动测试脚本
Order ID changes with each order placed
动态内容匹配 利用模式匹配技术来验证数据 如不是验证 “Order ID 230”, 而是 “Order ID ###” 当验证应用的行为时,考虑了各种不同的合法响应
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本,
这种脚本包含所有的击键、移动、输入数据等,所有录 制的测试用例都可以得到完整的回放。
结构化脚本,类似于结构化程序设计,具有各种逻辑 数据驱动脚本,将测试输入存储在独立的(数据)文 关键字驱动脚本,是数据驱动脚本的逻辑扩张
自动化测试技术PPT课件

哪些能自动化?
软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维 护成本,如果变动过于频繁,维护成本太高。 项目周期足够长 若项目周期太短,或是紧急上线的新功能, 新产品是不适合去用自动化测试的。 自动化测试脚本可重复使用 若自动化脚本利用率不高,测会造成人力的 浪费。
自动化工具介绍
PHPUnit 简介 PHPUnit是一个轻量级的PHP测试框架。它 是在PHP5下面对JUnit3系列版本的完整移植, 是xUnit测试框架家族的一员(它们都基于模式先 锋Kent Beck的设计)。 类似的其他语言的还有JUNIT(java), NUNIT(c#),UNITTEST(python)以及 Rspec(Ruby).
/files/seleniumserver-standalone-2.22.0.jar
安装selenium server:只要安装了jdk1.6 或1.7 都 可以运行selenium-server,在命令行输入: java -jar selenium-server-standalone-2.22.0.jar
测试用例编写及测试过程
测试脚本的录制 用Selenium录制测试操作,并转化成PHPUNIT脚 本,保存成对应该的文件。在要检测的地方,加上适 当的Assert语句。 运行Selenium Server 服务器 在CMD窗口是运行命令: java -jar seleniumserver-standalone-2.22.0.jar
自动化测试技术分享
宋现锋 @潜龙0318来自内 容提要何为自动化?
哪些能自动化? 自动化工具介绍 测试用例编写及测试过程 编写自动化用例中应注意的问题 目前编写的自动化用例介绍
何为自动化?
自动化(Automation)是指机器设备、系统或过 程(生产、管理过程)在没有人或较少人的直接 参与下,按照人的要求,经过自动检测、信息处 理、分析判断、操纵控制,实现预期的目标的过 程。 我们测试领域中的自动化,就是“把以人为驱动的 测试行为转化为机器执行的一种过程。” 自动化测试的 7 个步骤:改进自动化测试过程,定义 需求,验证概念,支持产品的可测试性,具有可 延续性的设计,有计划的部署和面对成功的挑战。
上海泽众软件自动化测试ppt课件

组件1 组件2 AUT 事件 组件3 组件4
脚本 AR
对象库
执行原理
• 执行
组件1 组件2 AUT 事件 组件3 组件4
脚本 AR
对象库
面向工程的多文档用户界面
工 程
测试脚本
运用Beanshell脚本言语的脚本展现 符合java规范语法、支持java扩展 编辑器支持关键字着色 支持同步点
测试脚本的构成
AutoRunner操作演示 AutoRunner流程
录制脚本
结果分析
添加检查点
自动执行
修正脚本 参数化
比对结果 脚本调试
谢谢各位!
spasvo
• 阅读器 • .net(c#、vb、SWF〕 • visual c++ • Java SWT/AWT/SWING • Flex • Delphi • Powerbuilder • Silverlight对象,用Silverlight技术开发的网页。 • WPF对象,用WPF技术开发的桌面程序。 • QT对象,用QT技术开发的桌面程序
上海泽众软件——自动化测试
上海泽众 2021-06-14
了解软件自动化测试
• 何为软件自动化测试 • 自动化测试的产生和意义
何为软件自动化测试
• 自动测试过程就是经过模拟人工操作,完成对被测试系统 的输入,并且对输出进展检验的过程。自动测试是由软件 替代人工操作,对被测试系统的 GUI 发出指令,模拟操 作,完成自动测试过程。
测脚本
测试 脚本
测试脚本 定义了测试活动〔action〕执行 的顺序和逻辑,是自动测试的根底。
对象库
对象库 定义了在测试活动中操作的对象和
对象属性、款式,是实现测试脚本执行的 根底,也是测试工具识别对象的根底。
脚本 AR
对象库
执行原理
• 执行
组件1 组件2 AUT 事件 组件3 组件4
脚本 AR
对象库
面向工程的多文档用户界面
工 程
测试脚本
运用Beanshell脚本言语的脚本展现 符合java规范语法、支持java扩展 编辑器支持关键字着色 支持同步点
测试脚本的构成
AutoRunner操作演示 AutoRunner流程
录制脚本
结果分析
添加检查点
自动执行
修正脚本 参数化
比对结果 脚本调试
谢谢各位!
spasvo
• 阅读器 • .net(c#、vb、SWF〕 • visual c++ • Java SWT/AWT/SWING • Flex • Delphi • Powerbuilder • Silverlight对象,用Silverlight技术开发的网页。 • WPF对象,用WPF技术开发的桌面程序。 • QT对象,用QT技术开发的桌面程序
上海泽众软件——自动化测试
上海泽众 2021-06-14
了解软件自动化测试
• 何为软件自动化测试 • 自动化测试的产生和意义
何为软件自动化测试
• 自动测试过程就是经过模拟人工操作,完成对被测试系统 的输入,并且对输出进展检验的过程。自动测试是由软件 替代人工操作,对被测试系统的 GUI 发出指令,模拟操 作,完成自动测试过程。
测脚本
测试 脚本
测试脚本 定义了测试活动〔action〕执行 的顺序和逻辑,是自动测试的根底。
对象库
对象库 定义了在测试活动中操作的对象和
对象属性、款式,是实现测试脚本执行的 根底,也是测试工具识别对象的根底。
自动化测试(PPT40页).ppt

自动化测试工具
实现了负载测试、功能测试和测试管理的几个工具。
1. 负载测试工具Load Runner Load Runner是一种适用于各种体系构架的企业级系统的
自动负载测试工具。通过模拟实际用户的操作行为和性能监测 ,帮助查找Bug。
(1)可以记录下客户端的操作,形成脚本文件。 (2)产生众多的虚拟用户,以虚拟用户的方式模拟真实 用户的操作行为,创建系统负载。
自动化测试原理和方法
3.脚本技术 脚本是一种特殊的计算机程序,包含了数据和指令。 脚本技术是围绕脚本程序的结构而进行的设计,可以实现
测试用例所要求的数据输入、操作流程和验证点。 脚本产生方法: (1)通过录制产生,然后再做修改; (2)用脚本语言编写程序。
自动化测试原理和方法
4.虚拟用户技术 通过模拟真实用户的数量和操作行为,对被测程序施加负
自动化测试工具
2. 功能测试工具Win Runner Win Runner是基于windows的自动化功能测试软件。主
要用于检测应用程序是否能够达到预期的功能,测试复杂的企 业级应用。
(1)按照预先设计,将业务处理过程录制下来,并转换 为测试脚本,支持测试脚本的编辑、扩展、执行,提供测试结 果报告。
自动化测试工具
(3)建立持续且循环的负载,定义用户的访问时间,根 据用户人数事先设定测试目标,优化测试流程。 (4)实时监测器可以在负载测试的任何时候观察到应用 系统的运行性能,显示交易性能数据和其他系统组件(应用服 务器、Web服务器、网络设备、数据库)的实时性能。 (5)收集、汇总所有测试数据,提供高级的分析报告。
(1)重新测试全部用例 ; (2)基于风险选择测试; (3)重新测试修改的部分。
自动化回归测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象库
例如对象 (属性) 包含登陆 窗口在记录过程中捕获的: - Agent Name field - Password field - OK button - Cancel button - Help button
zhu.
对象识别工具
zhu.
IE DOM Inspector
DOM对象的识别
zhu.
软件测试
第4章 自动化测试
Kerry Zhu
Zhu.
zhu.
人与工具
工欲善其事,必先利其器。 荀子曰:吾尝终日而思矣, 不如须臾之所学也。吾尝〔 足支〕而望矣,不如登高之 博见也。登高而招,臂非加 长也,而见者远。顺风而呼 ,声非加疾也,而闻者彰。 假舆马者,非利足也,而致 千里。假舟辑者,非能水也 ,而绝江河。君子生非异也 ,善假于物也。君子性非异 也,善假于物也。
❖ 代码的静态分析的关键是建立各种规则,而这种 规则的建立是依赖于相应编程语言的语法。如依 据EBNF(扩展巴科斯-诺尔范式) 对 Java代码 的分析。
❖参考Parasoft Jtest 或C++test
zhu.
代码规则表示举例
zhu.
编译器 规则 工具
代码扫描
zhu.
Windows对象识别
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入
zhu.
4.1 测试自动化的内涵
❖4.1.1 简单的实验 ❖4.1.2 自动化测试的例子 ❖4.1.3 什么是自动化测试 ❖4.1.4 自动化测试的特点和优势
zhu.
FireBug
DOM对象识别工具
zhu.
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本, 这种脚本包含所有的击键、移动、输入数据等,所有录 制的测试用例都可以得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑 结构、函数调用功能。 数据驱动脚本,将测试输入存储在独立的(数据)文 件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张
❖ 逻辑名称是对象属性之一的值 ❖ 数值 用于识别对象名称
Nativeclass: Edit
Attached Text: Agent Name:
Enabled:
True
Focused:
True
Height:
20
Text:
Harold
Width:
119
zhu.
Windows对象识别 - 2
对象库 是本地在测试结构范围内 存储对像信息.
您的看法? 难以实施系统可靠性测试,因为需要模拟系统运行十年、甚 至几十年。 难以在短时间内完成大量(如几千个)的(回归)测试用例 面对测试条件组合爆炸,无能为力或效率非常低。
zhu.
自动化测试的特点
❖ 自动运行的速度快,是手工无法相比的。 ❖ 测试结果准确。例如搜索用时及时是0.33秒或0.24
zhu.
手工测试 vs.自动测试
手工测试
发现缺陷率高 容易实施 创造性、灵活性 覆盖率量化困难 重复测试效率低 不一致性、可靠性低 依赖人力资源
自动测试
✓ 高效率(速度) ✓ 高复用性 ✓ 覆盖率容易度量 ✓ 准确、可靠 ✓ 不知疲劳 ✓ 激励团队士气 ✓ 机械、难以发现缺陷 ✓ 一次性投入大
zhu.
两者相互补充
在系统功能逻辑测试、验收测试、适用性测试、涉及交 互性测试时,多采用手工测试方法;
单元测试、集成测试、系统负载或性能、可靠性测试等 比较适合采用TA;
对那种不稳定、开发周期短或一次性的软件等不适合TA 工具本身缺乏想象力和创造性,自动测试只能发现15%
的缺陷,而手工测试可以发现85%的缺陷;
秒,系统都会发现问题,不会忽视任何差异
❖ 高复用性。一旦完成所用的测试脚本,可以一劳永
逸运行很多遍
❖永不疲劳 ❖可靠 ❖独特的能力
zhu.
自动化测试带来的好处
❖测试周期缩短 ❖更高质量的产品 ❖软件过程更规范 ❖高昂的团队士气 ❖节省人力资源,降低企业成本 ❖ 充分利用硬件资源,降低企业成本。
表4-2 自动化测试在不同测试阶段的应用
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入
zhu.
4.2 自动化测试的原理
4.2.1 代码分析 4.2.2 GUI对象识别 4.2.3 DOM对象识别 4.2.4 自动比较技术 4.2.5 脚本技术
zhu.
❖ 测试工具的使用是自动化测试的主要特征
zhu.
自动化测试 vs. 测试自动化
❖ 自动化测试焦点集中在测试执行,主要是由测试 工具自动地完成测试。
❖ 测试自动化指“一切可以由计算机系统自动完成 的测试任务都已经由计算机系统或软件工具、程 序来承担并自动执行”
zhu.
自动化测试 vs. 测试自动化
.自动化测试
.
. 测试工具
. 测试执行
.
单项活动
.
.
.
.测试自动化
.
. 理念
. 全过程
. . .
所有测试活动 包括测试设计
. 测试管理
zhu.
手工测试的局限性
无法做到覆盖所有代码路径 很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误 难以实施系统负载/性能测试,因为需要模拟大量数据或大
量并发用户
简单的实验
❖ 批处理文件 ❖ Word的邮件合并功能
“工具”“信和邮件”“邮件 合并”
zhu.
Word中的宏
zhu.
自动化测试的例子(1)
❖先下载并安装Selenium IDE
zhu.
自动化测试的例子(2)
❖ 录制操作 ❖ 查看脚本 ❖ 回放脚本
zhu.
什么是自动化测试
❖自动化测试(automated test)是相对手工测试 (manual test)而存在的一个概念,由手工逐个 地运行测试用例的操作过程被测试工具自动执行 的过程所代替。
自动化测试的流程举例
启动应用
创建脚本 录制对象及其操作
插入验证点 调试脚本
测试报告 保存脚本
记录执行Log 验证测试结果 启动应用、执行脚本
调用脚本
zhu.
测试工具实现的原理
代码扫描及其分析 对象识别 捕获和回放(record/playback) 脚本技术 自动结果比较
zhu.
代码分析
zhu.
测试面临的问题
❖ 测试用例会越来越多,工作量越来越大,而且许多测试用 例会被不断地重复执行。如果由手工来完成,不仅占用很 多人力资源,而且工作重复单调,会影响测试人员的积极 性,降低测试工作人员的热情… 怎么办?
自动化测试
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入
例如对象 (属性) 包含登陆 窗口在记录过程中捕获的: - Agent Name field - Password field - OK button - Cancel button - Help button
zhu.
对象识别工具
zhu.
IE DOM Inspector
DOM对象的识别
zhu.
软件测试
第4章 自动化测试
Kerry Zhu
Zhu.
zhu.
人与工具
工欲善其事,必先利其器。 荀子曰:吾尝终日而思矣, 不如须臾之所学也。吾尝〔 足支〕而望矣,不如登高之 博见也。登高而招,臂非加 长也,而见者远。顺风而呼 ,声非加疾也,而闻者彰。 假舆马者,非利足也,而致 千里。假舟辑者,非能水也 ,而绝江河。君子生非异也 ,善假于物也。君子性非异 也,善假于物也。
❖ 代码的静态分析的关键是建立各种规则,而这种 规则的建立是依赖于相应编程语言的语法。如依 据EBNF(扩展巴科斯-诺尔范式) 对 Java代码 的分析。
❖参考Parasoft Jtest 或C++test
zhu.
代码规则表示举例
zhu.
编译器 规则 工具
代码扫描
zhu.
Windows对象识别
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入
zhu.
4.1 测试自动化的内涵
❖4.1.1 简单的实验 ❖4.1.2 自动化测试的例子 ❖4.1.3 什么是自动化测试 ❖4.1.4 自动化测试的特点和优势
zhu.
FireBug
DOM对象识别工具
zhu.
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本, 这种脚本包含所有的击键、移动、输入数据等,所有录 制的测试用例都可以得到完整的回放。 结构化脚本,类似于结构化程序设计,具有各种逻辑 结构、函数调用功能。 数据驱动脚本,将测试输入存储在独立的(数据)文 件中,而不是存储在脚本中。 关键字驱动脚本,是数据驱动脚本的逻辑扩张
❖ 逻辑名称是对象属性之一的值 ❖ 数值 用于识别对象名称
Nativeclass: Edit
Attached Text: Agent Name:
Enabled:
True
Focused:
True
Height:
20
Text:
Harold
Width:
119
zhu.
Windows对象识别 - 2
对象库 是本地在测试结构范围内 存储对像信息.
您的看法? 难以实施系统可靠性测试,因为需要模拟系统运行十年、甚 至几十年。 难以在短时间内完成大量(如几千个)的(回归)测试用例 面对测试条件组合爆炸,无能为力或效率非常低。
zhu.
自动化测试的特点
❖ 自动运行的速度快,是手工无法相比的。 ❖ 测试结果准确。例如搜索用时及时是0.33秒或0.24
zhu.
手工测试 vs.自动测试
手工测试
发现缺陷率高 容易实施 创造性、灵活性 覆盖率量化困难 重复测试效率低 不一致性、可靠性低 依赖人力资源
自动测试
✓ 高效率(速度) ✓ 高复用性 ✓ 覆盖率容易度量 ✓ 准确、可靠 ✓ 不知疲劳 ✓ 激励团队士气 ✓ 机械、难以发现缺陷 ✓ 一次性投入大
zhu.
两者相互补充
在系统功能逻辑测试、验收测试、适用性测试、涉及交 互性测试时,多采用手工测试方法;
单元测试、集成测试、系统负载或性能、可靠性测试等 比较适合采用TA;
对那种不稳定、开发周期短或一次性的软件等不适合TA 工具本身缺乏想象力和创造性,自动测试只能发现15%
的缺陷,而手工测试可以发现85%的缺陷;
秒,系统都会发现问题,不会忽视任何差异
❖ 高复用性。一旦完成所用的测试脚本,可以一劳永
逸运行很多遍
❖永不疲劳 ❖可靠 ❖独特的能力
zhu.
自动化测试带来的好处
❖测试周期缩短 ❖更高质量的产品 ❖软件过程更规范 ❖高昂的团队士气 ❖节省人力资源,降低企业成本 ❖ 充分利用硬件资源,降低企业成本。
表4-2 自动化测试在不同测试阶段的应用
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入
zhu.
4.2 自动化测试的原理
4.2.1 代码分析 4.2.2 GUI对象识别 4.2.3 DOM对象识别 4.2.4 自动比较技术 4.2.5 脚本技术
zhu.
❖ 测试工具的使用是自动化测试的主要特征
zhu.
自动化测试 vs. 测试自动化
❖ 自动化测试焦点集中在测试执行,主要是由测试 工具自动地完成测试。
❖ 测试自动化指“一切可以由计算机系统自动完成 的测试任务都已经由计算机系统或软件工具、程 序来承担并自动执行”
zhu.
自动化测试 vs. 测试自动化
.自动化测试
.
. 测试工具
. 测试执行
.
单项活动
.
.
.
.测试自动化
.
. 理念
. 全过程
. . .
所有测试活动 包括测试设计
. 测试管理
zhu.
手工测试的局限性
无法做到覆盖所有代码路径 很难捕捉到与时序、死锁、资源冲突、多线程等有关的错误 难以实施系统负载/性能测试,因为需要模拟大量数据或大
量并发用户
简单的实验
❖ 批处理文件 ❖ Word的邮件合并功能
“工具”“信和邮件”“邮件 合并”
zhu.
Word中的宏
zhu.
自动化测试的例子(1)
❖先下载并安装Selenium IDE
zhu.
自动化测试的例子(2)
❖ 录制操作 ❖ 查看脚本 ❖ 回放脚本
zhu.
什么是自动化测试
❖自动化测试(automated test)是相对手工测试 (manual test)而存在的一个概念,由手工逐个 地运行测试用例的操作过程被测试工具自动执行 的过程所代替。
自动化测试的流程举例
启动应用
创建脚本 录制对象及其操作
插入验证点 调试脚本
测试报告 保存脚本
记录执行Log 验证测试结果 启动应用、执行脚本
调用脚本
zhu.
测试工具实现的原理
代码扫描及其分析 对象识别 捕获和回放(record/playback) 脚本技术 自动结果比较
zhu.
代码分析
zhu.
测试面临的问题
❖ 测试用例会越来越多,工作量越来越大,而且许多测试用 例会被不断地重复执行。如果由手工来完成,不仅占用很 多人力资源,而且工作重复单调,会影响测试人员的积极 性,降低测试工作人员的热情… 怎么办?
自动化测试
zhu.
本章内容
❖4.1 测试自动化的内涵 ❖4.2 自动化测试的原理 ❖4.3 测试工具的分类和选择 ❖4.4 自动化测试的引入