黑盒测试用例设计总结

最常见黑盒测试方法包括:边界值、等价类、错误推测法、场景法、因果图法、判定表组成法、正交实验设计。(注:黑盒测试仅需知道系统的【输入】和【输出】,不需要知道代码是怎么写的。所以代码部分就不赘述了)

一、边界值测试

经实践总结:大量的软件缺陷发生在输入域和输出域的边界上。所以在设计测试用例的时候,应该重视边界。

例1:只有一个输入条件时,可以这么选取测试用例。(以坐标轴举例。以红点表示测试用例)

例2:当有两个输入条件的时候,可以这么选取测试用例。(以红点表示测试用例)

小结:

边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。但该方法会有较大的冗余和漏洞。边界值测试对布尔型无效(因为布尔型不是“true”就是“false”,不存在边界值的概念)。当然,边界值测试并非黑盒测试独有,它也可以应用在白盒测试(比如数组边界的测试、对循环次数边界的测试……)。

二、等价类划分

划分等价类

01  要做到穷尽测试是不可能的,所以在设计测试用例时往往要先划分等价类再选取“人大代表”。划分的子集应该满足如下因素:

(1)每个子集内部所有的数据都是等价的;

(2)子集之间互不相交;

(3)所有子集的并集是整个输入域或输出域;

PS:

(1)【有效等价类】是相对于规格说明合理的、正确的、有意义的输入数据构成的集合。

(2)【无效等价类】是相对于规格说明不合理的、错误的、无意义的输入数据构成的集合。举例说明。

例1:如网站注册用户名的时候,输入框要求“用户名由字母开头,后跟字母或数字的任意组合,且长度<=8”。

例2:每个学生可选修1-3门课程;

缺陷相关性假设

02   针对缺陷相关性假设,可将等价类测试分为【弱等价类测试】和【强等价类测试】。在现实情况中,由于缺陷的可能情况非常多,一个子集中的数据对某种缺陷是等价的,但对另外一种缺陷可能又是不等价的。

①弱一般等价类(WN)测试:考虑单缺陷假设;测试用例使用每个等价类中的一个值。

②强一般等价类(SN)测试:考虑多缺陷假设;测试用例集合为等价类笛卡儿积。

例1:弱等价类

弱等价类是考虑某个单一缺陷情况下的等价情况,子集里所有数据在这种缺陷假设下是等价的,并且划分成的几个等价类能够覆盖整个测试空间的单一缺陷。比如以下一段程序:

我们可以将数据划分为两个等价类,0~10为1个等价类,大于10的数据为1个等价类,在考虑“>”号误写成“<”号这种缺陷的情况下,这两个等价集中的数据都是等价的,比如0~10这个等价类中,使用0或使用10来进行测试都能发现缺陷。这两个等价类中各自抽取一个测试数据进行测试,都能代表其他数据揭示出“>”号误写成“<”号这种缺陷来,因此整个测试空间都被覆盖了。

例2:强等价类

强等价类是在多个缺陷假设前提下,各个等价类中的可测数据在单个或多个缺陷假设下是等价的,并且划分的各个等价子集中各自取一个测试数据可以覆盖整个测试空间的多个缺陷情况。

再考虑前面弱等价类中的例子程序,出错的可能性有哪些呢?

除了大于号会错写成小于号外,实际上还有可能写成大于等于号,10有可能写成1或100等大于10或小于10的数。(PS;为方便描述以错写成1和100为例)

①考虑0~10这个集合,在误写成中间一列条件中情况下,里面的数据并不等价,比如误写成x>1的情况下,使用1做测试和使用2做测试揭示缺陷是不同的,使用1做测试发现不了缺陷,但使用2测试就能发现缺陷。

②在判断条件误写成x>=10条件下,10和0~9中的任一数据也不等价,并且使用大于10的数据也无法揭示出条件错写成x>=10这个缺陷,因此整个测试空间的多个缺陷无法被已划分的两个等价类来覆盖,10需要单独划分成一个等价类。

③这样将数据划分成三个等价类{0~9}、{10}、{大于10的数据},再看看这三个等价类是否可以覆盖表中各种出错情况,显然在x>100和x>=100两种情况下,大于10的数据集合中的数据是不等价的,使用大于100的数据不能揭示出缺陷,但使用大于10小于100的数据却能揭示出缺陷,因此需要对大于10的数据再划分等价类,实际上只要将边界值{11}划一个单独的等价类就可以了。

④这样总共得到四个等价类{0~9}、{10}、{11}、{大于11的数据},从这四个等价类中各取一个数据的话就可以将以上列出的所有可能的缺陷情况都揭示出来,但是各个等价类并不是对所有缺陷都等价的,这种划分的等价类由于可以将各种缺陷情况覆盖到,把它叫做强等价类。

小结:

等价类测试可以处理布尔型和逻辑型的问题。建议在划分等价类后对每个等价类进行编号,这样可看起来会更清晰。

三、因果图

基于因果图的测试方法,要考虑如下问题:

(1)规格说明书有哪些原因?

(2)规格说明书有哪些结果?

(3)规格说明书中各种原因之间的关系怎么样?

(4)规格说明书中各种结果之间的关系怎么样?

(5)规格说明书中原因和结果之间的约束条件怎么样?

(6)如何从规格说明书中的原因和结果设计测试用例?

01 因果图

【a】恒等; 若c1为1,则e1也为1。若c1为0,则e1也为0;

【b】非:若c1是1,则e1是0。若c1为0,则e1是1;

【c】或:若c1与c2中有一个是1或者两个都为1,则e1是1。若c1和c2都为0,则e1是0;

【d】与:当且仅当c1和c2都是1,则e1为1,否则e1为0。

E约束(异;异或):a,b最多有一个可能为1,不能同时为1。

I约束(或;包含);a,b,c中至少有一个必须为1,不能同时为0。

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

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

M约束;对输出条件的约束,若结果a为1,则结果b必须为0。

举例:

某个软件的规格说明书中规定;第一个字符必须是A或B,第二个字符必须是一个数字字符,在此情况下进行文件的修改。但如果第一个字符不正确,则给出信息L;如果第二个字符不正确,则给出信息M。

可按照如下步骤设计测试用例:

(1)根据软件规格说明书。列出原因和结果

(2)找出原因和结果之间的关系,原因和原因之间的约束关系

(3)将因果图转化为判定表

(4)根据判断表设计测试用例

原因:                                                                 结果:
C1:第一个字符是A;                                        E1:给出信息L;
C2:第一个字符是B;                                        E2:修改文件;
C3:第二个字符是一个数字字符。                     E3:给出信息M;

转化成决策表

小结:

因果图可以用于描述输入与输出的相互关系。但是其绘制过程比较繁琐。因果图可以转化成决策表。建议直接绘制决策表。

四、决策表

举例:

已知a、b、c三边,判断是否能构成三角形?如果是三角形的话,是什么哪种三角形?

解答(决策表的建立步骤):

1、列出所有的条件桩和动作桩;
2、填入条件项;
3、填入动作项,制定初始判定表;
4、简化、合并相似规则或者相同动作。

小结:

决策表测试仅适合对输入域展开分析,不适合对输出域展开测试。

五、错误推测法

01 来源

错误推测法凭借的是测试人员的直觉和经验,推测系统中可能出现的各种缺陷。常常是列举出系统中所有【可能的缺陷和容易发生缺陷】的特殊情况,并根据它们来设计测试用例。

举例:测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:

小结:

优点:充分发挥个人的经验和潜能,命中率高

缺点:覆盖率难以保证;过多的依赖于个人的经验。

六、边界值测试

软件的工作流程往往对应着现实生活的场景。应该从更高些的视角来把握系统的业务流程,了解功能模块。在熟悉流程的基础上才能讨论局部细节的测试设计。场景法的核心是事件流和场景。

举例:

有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

解答:

step1:确定基本流和备选流;

step2:根据基本流和备选流来确定场景;

step3:设计用例。对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。

step4:设计用例设计数据,把数据填入上面的用例表中。

(PS:测试用例只是购物的一部分测试用例,应该还可以继续补充以达到比较好的覆盖。)

七、正交实验设计

原文地址:https://www.cnblogs.com/uestc2007/p/11276104.html

时间: 2024-08-30 10:29:53

黑盒测试用例设计总结的相关文章

转:黑盒测试用例设计方法

1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.              概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.              等价类划分法的应用 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理

黑盒测试用例设计技术--边界值分析法

本文通过案例的形式,详细讲解黑盒测试用例设计技术中的边界值分析法. 无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部.因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果.边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,通常作为对等价类划分法的补充,其测试用例来自等价类的边界.边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例. 如果你对等价类划分法还不

黑盒测试用例设计技术--等价类划分法

本文通过案例的形式,详细讲解黑盒测试用例设计技术中的等价类划分法. 等价类划分是一种典型的黑盒测试方法,其原理是把程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例. 通过等价类划分,可以在尽可能覆盖所有测试路径的前提下,大幅度减少测试用例的数目. 本文的主要内容有: 等价类的概念介绍 划分等价类的原则 根据等价类设计测试用例的方法 案例演示 划分等价类 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理的假设,

黑盒测试用例设计方法

1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.              概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.              等价类划分法的应用 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理

详细的黑盒测试用例设计方法

黑盒测试用例设计方法 1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.  概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.   等价类划分法的应用 (1)  等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某

软件测试【1】——黑盒测试用例设计方法(1)等价类、边界值、判定表、因果图

黑盒测试用例设计方法 等价类 等价类概念:在所有测试的数据中,具有某种共同特征的数据子集. 分类:有效等价类,无效等价类 等价类划分的规则: 等价类测试的步骤: (1)分析需求,确定输入数据类型 (2)使用规则划分有效和无效等价类 (3)设计用例,覆盖有效等价类(注意:一条用例尽可能覆盖多的有效等价类) (4)设计用例,覆盖无效等价类(注意:一条用例只能覆盖一个无效等价类) 案例:固定电话号码的测试(3/4位地区码和7/8位电话号码) 边界值分析方法 大量的错误都是发生在输入或输出范围的边界上,

黑盒测试用例设计-正交试验方法(七)

6.正交试验方法 第4节结尾提到,因果关系非常庞大,导致由此得到的测试用例数目多大.因而引入正交试验法,从大量的试验数据中挑选适量的.有代表性的点安排测试,来有效地.合理地减少测试的工时. (1)   正交试验设计法 一般用L代表正交表,常用的有L8(27).L9(34).L16(45).L8(4*24).L18(2*37).等.此符号各数字的意义如下. 以L8(27)为例,其中7为此表列的数目(最多可安排的因子数):2为因子的水平数:8为此表行的数目(试验次数). 又如L18(2*37),7列

黑盒测试用例设计二

正交试验法 正交表的由来         n阶拉丁方 正交设计的基本概念 在一项试验中 ,把影响试验结果的量称为试验因素(因子) ,简称因素.因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数.在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平. 每列中不同数字出现的次数相等.这特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优

黑盒测试用例设计-测试类型和环境因素(十一)

四.测试类型 1. 设计方法对测试类型的覆盖 其中,第二章设计方法主要针对程序本身功能.逻辑的测试,可以基本覆盖的测试类型有:基本功能测试.边界测试.等价类测试.等价边界测试.容错性(无效等价类)等. 而针对程序在系统中的与其他程序的交互.受内存环境的影响.实际使用中的性能表现.安全性等测试类型没有完全覆盖.因此需要从测试类型角度进行补充,这样的测试类型有:集成(接口)测试.压力测试.兼容性测试.安全性测试.并发测试(运行时接电话.收短信.锁屏.充电.闹铃,等功能相关.资源竞争的逻辑).用例设计

黑盒测试用例设计-功能图法和场景法(八)

7.功能图法 一个程序的功能包括静态和动态说明.动态说明描述输入数据的次序或转移的次序,和业务流程紧密对应.静态说明描述了输入输出条件之间的对应关系.对于面向市场的产品,其逻辑复杂.组合庞大,必须用动态说明来补充功能说明. 功能图设计方法:功能图方法使用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例.我们在不同文档中看到的"状态迁移图"."流程图"."菜单树",在一定程度上都是功能图的不同表现,不同测试人员可能对具体方法的使用稍有不