软件测试自动化PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-
9
二、被测试代码的改变对测试周期的影响 需要判断一下被测试的代码的稳定性。 首先,需要重点考虑代码的行为。 其次,考虑功能的增加会不会影响测试。
7.1.4自动化测试的价值
进行自动化测试要解决的问题就是:自动化测试 的价值必须要超过所有因此而放弃的手工测试的 价值。 考虑问题如下: 1.测试代码的结构要清晰。 2.测试通常是用来测试功能代码。支撑代码对于测 试者来说通常是不可见的。
-
11
一、分析被测试代码的结构对测试的影响。
例子:被测试的是一段处理从银行账户里提款的代 码。 (例子详见教材)
把被测试的代码分成两部分:
①功能代码(feature code),它直接实现被测试代 码所完成的功能。测试会专门对其进行调用。功 能代码(support code)可以完成用户所进行的操 作(通过使用用户界面的关联代码)。
2.掌握自动化测试和手工测试的优缺点。
3.了解测试工具的分类、使用目的及其选择,了解 几种常用的测试工具。
4.了解自动化测试的过程。
-
3
7.1进行自动化测试的适当时机
•
通常,软件测试的工作量很大(据统计,测试会占用
到40%的开发时间;一些可靠性要求非常高的软件,测试
时间甚至占到开发时间的60%)。而测试中的许多操作是
测试成本还要考虑测试时间、Bug的多少等问题。
-
6
7.1.3自动化测试的生命周期
测试的生命周期如下图7-1所示:
创建 测试
运行 测试
代码 改变
代码 改变
运行 测试
运行 测试
代码 改变
-
测试运行 测试中止
7
在决定是否进行自动化测试之前,必须首先估 计一下,产品的代码变动在什么范围内,测试仍 能存活。如果要求代码不能有太多变动,要做的 测试最好是非常善于捕获bug的测试.
-
Leabharlann Baidu
5
7.1.2自动化测试的成本
创建一次自动化的测试所花费的时间要比一次 手工测试所花费的时间多得多。测试成本因产品 的架构以及自动化测试的方式不同而异。介绍如 下几种(费用由高至低):
<1>通过图形用户界面来测试产品;
<2>使用GUI捕捉/回放工具来跟踪测试与产品之 间的交互,同时建立脚本;
<3>测试的是一个编译器;
-
10
3.但功能代码的改变通常会改变代码的行为。因此, 极有可能会使测试中止,而不是报告bug。
4.测试的价值主要在于支撑代码改变以后仍能捕获 bug的能力。
5.如果我们一点也不了解支撑代码,无法知道测试 是否能捕获bug?如何估计测试是否有助于我们 捕获bug?
6.可以认为与被测试的代码进行交互的其他代码大 多数是支撑代码,支撑代码的变化也会产生自动 测试所能捕获的bug。
-
8
为了使测试免受中介代码变化的影响,应该从 以下几个方面考虑:
1、评估一下中介代码的改变会不会影响测试。如 果绝不会影响到测试,使用自动测试就能节省大 量的时间。
2、如果中介代码的变化会影响到测试,就必须考 虑一下使用测试库函数能够使测试不受影响的可 能性会有多大。
3、假如没有测试函数库——如果是在捕捉/回放 的模式下使用GUI测试自动化工具——不要指望 测试会不受影响。
-
13
二、被测试代码的变化所带来的影响。
主要考虑这样一些问题:
1.就给定的结构而言,代码的变化将会产生什么样 的影响?
2.什么样的变化具有测试价值?
假设一些功能代码发生了变化,如图7-3中灰色 图形所示:
这种变化极有可能会导致调用功能代码的测试中 止。因此,如果希望使用自动化测试的方法在发 生变化的功能代码(feature code)中找到bug, 就必须终止原有测试。如果测试的成本很高,这 样做是很不经济的。
②支撑代码(support code),它起到支持功能代码
(support code)的作用。测试代码会对其进行调用, 但并没有针对这些代码的特殊测试。
-
12
图7-2 功能代码和支撑代码示意图
在这里,支撑代码位于水平线以下。功能代码位于 水平线以上,共有五种不同的功能,我们只针对其中 的两个功能进行测试。
介于需要被测试的代码和测试之间的代码称作 中介代码(intervening code)。 一、中介代码的变动对测试周期的影响
中介代码是使测试中止的一个主要原因。 例如,用户界面以前要求输入电话号码,现在变 为提供一个可视的电话键盘,使用鼠标点击数字 来模拟使用真实的电话。虽然通过两种界面向被 测试的代码传递的都是相同的数据,但是因为没 有了提供输入电话号码的地方,自动化测试可能 就会中止。
重复性的、非智力性的和非创造性的,并要求做准确细致
的工作,计算机就最适合于代替人工去完成这样的任务。
•
软件自动化测试是相对手工测试而存在的,主要是通
过所开发的软件测试工具、脚本等来实现,具有良好的可
操作性、可重复性和高效率等特点。
• 在进行自动化测试前,首先要建立一个对软件测试自动化
的认识观。软件测试工具能提高测试效率、覆盖率和可靠
-
14
为了使原有的测试行为仍然能够保留,通常采用 的做法是更改支撑代码(support code)以便 能够支持其他功能代码的变动。请看图7-4:
第七章 软件测试自动化
-
1
[本章要点]
1.自动化测试应考虑的各种因素; 2. 自动化测试和手工测试中涉及的问题以及二者的
优缺点; 3.应用自动化测试工具的目的; 4.自动化测试工具的分类和选择方法; 5.自动化测试过程实例及自动化测试经验。
-
2
[本章目标]
1.了解自动化测试应考虑的各种因素以及如何衡量 自动化测试成本。
性等,自动化测试虽然具有很多优点,但它只是测试工作
的一部分,是对手工测试的一种补充。自动化测试绝不能
代替手工测试,它们各有各自的特点,其测试对象和测试
范围都不一样:
-
4
7.1.1概述 当针对产品的一些特征来设计一系列测试时,
对每一个测试都需要决定是否对其进行自动化测 试。 在决定是否要进行自动化测试之前,通常需要考 虑如下几个主要问题: 1.同手工测试相比,只运行一次的自动化测试要 多付出多少代价? 2.自动化测试的生命周期是有限的。那么,这类 测试是否迟早要终止?什么事件将会导致测试中 止? 3.在整个生命周期内,这次测试能捕获到新bug 的可能性会有多大?这些难以预计的收益能够使 自动化测试的成本得到补偿吗?