场景法设计测试用例atm_黑盒测试用例设计方法
本文根据Vince整理的《测试用例设计白皮书》整理
一、黑盒测试用例方法
黑盒测试用例设计方法,主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动发、正交试验设计法、功能图法等
1.等价类划分法
等价类划分法是把程序的输入域分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
应用场景:
某程序规定:“输入三个整数a,b,c分别作为三边的边长构成三角形.通过程序判定所构成的三角形的类型,当此三角形为一般三角形\等腰三角形及等边三角形时,分别作计算...”.用等价类划分方法为该程序进行测试用例设计.
分析题目中给出和隐含的对输入条件的要求:
⑴整数 ⑵三个数 ⑶非零数 ⑷正数 ⑸两边之和大于第三边 ⑹等腰 ⑺等边
如果a、b、c满足条件1-4,则输入下列四种情况之一:
①如果不满足条件5,则呈现输出为“非三角形”
②如果三条边相等即满足条件7,则呈现输出为“等边三角形”
③如果只有两条边相等,即满足条件6,则呈现输出为“等腰三角形”
④如果三条边都不相等,则程序输出为“一般三角形”
覆盖有效等价类的测试用例:
a b c 覆盖等价类号码
3 4 5 1-7
4 4 5 1-7,8
4 4 5 1-7,9
5 4 5 1-7,10
4 4 4 1-7,11
覆盖无效等价类的测试用例:
2.边界值分析法
边界值分析法就是对输入火输出的边界值进行测试的一种黑盒测试方法.同城边界值分析法是作为对等价类划分法的补充.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或者刚刚小于边界的值作为测试数据.
通常情况下,软件测试所包含的边界检验有几种类型:数字,字符,位置,重量,大小,速度,方位,尺寸,空间等
相应地,以上类型的边界值应该在:最大/最小,首位/末位,上/下,最快/最慢,最高/最低,最短/最长,空/满等情况下,利用边界值作为测试数据.
项
边界值
测试用例的设计思路
字符
起始-1个字符/结束+1个字符
假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。
数值
最小值-1/最大值+1
假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。
空间
小于空余空间一点/大于满空间一点
例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。
应用场景:
NextDate函数的边界值分析测试用例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050
测试用例
mouth
day
year
预期输出
Test1
Test2
Test3
Test4
Test5
Test6
Test7
6
6
6
6
6
6
6
15
15
15
15
15
15
15
1911
1912
1913
1975
2049
2050
2051
1911.6.16
1912.6.16
1913.6.16
1975.6.16
2049.6.16
2050.6.16
2051.6.16
Test8
Test9
Test10
Test11
Test12
Test13
6
6
6
6
6
6
-1
1
2
30
31
32
2001
2001
2001
2001
2001
2001
day超出[1…31]
2001.6.2
2001.6.3
2001.7.1
输入日期超界
day超出[1…31]
Test14
Test15
Test16
Test17
Test18
Test19
-1
1
2
11
12
13
15
15
15
15
15
15
2001
2001
2001
2001
2001
2001
Mouth超出[1…12]
2001.1.16
2001.2.16
2001.11.16
2001.12.16
Mouth超出[1…12]
4.错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.
5.因果图法
因果图法师一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法.
采用因果图法设计测试用例的步骤:
① 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.
② 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图.
③ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件.
④ 把因果图转换为判定表
⑤ 把判定表的每一列拿出来作为依据,设计测试用例.
6.判定表驱动法
判定表通常由4个部分组成
① 条件桩:列出了问题得所有条件.通常认为列出的条件的次序无关紧要
② 动作桩:列出了问题规定可能采取的操作.这些操作的排列顺序没有约束
③ 条件项:列出针对它左列条件的取值.在所有可能情况下的真假值.
④ 动作项:列出在条件项的各种取值情况下应该采取的动作.
判定表的建立步骤:
① 确定规则的个数.加入有n个条件.每个条件有两个取值(0,1),故有2n种规则.
② 列出所有的条件桩和动作桩
③ 填入条件项
④ 填入动作项.等到初始判定表
⑤ 简化.合并相似规则
应用场景:
问题要求:"....对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理...",这里假定,"维修记录不全"和"优先维修处理"均已在别处有更严格的定义.请建立判定表
解答:
① 确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则.
②列出所有的条件桩和动作桩
③ 填入条件项.可从最后1行条件项开始,逐行向上填满.如第三行是:Y N Y N Y N Y N,第二行是:Y Y N N Y Y N N 等等.
④ 填入动作桩和动作项.这样便得到形如图的初始判定表.
条件
功率大于50马力吗?
N
Y
Y
Y
N
N
N
N
维修记录不全吗?
Y
Y
N
N
Y
Y
N
N
运行超过10年吗?
Y
N
Y
N
Y
N
Y
N
动作
进行优先处理
x
x
X
X
X
作其他处理
X
x
x
⑤ 化简,合并相似规则后得到图.
条件
功率大于50马力吗?
Y
Y
Y
N
N
维修记录不全吗?
Y
N
N
-
-
运行超过10年吗?
-
Y
N
Y
N
动作
进行优先处理
x
x
X
作其他处理
x
x
7.正交试验法
依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.
8.功能图法
功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同事要依靠判定表或因果图表示的逻辑功能.
9.场景法
事件触发时的情景便形成了场景,二同一事件不同的触发顺序和处理结果就形成事件流.
应用场景:
ATM例子的流程示意图.
场景设计:
场景1——成功提款
基本流
场景2——ATM内没有现金
基本流
备选流2
场景3——ATM内现金不足
基本流
备选流3
场景4——PIN有误(还有输入机会)
基本流
备选流4
场景5——PIN有误(不再有输入机会)
基本流
备选流4
场景6——账户不存在/账户类型有误
基本流
备选流5
场景7——账户余额不足
基本流
备选流6
用例设计:
TCID
场景/条件
PIN
账号
输入(或选择)的金额
账面
金额
ATM内的金额
预期结果
CW1
场景1:成功提款
V
V
V
V
V
成功提款
CW2
场景2:ATM内没有现金
V
V
V
V
I
提款选项不可用,用例结束
CW3
场景3:ATM内现金不足
V
V
V
V
I
警告消息,返回基本流步骤6,输入金额
CW4
场景4:PIN有误(还有不止一次输入机会)
I
V
n/a
V
V
警告消息,返回基本流步骤4,输入 PIN
CW5
场景4:PIN有误(还有一次输入机会)
I
V
n/a
V
V
警告消息,返回基本流步骤4,输入 PIN
CW6
场景4:PIN有误(不再有输入机会)
I
V
n/a
V
V
警告消息,卡予保留,用例结束
数据设计
CID
场景/条件
PIN
账号
输入(或选择)的金额(元)
账面
金额(元)
ATM内的金额(元)
预期结果
CW1
场景1:成功提款
4987
809-498
50.00
500.00
2 000
成功提款。账户余额被更新为450.00
CW2
场景2:ATM内没有现金
4987
809-498
100.00
500.00
0.00
提款选项不可用,用例结束
CW3
场景3:ATM内现金不足
4987
809-498
100.00
500.00
70.00
警告消息,返回基本流步骤6,输入金额
CW4
场景4:PIN有误(还有不止一次输入机会)
4978
809-498
n/a
500.00
2 000
警告消息,返回基本流步骤4,输入PIN
CW5
场景4:PIN有误(还有一次输入机会)
4978
809-498
n/a
500.00
2 000
警告消息,返回基本流步骤4,输入PIN
CW6
场景4:PIN有误(不再有输入机会)
4978
809-498
n/a
500.00
2 000
警告消息,卡予保留,用例结束
10.测试用例设计综合策略
1.Myers提出了使用各种测试方法的综合策略:
① 在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强
② 必要时用等价类划分方法补充一些测试用例
③ 用错误推测法再追加一些测试用例
④ 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例
⑤ 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法
2.测试用例的设计步骤
① 构造更加设计规格得出的基本功能测试用例
② 边界值测试用例
③ 状态转换测试用例
④ 错误猜测测试用例
⑤ 异常测试用例
⑥ 性能测试用例
⑦ 压力测试用例
3.优化测试用例的方法
① 利用设计测试用例的8中方法不断的对测试用例进行分解与合并
② 采用遗传算法理论进化测试用例
③ 在测试时利用发散思维构造测试用例
场景法设计测试用例atm_黑盒测试用例设计方法相关推荐
- 黑盒法测试c语言,黑盒测试用例练习题.pdf
黑盒测试用例设计练习题 1.准考证号码 对招干考试系统"输入学生成绩"子模块设计测试用例.招干考试 分三个专业,准考证号第一位为专业代号,如: 1-行政专业, 2-法 专业, 3- ...
- 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择
文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...
- 利用场景法设计atm自动取款机的测试用例_atm自动取款机的测试用例
1. 软件测试用例实例 自动取款机取款用例规约和测试用例 取款用例说明: 此用例完成用户利用自动取款机取款的全部流程,分为以下流程:插卡,输入密码,选择金额,取款,取卡等操作. 事件流: 该用例在用户 ...
- 黑盒测试——因果图/判定表/正交排列法/场景法
一.实验目的 能够掌握黑盒测试的因果图.判定表.正交排列法.场景法原理 能够运用因果图.判定表.正交排列法.场景法写测试用例 二.实验任务 根据地铁购票系统的要求用因果图.判定表写测试用例 根据字符属 ...
- 2020-12-18:【黑盒测试用例设计】测试方法之场景法
[黑盒测试用例设计]测试方法之场景法 原理:核心思想是站在用户的角度上检测软件功能,发现软件的错误. 场景法能够以最少的测试成本,来发现最多的与用户平时使用时息息相关的软件缺陷或错误. 适用场景:业务 ...
- 场景法设计测试用例atm_测试用例设计经典面试题之电梯、杯子、笔、桌子、洗衣机、椅子、ATM等...
测试用例设计经典面试题之电梯.杯子.笔.桌子.洗衣机.椅子.ATM等 <转载> 1.测试项目:电梯 需求测试:查看电梯使用说明书.安全说明书等 界面测试:查看电梯外观 功能测试:测试电梯能 ...
- 场景法设计测试用例atm_测试用例设计--场景法
定义 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流.这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发 ...
- 2020-12-15:【黑盒测试用例设计】测试方法之边界值分析法
[黑盒测试用例设计]测试方法之边界值分析法 原理: 针对输入或输出范围的边界值进行测试. 通常是针对有效等价类的边界值进行测试. 考虑范围:变量的最大值.最小值.中间值.比最大值大的值.比最小值小的值 ...
- 【黑盒测试用例设计】等价类划分法
等价类划分法是一种黑盒测试方法,用于将测试过程合理分类以确保设计出的测试用例具有完整性和代表性.在使用等价类划分法时,需要按照需求规格说明书生成等价类,其中包括有效等价类和无效等价类.有效等价类是合理 ...
最新文章
- 论文LaTeX、项目README:无脑套用格式、开源模板最高10万赞
- Python当前进程信息 (os包)
- 2018冬令营模拟测试赛(十八)
- 89.算数移位 -逻辑移位-循环移位
- FFmpeg AVCodecContext结构体debug变量剖析
- 【BZOJ 4169】 4169: Lmc的游戏 (树形DP)
- 【HDOJ】1068 Girls and Boys
- HAL——硬件抽象层读书笔记
- winxp一键锁定计算机,WinXP下锁定计算机的3种方法
- 背水一战 Windows 10 (42) - 控件(导航类): Frame 动画
- Photoshop入门教程十个点
- 《企业IT架构转型之道》边读边想——内容主线
- wps2005插件开发之旅
- SVN修改服务器中的文件夹名称
- Android 更换皮肤
- 不使用循环,求二进制中1的个数
- python中写sql语句添加for循环和变量。(一种SQL引入循环的思想实现)
- Java多线程之线程池的参数和配置
- 中国城市资本流动问题探索(Python)
- 鲁山县蜂蜜峰农李延卿“老骥伏枥,师德为人”---陈帅良