Download presentation
Presentation is loading. Please wait.
1
黑盒测试设计技术 顶测科技 王登昊
2
测试用例 测试用例的特征 设计测试用例的准则 设计测试用例的着眼点 测试用例设计书写标准 测试用例设计方法
主要内容 测试用例 测试用例的特征 设计测试用例的准则 设计测试用例的着眼点 测试用例设计书写标准 测试用例设计方法
3
定义 测试用例是为特定的目的而设计的一组测试输入,执行条件和预期的结果 测试用例是执行的最小实体
4
最有可能抓住错误 不重复,多余 既不要太复杂也不要太简单 一组相似测试中是最有效的
测试用例的特征 最有可能抓住错误 不重复,多余 既不要太复杂也不要太简单 一组相似测试中是最有效的
5
测试用例的代表性 测试结果的可判定性 测试结果的可再现性
测试用例的准则 测试用例的代表性 测试结果的可判定性 测试结果的可再现性
6
测试用例的准则 测试用例的代表性 测试结果的可判定性 测试结果的可再现性
能够代表并覆盖各种合理的及不合理的,合法及非法的,边界和越界的以及极限输入数据,操作和环境设置等 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的
7
测试用例设计的着眼点 根据产品规格测试基本功能 考虑设计一般用户(非专业)的使用方案 考虑设计稀有或特殊的使用方案
与系统其它组成部分的配合(如上网可能要用到MODEM) 设计极端情况(如破坏性测试,内存泄漏,鲁棒测试) 好的测试用例集能花费最小的代价(人力,物力,财力,时间)做最好的测试
8
测试用例设计书写标准 在ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用命编写规范和模板.标准模板中主要元素如下:
标识符-唯一标识每个测试用命 测试项-准确的描述所需要测试的项及其特征 测试环境要求-表征执行该测试用例需要的测试环境 输入标准-执行测试用命的输入需求 输出标准-按照指定的环境和输入标准得到的期望输出结果 测试用例之间的关联-标识该测试用例与其它的测试(或其它测试用例)之间的依赖关系 用例ID,用例名称,测试步骤,预期结果
9
三角形问题实例 等价类划分法 边界值分析法 错误推测法 因果图法 决策表法 场景法
测试用例设计方法 三角形问题实例 等价类划分法 边界值分析法 错误推测法 因果图法 决策表法 场景法
10
测试用例设计方法 三角形问题实例 输入三个整数a,b,c分别作为三角形的三条 边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形,以及不构成三角形 现在要求输入三个整数a,b,c必须满足以下条件: 条件1 1≤a≤100 条件4 a<b+c 条件2 1≤b≤100 条件5 b<a+c 条件3 1≤c≤100 条件6 c<a+b
11
测试用例设计方法 三角形问题实例 分析 如果输入值a,b,c不满足条件1,条件2,条件3,程序给出”边的取值超出允许范围的信息”
(1)如果不满足条件4,条件5,条件6中的任一个,则程序输出为”非三角形” (2)如果三条边相等,则程序输出为”等边三角形” (3)如果恰好有两条边相等,则程序输出为”等腰三角形” (4)如果三条边都不相等,则程序输出为”一般三角形” 分析结论:三角形问题的复杂之处在于输入与输出之间的关系较复杂
12
等价类划分法 等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行分类,从而保证设计出来的测试用例具有完整性和代表性
测试用例设计方法 等价类划分法 等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行分类,从而保证设计出来的测试用例具有完整性和代表性
13
测试用例设计方法 等价类划分法 举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算的程序的测试 思考
由于开平方运算只对非负实数有效,需要将所有实数(输入域)进行划分,可以分成:正实数,0,负实数。假设选定 代表正实数,-2.234代表负实数,则为该程序设计的测试用例的输入为 , 0,-2.234
14
测试用例设计方法 等价类划分法 定义 等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性,即每一类的代表性数据在测试中的作用都等价于这一类中的其它数据。这样,对于表征该类的数据输入将能代表整个子集合的输入。因此合理的假定:测试某等价类的代表值就是等效于对于这一类其它值的测试
15
测试用例设计方法 等价类划分法 划分原则 等价类划分法设计测试用例两个步骤 (1)确定等价类,列出等价类表 (2)确定测试用例
划分等价类的两种情况 (1)有效等价类 (2)无效等价类 有效等价类:是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能 无效等价类:是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常的情况,检查被测对象的功能和性的实现是否有不符合规格说明要求的地方
16
测试用例设计方法 等价类划分法 测试用例设计 在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计
根据已列出的等价类表可确定测试用例 (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号 (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖 (3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类,重复这一步骤,直到所有的无效等价类均被测试用例所覆盖 有效等价类:是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能 无效等价类:是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常的情况,检查被测对象的功能和性的实现是否有不符合规格说明要求的地方
17
测试用例设计方法 等价类划分法 三角形问题用例解决
分析:在大多情况是从输入域划分等价类,但并非不能从被测程序的输出域定义等价类,事实上,这对于三角形问题却是最简单的划分方法。三角形问题中,有四种可能的输出:等边,等腰,一般三角形和非三角形。利用这些信息能够确定下列输出域等价类 R1={<a,b,c>:等边三角形} R2={<a,b,c>:等腰三角形} R3={<a,b,c>:一般三角形} R4={<a,b,c>:非三角形} 标准等价类测试用例 健壮性等价类测试用例
18
等价类划分法 三角形问题用例解决 标准等价类测试用例
测试用例设计方法 等价类划分法 三角形问题用例解决 标准等价类测试用例 测试用例 a b c 预期结果 Test1 10 等边三角形 Test2 6 等腰三角形 Test3 3 4 5 一般三角形 Test4 2 1 非三角形
19
等价类划分法 三角形问题用例解决 健壮性等价类测试用例
测试用例设计方法 等价类划分法 三角形问题用例解决 健壮性等价类测试用例 测试用例 a b c 预期结果 test1 3 4 5 一般三角形 test2 -1 a超出输入域定义值 test3 b超出输入域定义值 test4 c超出输入域定义值 test5 101 test6 test7
20
等价类划分法 保险公司计算保费费率程序实例
测试用例设计方法 等价类划分法 保险公司计算保费费率程序实例
21
等价类划分法 保险公司计算保费费率程序实例 分析程序规格说明中给出和隐含的对输入条件的要求,例出等价类(有效和无效的)
测试用例设计方法 等价类划分法 保险公司计算保费费率程序实例 分析程序规格说明中给出和隐含的对输入条件的要求,例出等价类(有效和无效的)
22
等价类划分法 保险公司计算保费费率程序实例
测试用例设计方法 等价类划分法 保险公司计算保费费率程序实例
23
等价类划分法 保险公司计算保费费率程序实例
测试用例设计方法 等价类划分法 保险公司计算保费费率程序实例
24
测试用例设计方法 等价类划分法 习题NextDate函数
使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例(这里假定NextDate函数中年份year的取值范围为1912年到2050年之间)
25
等价类划分法 习题答案NextDate函数
测试用例设计方法 等价类划分法 习题答案NextDate函数
26
等价类划分法 习题答案NextDate函数
测试用例设计方法 等价类划分法 习题答案NextDate函数
27
测试用例设计方法 边界值分析法 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界 无数测试实践证明,大量的故障往往发生在输入定义域或输出值域的边界上
28
测试用例设计方法 边界值分析法 怎样用边界值分析法设计测试用例 (1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况
(2)选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值
29
测试用例设计方法 边界值分析法 举例--常见的边界值
30
测试用例设计方法 边界值分析法 三角形问题的边界值分析
分析:在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边连长的取值范围设值为[1,100]
31
测试用例设计方法 边界值分析法 三角形问题的边界值分析
32
测试用例设计方法 边界值分析法 NextDate函数的边界值分析
在NextDate函数中,隐含规定了变量month和变量day的取值范围为1≤month ≤ 12和1 ≤ day ≤ 31,并设定变量year的取值范围为1912 ≤ year ≤ 2050
33
边界值分析法 NextDate函数的边界值分析
测试用例设计方法 边界值分析法 NextDate函数的边界值分析
34
测试用例设计方法 错误推测法 错误推测法的概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例 例如:产品测试中曾经发现的错误等,这些就是经验的总结
35
测试用例设计方法 因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合,输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合,相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)
36
测试用例设计方法 因果图法 因果图法的定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况 因果图法设计测试用例的步骤: (1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图 (2)将得到的因果图转换为判定表 (3)为判定表中每一列所表示的情况设计一个测试用例
37
测试用例设计方法 因果图法 因果图的4种因果关系的基本符号
38
因果图法 因果图中用来表示约束关系的约束符号
测试用例设计方法 因果图法 因果图中用来表示约束关系的约束符号
39
因果图法 因果图中用来表示约束关系的约束符号
测试用例设计方法 因果图法 因果图中用来表示约束关系的约束符号
40
测试用例设计方法 因果图法 因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:
(1)分析软件规格说明中哪些进原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符 (2)分析软件规格说明中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系画出因果图 (3)由于语法或环境的限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件 (4)把因果图转换为决策表 (5)根据决策表中的每一列设计测试用例
41
测试用例设计方法 因果图法 实例 因果图法测试如下程序
程序的规格说明要求:输入的第一字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M
42
测试用例设计方法 因果图法 实例 因果图法测试如下程序 解题步骤: (1)分析程序的规格说明,列出原因和结果
(2)找出原因与结果之间的因果关系,原因与原因之间的约束关系,画出因果图 (3)将因果图转换成决策表 (4)根据(3)中的决策表,设计测试用例的输入数据和预期输出
43
测试用例设计方法 因果图法 实例 因果图法测试如下程序
44
测试用例设计方法 因果图法 实例 因果图法测试如下程序 111,110,101,100,011,010,001,000 2的三次方8个组合
45
因果图法 实例 因果图法测试如下程序 (4)根据决策表中的每一列设计测试用例
测试用例设计方法 因果图法 实例 因果图法测试如下程序 (4)根据决策表中的每一列设计测试用例 111,110,101,100,011,010,001,000 2的三次方8个组合
46
测试用例设计方法 决策表 概念 决策表是分析和表达多逻辑条件下执行不同操作的情况的工具 优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合 在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格,最具有逻辑性的测试方法 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题
47
测试用例设计方法 决策表 实例--“阅读指南”决策表
48
测试用例设计方法 决策表 决策表的组成 条件桩--列出问题的所有条件 条件项--针对条件桩给出的条件列出所有可能的取值
动作桩--列出问题规定的可能采取的操作 动作项--指出在条件项的各组取值情况下应采取的动作 规则 --将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则
49
测试用例设计方法 决策表 构造决策表步骤 确定规则的个数 有n个条件的决策表有2的n次方个规则(每个条件取真,假值)
列出所有的条件桩和动作桩 填入条件项 填入动作项,得到初始决策表 简化决策表,合并相似规则 若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并 合并后的条件项用符号-表示,说明执行的动作与该条件的取值无关,称为无关条件
50
测试用例设计方法 决策表 习题 某软件的一个模块需求规格说明书中描述:
“……对于功率大于50马力的机器或者维修记录不全的或已经运行10年以上的机器应予以优先的维修处理…” 这里假定“维修记录不全”和“优先维修处理”有严格的定义。 请建立该需求的决策表,并绘制出化简(合并规则)后的决策表
51
测试用例设计方法 决策表 习题--初始判定表 ①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。
②列出所有的条件茬和动作桩: ③填入条件项。可从最后1行条件项开始,逐行向上填满。如第三行是: Y N Y N Y N Y N,第二行是: Y Y N N Y Y N N等等。 ④填入动作桩和动作顶
52
测试用例设计方法 决策表 习题--初始判定表
53
测试用例设计方法 决策表 习题--化简判定表
54
测试用例设计方法 场景法
55
测试用例设计方法 场景法 基本流和备选流
56
测试用例设计方法 场景法 基本流和备选流
57
测试用例设计方法 测试用例设计参考原则 在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强
必要时采用等价类划分法补充测试用例 采用错误推断法再追加测试用例 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例 如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法
58
测试用例设计方法 正交试验设计法 为了有效地、合理地减少测试的工时与费用,可以利用在实际生产活动中行之有效的正交实验法
正交试验法就是从大量的实验点中挑选出适量的、有代表性的点,应用“正交表”,合理地安排实验的一种科学实验的设计方法
59
测试用例设计方法 正交试验设计法 在正交试验设计方法中,通常把判断实验结果优劣的标准叫做实验的指标,把有可能影响实验指标的条件称为因子,而影响实验因子的,叫做因子的水平(或状态)
60
测试用例设计方法 正交试验设计法 基本步骤 首先要根据被测软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当作因子
把各个因子的取值当作状态 根据因子和状态构造出二元的因素分析表,利用正交表进行各因子的状态的组合 加权构造出有效的测试集
61
测试用例设计方法 正交试验设计法 确定因子与水平是设计测试用例的关键,因此需要尽可能全面、准确地确定取值以确保测试用例的设计做到完整与有效
因子与状态填入用二维表格形式表示的因子--状态表
62
正交试验设计法 正交试验设计测试用例的特点 节省测试工作时 可控制生成的测试用例的数量 测试用例具有一定的覆盖度
测试用例设计方法 正交试验设计法 正交试验设计测试用例的特点 节省测试工作时 可控制生成的测试用例的数量 测试用例具有一定的覆盖度
63
测试用例设计方法 正交试验设计法 实例-软件兼容性测试点 被测试软件需要支持win2003,win7,win8
被测软件需要支持多语言,包括简体中文,繁体中文,英文,法文
64
测试用例设计方法 正交试验设计法 分析影响测试结果的因子/水平 因子一:操作系统版本 水平一:win2003 水平二:win7
因子二:操作系统语言 水平一:简体中文 水平二:繁体中文 水平三:英文 水平四:法文
65
测试用例设计方法 正交试验设计法 建正交表 简体中文 繁体中文 英文 法文 Win2003 Win7 win8
66
测试用例设计方法 正交试验设计法 设定权值 简体中文 繁体中文 英文 法文 Win2003 1 Win7 5 2 win8
67
测试用例设计方法 正交试验设计法 测试投入分配 面对前面的结果,如果我们的测试资源总共只有18,我们如何来分配我们有限的测试资源
方案一:平均分配 方案二:抓大放小 …… ……
68
测试用例设计方法 正交试验设计法 测试投入分配 平均分配 简体中文 繁体中文 英文 法文 Win2003 18*1/22 Win7
Win7 18*5/22 18*2/22 win8
69
测试用例设计方法 正交试验设计法 测试投入分配 抓大放小 简体中文 繁体中文 英文 法文 Win2003 1 Win7 5 2 win8
70
正交试验设计法 思考 如果增加一个纬度“被测软件需要支持IE,chrome,Maxthon浏览器”如何处理?
测试用例设计方法 正交试验设计法 思考 如果增加一个纬度“被测软件需要支持IE,chrome,Maxthon浏览器”如何处理?
71
测试用例设计方法 正交试验设计法 三维以上正交表处理 IE chrome Maxthon Win2003/简体中文 Win2003/英文
72
补充-产品测试考虑特性 功能 性能 负载 压力 疲劳 易用性 安装测试 功能易用性测试 用户界面测试 辅助系统测试 兼容性 安全性
测试用例设计 补充-产品测试考虑特性 功能 性能 负载 压力 疲劳 易用性 安装测试 功能易用性测试 用户界面测试 辅助系统测试 兼容性 安全性
73
谢谢
Similar presentations