黑盒测试:决策表法实例分析.

合集下载

黑盒测试-决策表

黑盒测试-决策表

条件 C1:月份在{M1,M2,M3,m4}中之一 C2:日期在{D1,D2,D3,D4 ,D5}中之
一 C3:年在{Y1,Y2}中之一
问题:可得到 ?条规则
新的NextDate函数的扩展条目决策表:
条件 C1:月份在 C2:日在
C3:年在 A1:不可能 A2:日增1 A3:日复位 A4:月增1 A5:月复位 A6:年增1
选项
规则
1
2
3
4
条件:
C1:销售好?
T
T
F
F
C2:库存低?
T
F
T
F
动作:
a1:增加生产

a2:继续生产


a3:停止生产

实战演习 2
问题要求:”……对功率大于50马力的机器、维 修记录不全或已运行10年以上的机器,应给予优 先的维修处理……” 。这里假定,“维修记录不 全”和“优先维修处理”均已在别处有更严格的 定义。请建立决策表。
DT2
1 4 2 非三角形
DT3
1 2 4 非三角形
DT4
5 5 5 等边三角形
DT5
? ? ? 不可能
DT6
? ? ? 不可能
DT7
2 2 3 等腰三角形
DT8
? ? ? 不可能
DT9
2 3 2 等腰三角形
DT10 3 2 2 等腰三角形
DT11 3 4 5 不等边三角形
案例分析-NextDate函数(方法一)
一个决策表由“条件和活动”两部分组成,也就是列 出了一个测试活动执行所需的条件组合。所有可能的 条件组合定义了一系列的选择,而测试活动需要考虑
每一个选择。

黑盒测试-决策表

黑盒测试-决策表

有多少条规则 ?
条件
1 2 3 4 5 6 7 8 9 10 11 12 13 ..
C1:月份在 M1 M1 M1 M1 M1 M1 M1 M1 M2 M2 M2 M2 M2 ..
C2:日在 C3:年在
D1 D1 D2 D2 D3 D3 D4 D4 D1 D1 D2 D2 D3 .. Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 ..
实战演习2
列出所有的条件桩和动作桩; 填入条件项; 填入动作项,制定初始判定表; 简化、合并相似规则或者相同动作。
进一步优化
两项因素没有影响
优化
案例分析-三角形问题
1列出所有的条件桩和行动桩
条件桩
行动桩
C1:a<b+c? C2:b<a+c? C3:C<a+b? C4:a=b? C5:a=c? C6:b=c?
<=28} D2={日期:日期=29} D3={日期:日期=30} D4={日期:日期=31} Y1={年:年是闰年} Y2={年:年是平年}
C5:日期在D2中 C6:日期在D3中 C7:日期在D4中 C8:年是闰年 C9:年是平年
规则数?
2^9=512 太大!
新办法…
等价类
M1={月份:每月有30天} M2={月份:每月有31天} M3={月份:此月是2月} D1={日期:1<=日期
条件 C1:月份在{M1,M2,M3,m4}中之一 C2:日期在{D1,D2,D3,D4 ,D5}中之
一 C3:年在{Y1,Y2}中之一
问题:可得到 ?条规则
新的NextDate函数的扩展条目决策表:
条件 C1:月份在 C2:日在

黑盒测试:决策表法实例分析

黑盒测试:决策表法实例分析

黑盒测试:决策表法实例分析
采用决策表法对NextDate问题设计测试用例
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。

例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。

步骤如下:
1)构造决策表
●M1={月份:30天/月},
M2={月份: 31天/月,12月除外},
M3={月份: 12月},M4={月份: 2月}
●D1={日期:1<=日<=27},
D2={日期:日=28},
D3={日期:日=29} ,
D4={日期:日=30},
D5={日期:日=31}
●Y1={年:闰年},Y2={年:平年}
注:二月:平年28天,闰年29天
条件桩:
●C1:月份在{M1,M2,M3,M4}中之一
●C2:日期在{D1,D2,D3,D4 ,D5}中之一
●C3:年在{Y1,Y2}中之一
动作桩:
●A1:不可能
●A2:日期增1
●A3:日期复位(置1)
●A4:月份增1
●A5:月份复位(置1)
●A6:年增1。

软件测试(14)--黑盒测试案例设计技术--基于决策表的测试

软件测试(14)--黑盒测试案例设计技术--基于决策表的测试

软件测试(14)--黑盒测试案例设计技术--基于决策表的测试决策表,也叫判定表。

在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。

人们使用两种密切关联的方法:因果图法和决策表格法。

与决策表相比,这两种方法使用起来更麻烦,并且全冗余。

决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。

在程序设计发展的初期,决策表就已被用作编写程序的辅助工具了。

它可以把复杂的逻辑关系和多种条件组合的情况表达得比较明确。

1、决策表的组成决策表通常由4个部分组成,如下图:●条件桩(condition stub):列出了问题的所有条件。

通常认为列出的条件的次序无关紧要。

●动作桩(action stub):列出了问题规定可能采取的操作。

这些操作的排列顺序没有约束。

●条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。

●动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。

●规则:任何一个条件组合的特定取值及其相应要执行的操作。

在决策表中贯穿条件项和动作项的一列就是一条规则。

显然,决策表中列出多少组条件取值,也就有多少规则,条件项和动作项就有多少列。

2、决策表建立决策表的建立应该根据软件规格说明,步骤如下:①确定规则的个数。

假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。

②列出所有的条件桩和动作桩。

③输入条件项。

④填入动作项。

制定初始决策表。

⑤简化。

合并相似规则或者相同动作。

Beizer(《Software Testing Techniques》的作者)指出了适合使用决策表设计测试用例的条件:①规格说明以决策表的形式给出,或很容易转换成决策表。

②条件的排列顺序不影响执行哪些操作。

③规则的排列顺序不影响执行哪些操作。

④当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。

⑤如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。

第2章黑盒测试决策表

第2章黑盒测试决策表
(1)合并
如果一个条件项(表中某列中的条件值) 和另外一个条件项所产生的动作是相 同的,且两个条件项对应的每一行的值 只有一个是不同的,则可以将其合并.合 并的项除了不同值变成”不关心”条 目外,其余不变
2020/12/2
10
(1)两条规则合并成一条
条件项“— ”表示与取 值无关。
2020/12/2
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
2020/12/2
24
5.决策表法
该条件可以扩展成: a+b>c
b+c>a
5.4三角形问题的决策表用例设计
c+a>b
2020/12/2
25
5.决策表法
三角形问题的扩展决策 表
条件:a,b,c是否可以 构成三角形
X
XX
a位
X
a6:年增1
X
NextDate函数的精简判定表
c1:月份在 c2:日期在 c3:年在 行为 a1:不可能 a2:日期增1 a3:日期复位 a4:月份增1 a5:月份复位 a6:年增1
1~3
45
6~9
10
M1
M1 M1
M2
M2
D1,D2,D3 D4 D5 D1,D2,D3,D4 D5
2020/12/2
15
例:维修机器问题
问题描述:
“……对于功率大于50马力的机器, 并且维修记录不全或已运行10年以 上的机器,应给予优先的维修处理 ……”
请建立决策表。
2020/12/2
16
例:维修机器问题(续)
(1)列出所有的条件桩和动作桩
条件桩

06黑盒测试——决策表

06黑盒测试——决策表
实际使用决策表时,常常先将它简化,简化是以合并 相似规则为目标的
Y Y N N Y N
X X
Y N
Y Y N
Y -
X
N N
N
X X
X
两条规则合并成一条
两条规则的进一步合并
规则及规则合并

任何一个条件组合的特定取值及其相应要执行的操 作称为规则。在判定表中贯穿条件项和动作项的一
列就是一条规则。显然,判定表中列出多少组条件
适合于以下应用程序

If-then-else逻辑突出 输入变量之间存在逻辑关系


涉及输入变量子集的计算
输入与输出之间存在因果关系
适合使用决策表设计测试用例的情况有
①规格说明以判定表形式给出,或是很容易转换成判定表。 ②条件的排列顺序不会也不应影响执行哪些操作。 ③规则的排列顺序不会也不应影响执行哪些操作。 ④每当某一规则的条件已经满足,并确定要执行的操作后, 不必检验别的规则。
取值,也就有多少条规则,即条件项和动作项有多 少列。

化简 就是规则合并 有两条或多条规则具有相同的动作,并且其条件项 之间存在着极为相似的关系
疲倦吗? 问题 感兴趣吗? 糊涂吗? 重读 继续 建议 跳到下一章 休息
1 Y Y Y
2 Y Y N
3 Y N Y
4 Y N N
5 N Y Y

6 N Y N
4 Y N N
5 N Y Y

6 N Y N

7 N N Y
8 N N N
√ √ √ √ √

表中列举了读者读书时可能遇到的3个问题,若读者的回答时 肯定的(判断取真),标以字母Y,若回答否定的,标以字母N。

黑盒测试用例的设计方法

黑盒测试用例的设计方法

黑盒测试用例的设计方法
黑盒测试用例的设计方法有以下几种常见的方法:
1. 等价类划分法:将输入数据划分成不同等价类,然后选择代表性的测试用例进行测试。

例如,如果输入要求为0-100之间的数字,可以选择一个小于0的数、一个在0-100范围内的数和一个大于100的数来进行测试。

2. 边界值分析法:选择测试用例使得能够覆盖输入的边界值情况。

例如,如果输入要求为1-100之间的数字,可以选择1、100以及2个边界值之间的数作为测试用例。

3. 错误推测法:基于经验或猜测,推测可能存在的错误,并选择测试用例进行验证。

例如,对于一个登录功能,可能存在的错误包括密码错误、用户名不存在等,可以选择相应的测试用例进行验证。

4. 因果图法:根据功能的输入和输出之间的因果关系,绘制因果图,然后选择测试用例进行测试。

因果图可以帮助发现功能之间的因果关系和潜在的缺陷。

5. 决策表法:对于有多种条件和多个可能的结果的功能,使用决策表来帮助设计测试用例。

将各种条件和结果列成表格,然后选择组合测试用例进行测试。

以上是常用的黑盒测试用例设计方法,根据具体的需求和情况选择适合的方法进
行测试用例设计。

软件测试-7黑盒测试决策表法

软件测试-7黑盒测试决策表法


√ √√
√√ √ √





选项 12 13 14 15 16 17 18 19 20 21 22
规则
条件:
c1:month
M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4
c2:day c3:year
D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5 - - - - - Y1 Y2 Y1 Y2 - -
动作:
a1:不可能
√√√
a2:day加1
√√√
√√
a3:day复位

√√
a4:month加1
√√
a5:month复位

a6:year加1

简化NextDate函数决策表
规则1、2、3都涉及有30天的月份day类 D1、D2和D3,并且它们的动作项都是 day加1,因此可以将规则1、2、3合并。
类似地,有31天的月份day类D1、D2、 D3和D4也可合并,2月的D4和D5也可合 并。
不可能 17/8/2004 1/9/2001 17/12/2004 1/1/2002 17/2/2004 29/2/2004 1/3/2001 1/3/2001
不可能 不可能
决策表测试的适用范围
if-else逻辑突出;
• 恒等: IF A THEN B • 非: IF (NOT A) THEN B • 或: IF (A OR B) THEN C • 与:IF (A AND B) THEN C
后,不必检验别的规则. 如果某一规则的条件要执行多个操作任务,这些操
作的执行顺序无关紧要.
2024/6/22
24

黑盒测试方法---决策表法

黑盒测试方法---决策表法
1. 2.列出所有的条件桩和动作桩 2. 3.填入输入项 3. 4.填入动作项,得到初始决策表 4. 5.化简。(合并相似规则)
三角形问题决策表 Logo
测试用例 Logo
决策表应用 Logo
• 决策表最突出的优点是,能够将复杂的问题 按照各种可能的情况全部列举出来,简明并 避免遗漏。
• 利用决策表能够设计出完整的测试用例集合 。
• 运用决策表设计测试用例可以将条件理解为 输入,将动作理解为输出
NextDate函数的决策表测试用例设计 Logo
• M1:{month:month有30天} • M2:{month:month有31天,12月除外} • M3:{month:month是12月} • M4:{month:month是2月} • D1:{day:1≤day≤27} • D2:{day:day=28} • D3:{day:day=29} • D4:{day:day=30} • D5:{day:day=31} • Y1:{year:year是闰年} • Y2:{year:year不是闰年}
a3;
• 在c1为真c2为假条件下规则中的c3条目叫做 “不关心(条件无关或条件不适用)”条目 。
• 将任何一个条件组合的特定取值及相应要执 行的动作称为一条规则,在决策表中贯穿条 件项和动作项的一列就是一条规则。
决策表的生成----构造决策表的5个 Logo
步骤:
(1) 确定规则的个数。 有n个条件的决策表有2n个规则(每个条件取真、假值)。 (2) 列出所有的条件桩和动作桩。 (3) 填入条件项。 (4) 填入动作项,得到初始决策表。 (5) 简化决策表,合并相似规则。 若表中有两条以上规则具有相同的动作,并且在条件项之
案例分析 Logo

常用黑盒测试方法

常用黑盒测试方法

常用黑盒测试方法黑盒测试(Black box Testing)是一种测试方法,它主要基于对被测试系统的功能和性能进行验证,而不需要先了解系统的内部结构或代码的实现。

黑盒测试是从用户的角度出发,通过输入和输出的对比来验证系统的正确性。

下面将介绍一些常用的黑盒测试方法。

1. 等价类划分法(Equivalence Partitioning)等价类划分法是一种将输入和输出数据划分成不同等价类的方法。

通过选择一个代表性的数据进行测试,可以发现等价类中的共性问题。

例如,假设要测试一个输入用户名和密码的系统,等价类划分法可以将输入数据划分为有效的用户名和密码、无效的用户名和密码、用户权限不足的用户名和密码等等。

2. 边界值分析法(Boundary Value Analysis)边界值分析法是一种对输入和输出的边界情况进行测试的方法。

通常情况下,边界值测试可以很好地发现程序中存在的错误。

例如,对于一个要求输入1到100的数值的系统,边界值分析法可以选择1、2、99和100来测试,以验证系统在边界情况下的正确性。

3. 状态转换测试(State Transition Testing)状态转换测试是一种通过测试系统在不同状态下的行为来验证系统的正确性的方法。

在这种方法中,测试人员需要事先了解系统的各个状态及其之间的转换条件,通过测试不同状态之间的转换,以验证系统在状态转换过程中的正确性。

例如,一个文件管理系统可以具有打开、关闭和保存等状态,状态转换测试可以通过测试不同状态之间的转换来验证系统的正确性。

4. 决策表测试(Decision Table Testing)决策表测试是一种通过测试系统的决策逻辑来验证系统的正确性的方法。

测试人员需要构建一个决策表,列出不同情况下的输入和输出,以验证系统按照预期的逻辑进行判断和决策。

例如,一个购物网站可以具有不同的会员等级和不同的折扣策略,决策表测试可以通过测试不同的会员等级和购买金额来验证系统按照不同的折扣策略进行计算和应用。

黑盒测试-决策表法

黑盒测试-决策表法

⿊盒测试-决策表法判定表⼜成为决策表,是决策表法的核⼼,是分析和表达多逻辑条件下执⾏不同操作情况的有效⼯具。

决策表法是⼀种将复杂逻辑关系和多条件组合情况表达得较为明确的⽅法,适⽤于程序钟输⼊输出较多或输⼊与输出之间相互制约条件较多的情况综合所有⿊盒测试⽅法来讲,基于决策表法的测试是最严格,最具有逻辑性的决策表组成 决策表通常由⼀下4部分组成:《条件桩---列出问题的所有条件《条件桩---针对条件桩给出的条件列出所有可能的取值《动作桩---列出问题规定的可能采取的操作《动作桩---指出条件项的各组取值情况下应采取的动作决策表适⽤范围 决策表测试法适⽤于具有以下特征的应⽤程序--if then else 逻辑突出;--输⼊变量之间存在逻辑关系;--涉及输⼊变量⼦集的计算;--输⼊与输出之间存在因果关系。

适⽤于使⽤决策表设计测试⽤例的条件:--规格说明以决策表形式给出,或较容易转换为决策表。

--条件的排列顺序不会也不应影响执⾏的操作。

--规则的排列顺序不会也不应影响执⾏的操作。

--当某⼀规则的条件已经满⾜,并确定要执⾏的操作后,不必检验别的规则。

--如果某⼀规则的条件要执⾏多个操作,这些操作的执⾏顺序⽆关紧要。

决策表步骤(1)确定规则的个数。

--有N个条件的决策表有2的N次⽅个规则(每个条件取真、假值)。

(2)列出所有的条件桩和动作桩。

(3)填⼊条件项(4)填⼊动作项,得到初始决策表。

(5)简化决策表,合并相似规则。

--若表中有两条以上规具有相同动作,并且在条件项之间存在极为相似的关系,便可以合并。

--合并之后的条件项⽤符号“-”表⽰,说明执⾏的动作与该条件的取值⽆关,称为不管条件。

黑盒测试-决策表

黑盒测试-决策表

F
F F T F T

F
F F T T F

F
F F
F
F T
F
F T F F T


… … … … …
T F T F T F
√ √
5 合并相似规则
C1:a<b+c? C2:b<a+c? C3:C<a+b? F F F F F F F F F F F F F F F F F F F F F F F F F F T F F T … … …
动作桩
√ √ √ √ √ √ √
规则

动作项
规则合并(化简)
将具有相同动作,并且其条件项之间存在着极为相似关系的 两条或多条规则合并为一条规则
1
问 题 问 题 建 议 建 议 你觉得疲倦吗? 你觉得疲倦吗? 你对内容感兴趣吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 书中内容使你胡涂吗? 请回到本章开头重读 请回到本章开头重读 继续读下去 跳到下一章去读 继续读下去 Y Y Y
决策表的建立步骤
1列出所有的条件桩和动作桩
2 确定规则的个数
3 填入条件项
4 填入动作项
5 合并相似规则
实战演习 1 以下列问题为例给出构造决策表的具体过程。
如果某产品销售好并且库存低,则增加该产 品的生产;如果该产品销售好,但库存量不低, 则继续生产;若该产品销售不好,但库存量低, 则继续生产;若该产品销售不好,且库存量不低, 则停止生产。
第3章 黑盒测试方法
1 2 3 4
黑盒测试法概述
等价类测试
主 要 内 容
边界值测试
基于决策表的测试
5

实验三 黑盒测试—决策表法、因果图法

实验三  黑盒测试—决策表法、因果图法

实验3、黑盒测试:决策表法、因果图法及测试用例设计
一、实验目的
1、掌握决策表法、因果图的概念。

2、掌握决策表法、因果图测试用例设计法。

二、实验内容
有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。

若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

用程序模拟该自动售货机(注:用屏幕输入、输出来模拟售货机的动作),然后用因果图法测试该程序。

三、实验步骤:
1)分析原因与结果
2)画出因果图
3)转化为决策表
4)根据决策表设计测试用例,得到测试用例表
代码:
#include <stdio.h>
main(){
float i;
char j;
printf("请投入硬币:\n");
scanf("%f",&i);
printf("请选择所需饮料:\na:橙汁 or b:啤酒\n");
scanf("%s",&j);
if(i==0.5){
printf("出货成功");
}
else{
printf("找零%.2f元\n出货成功",i-0.5);
}
}
答:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

黑盒测试:决策表法实例分析
采用决策表法对NextDate问题设计测试用例
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。

例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。

步骤如下:
1)构造决策表
●M1={月份:30天/月},
M2={月份: 31天/月,12月除外},
M3={月份: 12月},M4={月份: 2月}
●D1={日期:1<=日<=27},
D2={日期:日=28},
D3={日期:日=29} ,
D4={日期:日=30},
D5={日期:日=31}
●Y1={年:闰年},Y2={年:平年}
注:二月:平年28天,闰年29天
条件桩:
●C1:月份在{M1,M2,M3,M4}中之一
●C2:日期在{D1,D2,D3,D4 ,D5}中之一
●C3:年在{Y1,Y2}中之一
动作桩:
●A1:不可能
●A2:日期增1
●A3:日期复位(置1)
●A4:月份增1
●A5:月份复位(置1)
●A6:年增1。

相关文档
最新文档