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

黑盒测试常用的方法:等价类、边界值、因果图、判定表、正交实验、场景法、状态转换,还有错误猜测法等。

等价类

所谓等价类划分就是把程序的输入域划分成若干部分,然后从每部分选取少量的具有代表性的数据作为测试用例。通过划分等价类可以大幅度的减少测试工作量。

六条确定等价类的原则:

1.       在输入条件规定了输入值的范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

2.       在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

3.       在输入条件是一个布尔量的时候,可确定一个有效等价类和一个无效等价类。

4.       在规定了输入数据的一组值(n个),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。

5.       在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

6.       在确知已划分的等价类中,各元素在程序中的处理方式不同的情况下,则应再将该等价类划分为更小的等价类。

在确定测试用例时有个原则要注意:一条测试用例尽量覆盖所有的有效等价类,一个无效等价类对应一条测试用例。

我们假设三条边是:A、B、C。如果构成三角形应该满足下面的条件:

A>0,B>0,C>0 并且A+B>C,A+C>B,B+C>A

等腰的还要满足A=B或A=C或B+C

等边的要满足A=B且A=C且B=C

根据这些条件我们来列出等价类表


输入条件


有效等价类


无效等价类


是否构成三角形


A>0                   (1)


A<=0                  (7)


B>0                   (2)


B<=0                  (8)


C>0                   (3)


C<=0                  (9)


A+B>C                 (4)


A+B<=C               (10)


A+C>B                 (5)


A+C<=B               (11)


B+C>A                 (6)


B+C<=A               (12)


是否等腰三角形


A=B                  (13)


A!=B and A!=C and B!=C  (16)


A=C                  (14)


B=C                  (15)


是否等边三角形


A=B and A=C and B=c    (17)


A!=B                 (18)


A!=C                 (19)


B!=C                 (20)

根据这个表我们就可以确定测试用例了


序号


(A B C)


覆盖的等价类


输出


1


3 4 5


1,2,3,4,5,6


一般三角形


2


0 1 2


7


不构成三角形


3


1 0 2


8


4


1 2 0


9


5


1 2 3


10


6


3 5 2


11


7


3 1 2


12


8


3 3 4


1,2,3,4,5,6,13


是等腰三角形


9


3 4 3


1,2,3,4,5,6,14


10


4 3 3


1,2,3,4,5,6,15


11


3 4 5


1,2,3,4,5,6,16


不是等腰三角形


12


3 3 3


1,2,3,4,5,6,17


是等边三角形


13


3 4 4


1,2,3,4,5,6,15,18


不是等边三角形


14


3 3 4


1,2,3,4,5,6,13,19


15


3 4 3


1,2,3,4,5,6,14,20

边界值

边界值分析法选择测试用例的原则:

1.如果输入条件规定了值得范围,则应取上点、离点和内点作为输入数据(内点:区域内的点;上点:无论开区间还是闭区间,都是边界上的点;离点:开区间的离点就是区域内离上点最近的点,闭区间的离点就是区间外离上点最近的点)

2<=X<=6: 测试用例为1,2,4,6,7

2<X<6:测试用例为2,3,4,5,6(2、6是上点,3、5是离点,4是内点)

2.如果输入条件规定了值得个数,则用最大个数,最小个数,比最大格式多1和比最小个数少1作为测试用例

3.将1、2用于输入条件

4.若输出域或者输出域是有序集合,选择第一个元素和最后一个元素作为测试用例

5.若使用了内部数据结构,选择内部数据结构边界值作为测试用例

因果图和判定表

判定表法可以略过因果图的绘制,直接列出所有组合进行筛选。

在实际测试中,许多操作时具有相互联系的,只有执行A动作才会产生B结果,像这种测试我们就需使用因果图。

现在地铁一卡通充值,窗口越来越少了,都推荐自动充值机充值了,我们把它简化一下,只能投入50和100的人民币,相应的也只能充值50和100元。

根据因果图填判定表:

正交实验法

正交实验法主要适用于一些配置功能的界面和兼容性测试,其他需要组合的界面。正交实验法也是针对有效等价类的。

有一款打印软件,打印范围分为全部、当前幻灯片、给定范围,共三种情况;打印内容分为幻灯片、讲义、备注页、大纲视图,共四种方式;打印颜色/灰度分为颜色、灰度、黑白,共三种设置;打印效果分为幻灯片加框和幻灯片不加框两种方式。如果要将这些情况全部都覆盖测试,应该是3*4*3*2=72种情况。这些用例太多,全部测试任务量太多。

这种情况我们就可以使用正交试验法来减少测试用例数。首先看一下关于正交试验的一些基本概念和术语。因素:凡欲考察的变量称为因素,这里就是4个,打印范围、打印内容、打印颜色/灰度、打印效果。水平就是变量的取值,这里打印范围的水平是3(有3种情况),打印内容是4种,打印颜色/灰度是3种,打印效果是2种。接下来我们就需要找适合的正交表。这里最大的水平是4,因素是4,所以4的4次幂的正交表就符合我们的要求。

场景法

场景法最主要的就是能够分析出基本流和备选流。场景法主要适用于安装程序、向导类功能和多界面切换完成的功能。

基本流就是按照正确的事件流来实现的流程。备选流就是出现故障或缺陷的过程。场景就是若干事件流首尾拼接构成一个测试场景。来看一个场景图:

每个场景对应一个测试用例,对每个用例进行评审,删掉重复的就可以了。

状态迁移法

被测系统的功能依赖于数据的状态,像常见的工作流系统(OA),对于这类软件状态迁移法就在合适不过了。


案例研究1:某航空公司的订票系统


客户提供机票信息,订票系统根据这些信息订票,将订单状态标记为Made


同时订票系统启动计时器,要求客户在指定时间内必须付费


计时器超时前,客户付费,订单状态标记为Paid


客户可以打印处于Paid状态的订单机票,订单系统将为用户出票,订单状态标记为Ticketed


客户使用机票登机后,订单状态标记为Used(结束订单)


订票系统计时器超时后客户未付费,订票系统将取消本次机票预订,订单状态为CanceledNonPay


若在计时器超时之前,客户要求取消本次订票,订票系统将取消本次机票预订,订单状态为CanceledByCustomer


若客户在付费后取消订票,订单状态标记为CanceledByCustomer,但需要将相关的机票款项按规定退还给客户


若客户在拿到机票后取消订票,订单状态标记为CanceledByCustomer,客户需要将机票退回航空公司,航空公司收到退票后将相关的机票款项按规定退还给客户


电子机票的状态


事件


Made初始创建


提交订单


Paid已付费


客户付费


Ticketed已出票


打印机票


Used已使用


登机使用


CanceledNonPay超时取消


计时器超时未付费


CanceledByCustomer用户取消


客户取消


客户已付费取消


拿到机票后取消

将这些状态和事件状态图表示

在形成测试用例的时候有几个准则:

(1)至少覆盖所有状态一次啊

(2)至少覆盖所有事件一次

(3)至少覆盖所有转换一次

(4)至少覆盖所有路径一次

时间: 2024-11-08 23:33:06

黑盒测试:测试用例的设计方法的相关文章

011-黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用

黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用. 1)等价类划分 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 2)边界值分析法 边界值分析方法是

测试用例的设计方法

测试用例的设计方法有: 等价类划分方法,边界值分析方法,错误推理方法,因果图方法,判定表驱动分析方法,正交实验设计方法,功能图分析方法,场景设计方法 等价类划分方法: 基本概念: 一.方法简介 1.定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 2.划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等

单元测试中测试用例的设计方法

单元测试中测试用例的设计方法 1. 用于语句覆盖的基路径法 基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖.基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作了解即可,不必理解和掌握. 基路径法步骤如下: 1)画出程序的控制流图 控制流图是描述程序控制流的一种图示方法,主要由结点和边构成,边代表控制流的方向,节点代表控制流的汇聚处,边和结点圈定的空间叫做区域,下面是控制流图的基本元素: 以下代码: void Sort(int iRecordNum,

史上最全的测试用例设计方法总结

测试用例的设计方法(全)等价类划分方法:一.方法简介1.定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 2.划分等价类:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表

测试小白基础知识---常用的测试用例设计方法

软件测试的核心是测试用例的编写,是每个测试人员必须掌握的技能!! «««测试第一原则:所有的测试,都必须追溯到需求: «««测试第二原则:测试是无穷尽的,测试必须终止 «««测试用例的设计方法: 一.等价类划分法 某个输入域的子集合,在该子集合中,所有的输入数据对揭露软件中的错误都是等效的. 等价类划分有效等价类和无效等价类 有效等价类:输入的数据,是符合需求的,是合理的合法的. 无效等价类:输入的数据,是不符合需求的,是不合理的. «««等价类划分法用例设计原则: 1.划分有效和无效等价类,为

【tool】黑盒测试的测试用例设计方法

目前黑盒测试的测试用例设计方法有5种: 等价类划分 边界值分析 错误推测法 因果图 功能图 一.等价类划分 等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例. 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试. 等价类划分有两种不同的情况:有效等价类和无效等价类.设计时要同时考虑这两种等价类. 下面给出6条确定等

功能性测试用例设计方法深入理解

一 进行测试设计的一般流程 设计测试案例的时候,需要有清晰的测试思路,对要测试什么,按照什么顺序测试,覆盖哪些需求做到心中有数.测试用例编写者不仅要掌握软件测试的技术和流程,而且要对被测软件的设计.功能规格说明.用户试用场景以及程序/模块的结构都有比较透彻的理解.测试用例设计一般包括以下几个步骤: 1.测试需求分析 从软件需求文档中,找出待测试软件/模块的需求,通过自己的分析.理解,整理成为测试需求,清楚被测试对象具有哪些功能.测试需求的特点是:包含软件需求,是否具有可测试性. 测试需求应该在软

软件测试基础知识——测试用例设计方法

软件测试的分类: 1.按软件功能测试分类:基于规格说明的测试(传统黑盒测试.基于规格说明测试).基于控制流的测试(白盒测试) 传统黑盒测试:边界值.等价类.决策表.因果图 白盒测试:语句覆盖.判断覆盖.条件覆盖.MC/DC覆盖.基本路径覆盖. 基于规格说明测试:状态机.UML.Petri网.Z规约 其他测试:冒烟测试.随机测试.错误猜测测试.故障树测试.基于蜕变的测试 2.根据测试阶段分类: 单元测试:对软件中最小的可测单元进行验证,可以是一个函数.一个类.一个类的方法. 集成测试:将单元模块组

为什么需要测试用例?测试用例设计方法分类有哪些?

为什么需要测试用例 测试的目的是在有限的资源下,尽可能多的找出系统的缺陷.这就要求在测试中,尽可能完全的走完系统的所有流程,保证所有的分支都经过测试. 而测试过程是由人来执行的,不可能避免的会遗漏一些应该测试内容,这样就很容易出现测试不全面的问题.再者,现有的软件开发大多都是迭代式进行的,需要对同一个功能反复测试多遍.很有可能第一轮测试得比较全面,当进行第二轮的时候,可能也会遗漏某些点.这种情况下,测试过程是由人控制的,具有盲目性,是不可控制的. 而测试用例就是把软件测试行为做一个科学化的组织和