自动化测试PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 在分析时对代码进行语法扫描,找出不符合编码规 范的地方
– 根据某种质量模型评价代码质量 – 生成系统的调用关系图等
.
15
代码分析—白盒
• 常用技术
– Syntax analysis – Parsing – Control flow analysis – Data flow analysis – Constraint based analysis – Abstract interpretation – Type-effect system – Symbolic execution
• 兼容性
是否允许测试用例为不同的测试目标而以不同方式组合
• 可用性
定制或更改测试用例是否容易,使用是否容易
• 健壮性
是否可以处理意外情况而不退出或终止
• 可移植性
在不同环境中运行测试的能力
.
13
C. 自动化测试的原理和方法
• 测试自动化实现的基础
– 可以通过设计的特殊程序模拟测试人员对计算机的操作 过程、操作行为,或者类似于编译系统那样对计算机程 序进行检查。
• 优秀自动化测试体系的七个属性
–应根据测试目标,有针对性地提高自己关注的属性,实 施符合需要的自动化测试体系
• 高效的自动化测试体系源于好的测试软件
–应根据需要和能力决定自主开发或选购适合的测试工具
.
11
优秀自动化测试体系的七个属性
• 可维护性
是否很容易使测试更新跟上软件升级的步伐 –自动化测试的维护工作量过大可能导致整个测试自动
.
16
控制流图
void m() throws Exception{ s1; if(s2) throw new Exception();
try{
s3;
s4;
}
catch(Exception e){
s5;
}
s5
}
异常分析
• 哪些语句可能抛出异常?
• •
• 可靠性测试时,常需要模拟系统运行10年、几十年,以验 证稳定性,这也是手工测试无法做到的
• 如果有大量(几千)的测试用例,需要在短时间内(1天) 完成,手工测试几乎不可能做到
.
4
自动化测试的好处
• 良好的可操作性、可重复性和高效率等
– 缩短软件开发测试周期,让产品更快投放市场 – 测试效率高,充分利用硬件资源。可运行更多,更频繁 – 节省人力资源,降低测试成本 – 增强测试的稳定性和可靠性 – 提高测试的准确度和精确度,增加软件信任度 – 能做负载、性能测试等手工不能做的事情 – 可以选择受影响测试集,自动进行回归测试
七、自动化测试
.
1
内容要点
A.自动化测试的意义 B.自动化测试的引入 C.自动化测试的原理和方法 D.自动化测试生存周期
.
2
A. 自动化测试的意义
• 软件测试工作量很大(常占到40%的开发时间; 一些可靠性要求非常高的软件,甚至60%)
• 测试中的许多操作是重复性的、非智力性的和 非创造性的,并要求做准确细致的工作,计算 机就最适合于代替人工去完成这样的任务。
.
9
不适合自动化的测试场合
➢那种不稳定软件的测试、开发周期很短的软 件、一次性的软件等不适合开发测试工具进 行自动化测试。
测试自动化建立和维护等方面的负担可能会 造成延误工期、成本浪费等问题
.
10
选择高效的自动化测试体系
• 应选择合理的点进行自动化,建立合理的自动化体 系结构,编写合理的自动化测试代码,…
.
5
B. 自动化测试的引入
• 自动化测试有很多优点,但它只是测试工作的一 部分,是对手工测试的一种补充。
• 自动化测试不可能完全代替手工测试 – 在功能逻辑测试、适用性测试、涉及物理交互 性测试时,多采用黑盒测试的手工测试方法 – 单元测试、集成测试、负载测试、性能测试、 稳定性测试、可靠性测试等较适合自动化
• 工具不能处理突发情况。自动化测试工具虽然能处理部分 异常事件,但是对真正的突发事件和不能由软件解决的问 题就无能为力。
多数情况下,手工测试和自动化测试应该相结合,
以最有效的方法来完成测. 试任务。
8
适合自动化测试的场合
• 非常重要的测试 • 涉及范围很广的测试 • 对主要功能的测试 • 容易自动化的测试 • 很快有回报的测试 • 运行最频繁的测试
自动化测试: 编写软件去测试其它软件。
编写驱动被测试应用程序的测试脚本以执行
键盘、鼠标动作和后台进程并验证应用程序响
应和行为。
.
3
手工测试的局限性
• 无法做到覆盖所有代码路径
• 机械、重复,工作量大
• 许多与时序、死锁、资源冲突、多线程等有关的错误,通 过手工测试很难捕捉到
• 进行负载、性能测试,很难通过手工测试模拟大量数据或 大量并发用户
.
7
建立正确的自动化测试目标
• 工具本身缺乏想象力和灵活性,据报道,自动化测试只能 发现15%的缺陷,而手工测试可以发现85%的缺陷
• 自动化测试对测试设计质量的依赖极大。错误的测试设计 可能使测试情境与用户使用情境相背离
• 测试工具在进行功能测试时,更多是做回归测试,这时工 具不能发现更多的新问题,但可以保证对已经测试过部分 的准确性和客观性。
化工作被全面否决,甚至束之高阁。
• 高效性
自动化测试的一个重要目标就是更经济地运行测试 –应在测试计划和设计阶段全面审视各方面因素,在科
学合理的测试流程基础上利用优秀的自动化策略将自 动化测试与手工测试有机结合,才能实现效率最大化。
.
12
优秀自动化测试体系的七个属性
• 可靠性
测试体制是否能给出精确而且可重现的结果
• 测试自动化实现的原理和方法主要有
– 代码静态和动态分析 – 测试过程的本技术 – 虚拟用户技术 – 测试管理技术
.
14
代码分析—白盒
• 代码分析类似于高级编译系统,一般针对不同 的高级语言去构造分析工具
– 定义类、对象、函数、变量等的使用规则,推理检 查规则实现情况
.
6
建立正确的自动化测试目标
不要有过分的期待
• 测试计划制定基本靠人 • 一种测试工具不完全适用于所有测试 • 自动测试不一定减轻工作量 • 测试进度可能不一定缩短 • 测试工具不一定易于使用 • 测试覆盖率不会达到100% • 自动化测试很难普遍应用,一些软件很难自动化测试,可
测性低的产品也不易自动化测试 • 测试自动化初始代价高,技术要求也高
– 根据某种质量模型评价代码质量 – 生成系统的调用关系图等
.
15
代码分析—白盒
• 常用技术
– Syntax analysis – Parsing – Control flow analysis – Data flow analysis – Constraint based analysis – Abstract interpretation – Type-effect system – Symbolic execution
• 兼容性
是否允许测试用例为不同的测试目标而以不同方式组合
• 可用性
定制或更改测试用例是否容易,使用是否容易
• 健壮性
是否可以处理意外情况而不退出或终止
• 可移植性
在不同环境中运行测试的能力
.
13
C. 自动化测试的原理和方法
• 测试自动化实现的基础
– 可以通过设计的特殊程序模拟测试人员对计算机的操作 过程、操作行为,或者类似于编译系统那样对计算机程 序进行检查。
• 优秀自动化测试体系的七个属性
–应根据测试目标,有针对性地提高自己关注的属性,实 施符合需要的自动化测试体系
• 高效的自动化测试体系源于好的测试软件
–应根据需要和能力决定自主开发或选购适合的测试工具
.
11
优秀自动化测试体系的七个属性
• 可维护性
是否很容易使测试更新跟上软件升级的步伐 –自动化测试的维护工作量过大可能导致整个测试自动
.
16
控制流图
void m() throws Exception{ s1; if(s2) throw new Exception();
try{
s3;
s4;
}
catch(Exception e){
s5;
}
s5
}
异常分析
• 哪些语句可能抛出异常?
• •
• 可靠性测试时,常需要模拟系统运行10年、几十年,以验 证稳定性,这也是手工测试无法做到的
• 如果有大量(几千)的测试用例,需要在短时间内(1天) 完成,手工测试几乎不可能做到
.
4
自动化测试的好处
• 良好的可操作性、可重复性和高效率等
– 缩短软件开发测试周期,让产品更快投放市场 – 测试效率高,充分利用硬件资源。可运行更多,更频繁 – 节省人力资源,降低测试成本 – 增强测试的稳定性和可靠性 – 提高测试的准确度和精确度,增加软件信任度 – 能做负载、性能测试等手工不能做的事情 – 可以选择受影响测试集,自动进行回归测试
七、自动化测试
.
1
内容要点
A.自动化测试的意义 B.自动化测试的引入 C.自动化测试的原理和方法 D.自动化测试生存周期
.
2
A. 自动化测试的意义
• 软件测试工作量很大(常占到40%的开发时间; 一些可靠性要求非常高的软件,甚至60%)
• 测试中的许多操作是重复性的、非智力性的和 非创造性的,并要求做准确细致的工作,计算 机就最适合于代替人工去完成这样的任务。
.
9
不适合自动化的测试场合
➢那种不稳定软件的测试、开发周期很短的软 件、一次性的软件等不适合开发测试工具进 行自动化测试。
测试自动化建立和维护等方面的负担可能会 造成延误工期、成本浪费等问题
.
10
选择高效的自动化测试体系
• 应选择合理的点进行自动化,建立合理的自动化体 系结构,编写合理的自动化测试代码,…
.
5
B. 自动化测试的引入
• 自动化测试有很多优点,但它只是测试工作的一 部分,是对手工测试的一种补充。
• 自动化测试不可能完全代替手工测试 – 在功能逻辑测试、适用性测试、涉及物理交互 性测试时,多采用黑盒测试的手工测试方法 – 单元测试、集成测试、负载测试、性能测试、 稳定性测试、可靠性测试等较适合自动化
• 工具不能处理突发情况。自动化测试工具虽然能处理部分 异常事件,但是对真正的突发事件和不能由软件解决的问 题就无能为力。
多数情况下,手工测试和自动化测试应该相结合,
以最有效的方法来完成测. 试任务。
8
适合自动化测试的场合
• 非常重要的测试 • 涉及范围很广的测试 • 对主要功能的测试 • 容易自动化的测试 • 很快有回报的测试 • 运行最频繁的测试
自动化测试: 编写软件去测试其它软件。
编写驱动被测试应用程序的测试脚本以执行
键盘、鼠标动作和后台进程并验证应用程序响
应和行为。
.
3
手工测试的局限性
• 无法做到覆盖所有代码路径
• 机械、重复,工作量大
• 许多与时序、死锁、资源冲突、多线程等有关的错误,通 过手工测试很难捕捉到
• 进行负载、性能测试,很难通过手工测试模拟大量数据或 大量并发用户
.
7
建立正确的自动化测试目标
• 工具本身缺乏想象力和灵活性,据报道,自动化测试只能 发现15%的缺陷,而手工测试可以发现85%的缺陷
• 自动化测试对测试设计质量的依赖极大。错误的测试设计 可能使测试情境与用户使用情境相背离
• 测试工具在进行功能测试时,更多是做回归测试,这时工 具不能发现更多的新问题,但可以保证对已经测试过部分 的准确性和客观性。
化工作被全面否决,甚至束之高阁。
• 高效性
自动化测试的一个重要目标就是更经济地运行测试 –应在测试计划和设计阶段全面审视各方面因素,在科
学合理的测试流程基础上利用优秀的自动化策略将自 动化测试与手工测试有机结合,才能实现效率最大化。
.
12
优秀自动化测试体系的七个属性
• 可靠性
测试体制是否能给出精确而且可重现的结果
• 测试自动化实现的原理和方法主要有
– 代码静态和动态分析 – 测试过程的本技术 – 虚拟用户技术 – 测试管理技术
.
14
代码分析—白盒
• 代码分析类似于高级编译系统,一般针对不同 的高级语言去构造分析工具
– 定义类、对象、函数、变量等的使用规则,推理检 查规则实现情况
.
6
建立正确的自动化测试目标
不要有过分的期待
• 测试计划制定基本靠人 • 一种测试工具不完全适用于所有测试 • 自动测试不一定减轻工作量 • 测试进度可能不一定缩短 • 测试工具不一定易于使用 • 测试覆盖率不会达到100% • 自动化测试很难普遍应用,一些软件很难自动化测试,可
测性低的产品也不易自动化测试 • 测试自动化初始代价高,技术要求也高