自动化测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Zhu.Kerry@Gmail.com
测试自动化项目的本质
定义:利用自动化测试工具来开发和执行测试脚本, 并管理测试的过程和测试件. 本质:测试自动化项目本质上可以看作是软件开发项 目 一个测试自动化项目必须具有: 清晰定义并严格实施的过程 来自组织各级的支持 周密的计划 具体的设计和架构
Zhu.Kerry@Gmail.com
SQASetProperty
SQASetProperty "Name=FirstName", "Text", "Michael"
SQAWaitForObject
Result = SQAWaitForObject("Type=PushButton;Text=OK", 120000)
Zhu.Kerry@Gmail.com
补丁包的回归测试 验证测试
Zhu.Kerry@Gmail.com
自动化测试带来的好处
1. Attributes of TA
Speed 速度 Efficiency 效率 Accuracy and Precise 准确,精确 Relentlessness 无情
2. 缩短周期 Testing cycle - Regression Testing 3. 容易实施,结果可靠 4. 做手工不能做
Zhu.Kerry@Gmail.com
手工测试 vs.自动测试
手工测试
耗费时间 低可靠性 人力资源 不一致性 仅对于一次性的测试有益
自动测试
速度 可重复 覆盖率 可靠 可以再度使用 重复测试节省时间
Zhu.Kerry@Gmail.com
手工测试 vs.自动测试
测试步骤
测试计划的开发 测试用例的开发 测试执行 测试结果分析 错误状态/更正检测 产生报告 时间总和
测试自动化成本/收益分析
结构
No Automation Recording and Playback Data-driven structure using data pools Framework structure Framework / data-driven (hybrid) structure focusing on views of the application and using data pools
Zhu.Kerry@Gmail.com
各自特点
软件测试自动化(TA)虽然具有很多优点,但只是对手工测试 的一种补充,TA绝不能代替手工测试,有各自的特点:
在系统功能逻辑测试,验收测试,适用性测试,涉及物理交互性测试 时,多采用黑盒测试的手工测试方法; 单元测试,集成测试,系统负载或性能,稳定性,可靠性测试等比较 适合采用TA; 对那种不稳定软件的测试,开发周期很短的软件,一次性的软件等不 适合测试自动化 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现 15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试 时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题, 但可以保证对已经测试过部分进行测试的准确性和客观性
Zhu.Kerry@Gmail.com
测试的步骤
创建测试脚本
手工编写 Script 录音并修改
运行测试脚本
设定并发用户数 设定用户身份 运行,观察,获取主观体验
理解结果报告 图表 各项性能统计数字 日志文件
Zhu.Kerry@Gmail.com
Generic TA Architecture
文件服务器 机房 Build系统编译 Dev Build, Test Build SQL Server 寻找工作项目 拷贝测试文件 拷贝测试结果 控制程序 分派工作
TA Client Work Flow
Zhu.Kerry@Gmail.com
测试自动化的原理和方法
代码分析: 类似于高级编译系统,在工具中定义类/对象/ 函数/变量等定义规则,语法规则等,在分析时对代码进行 语法扫描,找出不符合编码规范的地方. 捕获和回放: 代码分析是一种白盒测试的自动化方法, 捕获和回放则是一种黑盒测试的自动化方法.
测试自动化的内涵
Zhu.Kerry@Gmail.com
测试自动化的内涵
为什么要软件测试自动化 自动化测试的引入和应用 测试自动化的基本结构 测试自动化的原理和方法 测试自动化普遍存在的问题
Zhu.Kerry@Gmail.com
手工测试的局限性
通过手工测试无法做到覆盖所有代码路径; 许多与时序,死锁,资源冲突,多线程等有关的错误通过 手工测试很难捕捉到 在系统负载,性能测试时,需要模拟大量数据,或大量并 发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年,几十年, 以验证系统能否稳定运行,也是手工测试无法模拟的. 如果有大量的测试用例,需要在短时间内完成,手工测试 又怎么办呢? 测试可以发现错误,并不能表明程序的正确性.
Build/File Server CVS
PC Pool (& agent) Project m App LIB n
Project1 App LIB1
Project2 App LIB2 Common LIB
TA
Developing
Zhu.Kerry@Gmail.com
TA Framework
Zhu.Kerry@Gmail.com
Object Scripting commands
SQAGetProperty
Result = SQAGetProperty (ObjectRec, "State", CheckState)
SQAGetPropertyAsString
Result = SQAGetPropertyAsString("\;Caption=Notepad - (Untitled)", "WindowState", StateString)
自动化测试工作流程
1 计划
计划自动化测试
2 创建
纪录用户操作形 成基本测试
3 核实 和 提高
对 回放 和 测试 提高自动化测试
4 整合
运行多种测试检 查数据流
收集测试信息
测试需求是什么? 那里能得到用到的 数据?
建立基本测试
纪录用户的操作 核实成功回放
提高基本测试
插入测试点 驱动测试数据
整体测试
关联数据 建立综合的测 试场景
Nativeclass: Edit Attached Text: Agent Name: Enabled: True Focused: True Height: 20 Text: Harold Width: 119
Zhu.Kerry@Gmail.com
Object examples
Zhu.Kerry@Gmail.com
Zhu.Kerry@Gmail.com
Script example
Zhu.Kerry@Gmail.com
Example - ScriptAssure
The ScriptAssure Page-Standard controls object-matching sensitivity during playback by using a slider control. To set the tolerance for differences between the object in the application-under-test, you move the Recognition Level slider between Strict and Tolerant. To find differences between the object and the recognition properties, you move the Warning Level slider between High and None. -- The ScriptAssure Page-Advanced sets thresholds for recognition scores. You can set a maximum score to consider a test object as a candidate for recognition; you can also request warnings when candidate objects have a score higher than the designated threshold
成本
收益
净收益
0 8.3 8.4 9.8
0 11 18 15
0 2.7
9.6
5.2
11.6 19
7.4
Zhu.Kerry@Gmail.com
自动化测试的引入和应用
找准测试自动化的切入点 把测试开发纳入整个软件开发体系 测试自动化依赖测试流程和测试用例 软件测试自动化的投入较大 进行资源的合理调度
Zhu.Kerry@Gmail.com
软件测试自动化
- 知识,实践和应用
朱少民
资深QA总监
5/20/2006
软件测试自动化
测试自动化的内涵 测试工具的分类和选择 测试工具的主流产品介绍 IBM-Rational产品的整体解决方案 Mercury Interactive产品的整体解决方案 Compuware产品的整体解决方案
Zhu.Kerry@Gmail.com
Zhu.Kerry@Gmail.com
手工测试的局限性 (2)
每一个产品都会有不同的版本外加各自的SP与EP
回归测试工作量大,时间紧 兼容性测试 测试所有可能情况将遭遇"组合爆炸"问题
Win2k, Win XP, Win 2003, Mac X, Linux, Solaris, etc English, German, Japanese, Chinese, … IE 6.0, IE 7.0, FireFox, Mozilla, NS, Safari, … HTTP, HTTPS, TCP, UDP, … Proxy: ISA 2000/4, Check Point, Cisco PIX, Blue Coat , Squid Authentication mode: basic, integrate, digest
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本, 这种脚本包含所有的击键,移动,输入数据等,所有录 制的测试用例都可以得到完整的回放. 结构化脚本,类似于结构化程序设计,具有各种逻辑 结构,函数调用功能. 共享脚本,是指某个脚本可以被多个测试用例使用. 数据驱动脚本,将测试输入存储在独立的(数据)文 件中,而不是存储在脚本中. 关键字驱动脚本,是数据驱动脚本的逻辑扩张
手工测 试
32 262 466 117 117 96 1090
自动化测 试
40 117 23 58 23 16 277
通过使用工具的改 善测试的百分比
-25% 55% 95% 50% 80% 83% 75%
Zhu.Kerry@Gmail.com
百度文库
正确认识测试自动化
不现实的期望注定测试自动化的失败
测试自动化能: 显著降低重复手工测试的时间 建立可靠,重复的测试,减少人为错误 增强测试质量和覆盖率 测试自动化不能: 完全替代手工测试和手工测试工程师 保证100%的测试覆盖率 弥补测试实践的不足
分派工作 办公室 更新 显示 Web服务器
查询结果
Zhu.Kerry@Gmail.com
TA Architecture
TA Execution TA Execution
Web Server Request/Query Controller (Manage Agent )
TA Project Configuration Results, DB Test Managers Testing management System
Zhu.Kerry@Gmail.com
Half+ of workload from Regression Test
主要项目
60% in regression test, 40% in bug validation & new tasks Testing is not enough though 60% is spent in regression test
Zhu.Kerry@Gmail.com
Code Analysis - Example
Zhu.Kerry@Gmail.com
Record/playback
Zhu.Kerry@Gmail.com
对象识别技术
下拉框 按钮
复选框
编辑框
选择框
Zhu.Kerry@Gmail.com
对象识别 - 2
逻辑名称是对象属性之一的值 数值 用于识别对象名称
测试自动化项目的本质
定义:利用自动化测试工具来开发和执行测试脚本, 并管理测试的过程和测试件. 本质:测试自动化项目本质上可以看作是软件开发项 目 一个测试自动化项目必须具有: 清晰定义并严格实施的过程 来自组织各级的支持 周密的计划 具体的设计和架构
Zhu.Kerry@Gmail.com
SQASetProperty
SQASetProperty "Name=FirstName", "Text", "Michael"
SQAWaitForObject
Result = SQAWaitForObject("Type=PushButton;Text=OK", 120000)
Zhu.Kerry@Gmail.com
补丁包的回归测试 验证测试
Zhu.Kerry@Gmail.com
自动化测试带来的好处
1. Attributes of TA
Speed 速度 Efficiency 效率 Accuracy and Precise 准确,精确 Relentlessness 无情
2. 缩短周期 Testing cycle - Regression Testing 3. 容易实施,结果可靠 4. 做手工不能做
Zhu.Kerry@Gmail.com
手工测试 vs.自动测试
手工测试
耗费时间 低可靠性 人力资源 不一致性 仅对于一次性的测试有益
自动测试
速度 可重复 覆盖率 可靠 可以再度使用 重复测试节省时间
Zhu.Kerry@Gmail.com
手工测试 vs.自动测试
测试步骤
测试计划的开发 测试用例的开发 测试执行 测试结果分析 错误状态/更正检测 产生报告 时间总和
测试自动化成本/收益分析
结构
No Automation Recording and Playback Data-driven structure using data pools Framework structure Framework / data-driven (hybrid) structure focusing on views of the application and using data pools
Zhu.Kerry@Gmail.com
各自特点
软件测试自动化(TA)虽然具有很多优点,但只是对手工测试 的一种补充,TA绝不能代替手工测试,有各自的特点:
在系统功能逻辑测试,验收测试,适用性测试,涉及物理交互性测试 时,多采用黑盒测试的手工测试方法; 单元测试,集成测试,系统负载或性能,稳定性,可靠性测试等比较 适合采用TA; 对那种不稳定软件的测试,开发周期很短的软件,一次性的软件等不 适合测试自动化 工具本身并没有想象力和灵活性,根据经验报道,自动测试只能发现 15%的缺陷,而手工测试可以发现85%的缺陷;TA工具在进行功能测试 时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题, 但可以保证对已经测试过部分进行测试的准确性和客观性
Zhu.Kerry@Gmail.com
测试的步骤
创建测试脚本
手工编写 Script 录音并修改
运行测试脚本
设定并发用户数 设定用户身份 运行,观察,获取主观体验
理解结果报告 图表 各项性能统计数字 日志文件
Zhu.Kerry@Gmail.com
Generic TA Architecture
文件服务器 机房 Build系统编译 Dev Build, Test Build SQL Server 寻找工作项目 拷贝测试文件 拷贝测试结果 控制程序 分派工作
TA Client Work Flow
Zhu.Kerry@Gmail.com
测试自动化的原理和方法
代码分析: 类似于高级编译系统,在工具中定义类/对象/ 函数/变量等定义规则,语法规则等,在分析时对代码进行 语法扫描,找出不符合编码规范的地方. 捕获和回放: 代码分析是一种白盒测试的自动化方法, 捕获和回放则是一种黑盒测试的自动化方法.
测试自动化的内涵
Zhu.Kerry@Gmail.com
测试自动化的内涵
为什么要软件测试自动化 自动化测试的引入和应用 测试自动化的基本结构 测试自动化的原理和方法 测试自动化普遍存在的问题
Zhu.Kerry@Gmail.com
手工测试的局限性
通过手工测试无法做到覆盖所有代码路径; 许多与时序,死锁,资源冲突,多线程等有关的错误通过 手工测试很难捕捉到 在系统负载,性能测试时,需要模拟大量数据,或大量并 发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年,几十年, 以验证系统能否稳定运行,也是手工测试无法模拟的. 如果有大量的测试用例,需要在短时间内完成,手工测试 又怎么办呢? 测试可以发现错误,并不能表明程序的正确性.
Build/File Server CVS
PC Pool (& agent) Project m App LIB n
Project1 App LIB1
Project2 App LIB2 Common LIB
TA
Developing
Zhu.Kerry@Gmail.com
TA Framework
Zhu.Kerry@Gmail.com
Object Scripting commands
SQAGetProperty
Result = SQAGetProperty (ObjectRec, "State", CheckState)
SQAGetPropertyAsString
Result = SQAGetPropertyAsString("\;Caption=Notepad - (Untitled)", "WindowState", StateString)
自动化测试工作流程
1 计划
计划自动化测试
2 创建
纪录用户操作形 成基本测试
3 核实 和 提高
对 回放 和 测试 提高自动化测试
4 整合
运行多种测试检 查数据流
收集测试信息
测试需求是什么? 那里能得到用到的 数据?
建立基本测试
纪录用户的操作 核实成功回放
提高基本测试
插入测试点 驱动测试数据
整体测试
关联数据 建立综合的测 试场景
Nativeclass: Edit Attached Text: Agent Name: Enabled: True Focused: True Height: 20 Text: Harold Width: 119
Zhu.Kerry@Gmail.com
Object examples
Zhu.Kerry@Gmail.com
Zhu.Kerry@Gmail.com
Script example
Zhu.Kerry@Gmail.com
Example - ScriptAssure
The ScriptAssure Page-Standard controls object-matching sensitivity during playback by using a slider control. To set the tolerance for differences between the object in the application-under-test, you move the Recognition Level slider between Strict and Tolerant. To find differences between the object and the recognition properties, you move the Warning Level slider between High and None. -- The ScriptAssure Page-Advanced sets thresholds for recognition scores. You can set a maximum score to consider a test object as a candidate for recognition; you can also request warnings when candidate objects have a score higher than the designated threshold
成本
收益
净收益
0 8.3 8.4 9.8
0 11 18 15
0 2.7
9.6
5.2
11.6 19
7.4
Zhu.Kerry@Gmail.com
自动化测试的引入和应用
找准测试自动化的切入点 把测试开发纳入整个软件开发体系 测试自动化依赖测试流程和测试用例 软件测试自动化的投入较大 进行资源的合理调度
Zhu.Kerry@Gmail.com
软件测试自动化
- 知识,实践和应用
朱少民
资深QA总监
5/20/2006
软件测试自动化
测试自动化的内涵 测试工具的分类和选择 测试工具的主流产品介绍 IBM-Rational产品的整体解决方案 Mercury Interactive产品的整体解决方案 Compuware产品的整体解决方案
Zhu.Kerry@Gmail.com
Zhu.Kerry@Gmail.com
手工测试的局限性 (2)
每一个产品都会有不同的版本外加各自的SP与EP
回归测试工作量大,时间紧 兼容性测试 测试所有可能情况将遭遇"组合爆炸"问题
Win2k, Win XP, Win 2003, Mac X, Linux, Solaris, etc English, German, Japanese, Chinese, … IE 6.0, IE 7.0, FireFox, Mozilla, NS, Safari, … HTTP, HTTPS, TCP, UDP, … Proxy: ISA 2000/4, Check Point, Cisco PIX, Blue Coat , Squid Authentication mode: basic, integrate, digest
脚本技术
线性脚本,是录制手工执行的测试用例得到的脚本, 这种脚本包含所有的击键,移动,输入数据等,所有录 制的测试用例都可以得到完整的回放. 结构化脚本,类似于结构化程序设计,具有各种逻辑 结构,函数调用功能. 共享脚本,是指某个脚本可以被多个测试用例使用. 数据驱动脚本,将测试输入存储在独立的(数据)文 件中,而不是存储在脚本中. 关键字驱动脚本,是数据驱动脚本的逻辑扩张
手工测 试
32 262 466 117 117 96 1090
自动化测 试
40 117 23 58 23 16 277
通过使用工具的改 善测试的百分比
-25% 55% 95% 50% 80% 83% 75%
Zhu.Kerry@Gmail.com
百度文库
正确认识测试自动化
不现实的期望注定测试自动化的失败
测试自动化能: 显著降低重复手工测试的时间 建立可靠,重复的测试,减少人为错误 增强测试质量和覆盖率 测试自动化不能: 完全替代手工测试和手工测试工程师 保证100%的测试覆盖率 弥补测试实践的不足
分派工作 办公室 更新 显示 Web服务器
查询结果
Zhu.Kerry@Gmail.com
TA Architecture
TA Execution TA Execution
Web Server Request/Query Controller (Manage Agent )
TA Project Configuration Results, DB Test Managers Testing management System
Zhu.Kerry@Gmail.com
Half+ of workload from Regression Test
主要项目
60% in regression test, 40% in bug validation & new tasks Testing is not enough though 60% is spent in regression test
Zhu.Kerry@Gmail.com
Code Analysis - Example
Zhu.Kerry@Gmail.com
Record/playback
Zhu.Kerry@Gmail.com
对象识别技术
下拉框 按钮
复选框
编辑框
选择框
Zhu.Kerry@Gmail.com
对象识别 - 2
逻辑名称是对象属性之一的值 数值 用于识别对象名称