您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

超适合新手的黑盒测试用例设计方法

时间:2022-02-17 11:26:55  来源:  作者:牛鹭软件测试

等价类划分法

1.1概念

等价类划分法就是把程序的输入域划分成若干个部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。

1.2应用

等价类是指某个输入域的子集合。等价类划分可有两种不同的情况:有效等价类和无效等价类。

有效等价类:对程序规格有意义、合理地输入数据集合,程序接收到有效等价类数据,可以正确执行、计算。

无效等价类:对程序规格无意义、不合理地输入数据集合,程序接收到无效等价类数据,应该给出错误提示,或者根本不让用户输入。

设计测试用例时,要同时考虑这两种等价类,因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

1.3等价类划分实例

某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)

分析题目中给出的和隐含的对输入条件的要求:

(1)整数 (2)三个数 (3)非零数 (4)正数

(5)两边之和大于第三边 (6)等腰 (7)等边

如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:

1)如果不满足条件(5),则程序输出为 " 非三角形 " 。

2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。

3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。

列出等价类表并编号

超适合新手的黑盒测试用例设计方法

 

覆盖有效等价类的测试用例:

a b c 覆盖等价类号码

3 4 5 (1)–(7)

4 4 5 (1)–(7),(8)

4 5 5 (1)–(7),(9)

5 4 5 (1)–(7),(10)

4 4 4 (1)–(7),(11)

覆盖无效等价类的测试用例:

超适合新手的黑盒测试用例设计方法

 

边界值分析法

概念

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。 所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

应用

采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。

通常情况下,软件测试所包含的边界检验有几种类型:

数字、字符、位置、质量、大小、速度、方位、尺寸、空间等

相应地,以上类型的边界值应该在:

最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、 空/满等情况下 。

边界值分析法与等价类分析法的区别:

1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

例:测试计算平方根的函数

–输入:实数

–输出:实数

–需求说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。

A.等价类划分:

I.可以考虑作出如下划分:

a、输入 (i)<0 和 (ii)>=0

b、输出 (a)>=0 和 (b) Error

II.测试用例有两个:

a、输入4,输出2。对应于 (ii) 和 (a) 。

b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。

B.边界值分析:

划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:

a、输入 {最小负实数}

b、输入 {绝对值很小的负数}

c、输入 0

d、输入 {绝对值很小的正数}

e、输入 {最大正实数}

注:能用边界值测试的时候,一般都可以用等价值测试。

错误推断法

概念

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

应用

基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。

例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用例:

1)无SIM 卡插入时进行呼出(非紧急呼叫)

2)插入已欠费SIM卡进行呼出

3)射频器件损坏或无信号区域插入有效SIM卡呼出

4)网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)

5)网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字

因果图法

概念

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

应用

因–原因,输入条件

果—结果,输出结果

用图形的方式,来分析软件 输入和输出的对应关系

边界值分析和等价类划分的一个弱点是未对输入条件的组合进行分析。对输入组合进行测试并不是简单的事情,因为即使对输入条件进行了等分,这些组合的数量也是天文数字。如果在选择输入条件的子集时没有采用一个系统的方法,很可能选择出一个任意的输入条件子集,这样会使测试没有什么成效。

因果图介绍

1)4种符号分别表示了规格说明中的4种因果关系。

超适合新手的黑盒测试用例设计方法

 

2)因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。

3)C1表示原因,通常置于图的左部;e1表示结果,通常在图的右部。C1和e1均可取值0或1,0表示某状态不出现,1表示某状态出现。

因果图涉及的概念

1)关系

恒等:若c1是1,则e1也是1;否则e1为0。

非:若c1是1,则e1是0;否则e1是1。

或:若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入。

与:若c1和c2都是1,则e1为1;否则e1为0。“与”也可有任意个输入。

2)约束

输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。

超适合新手的黑盒测试用例设计方法

 

输入条件的约束有以下4类:

E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。

I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。

O约束(唯一);a和b必须有一个,且仅有1个为1。

R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。

说明:唯一的情况是有一个默认值:而互斥没有默认值

输出条件约束类型

输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。

总结:当有输入数据的时候,可以把需求中要求的每一个输入项当做一个条件

判定表驱动

概念

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

判定表驱动法

判定表的优点

能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。

判定表(因果图)也是考虑控件组合,但是组合数量较少(一般不会超过20种),而且测试全面

正交试验法

概念

依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等。

应用

正交表:一种特制的表,一般正交表记为:Ln(m^K)

n是表的行数,也就是需要测试组合的次数

K是表的列数,表示控件的个数(因素的个数,或因子个数)

m是每个控件包含的取值个数(因因素的水平数,即因素的状态数)

功能图法

概念

功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能。

场景法

概念

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。

测试用例设计综合策略

Myers提出了使用各种测试方法的综合策略:

1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。

2)必要时用等价类划分方法补充一些测试用例。

3)用错误推测法再追加一些测试用例。

4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。

5)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。

测试用例的设计步骤

1)构造根据设计规格得出的基本功能测试用例;

2)边界值测试用例;

3)状态转换测试用例;

4)错误猜测测试用例;

5)异常测试用例;

6)性能测试用例;

7)压力测试用例。

优化测试用例的方法

1)利用设计测试用例的8种方法不断的对测试用例进行分解与合并;

2)采用遗传算法理论进化测试用例;

3)在测试时利用发散思维构造测试用例;



Tags:黑盒测试   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
超适合新手的黑盒测试用例设计方法
等价类划分法1.1概念等价类划分法就是把程序的输入域划分成若干个部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一...【详细内容】
2022-02-17  Search: 黑盒测试  点击:(233)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(1)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(3)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(8)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(15)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(11)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(8)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(14)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(12)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(13)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条