测试基础 -- 工作中常用的用例设计

@IT·平头哥联盟∙首席背锅官,我是松鼠_

一般写用例比较常用的有边界值,等价类. 业务比较复杂的会会用到因果图,正交,判定表等.其他用例设计几乎很少会用到,我是没用到其他的用例设计过.对于刚接触的,先理解为主后续再深入

边界值

什么是边界值呢? 我们这边就不说文绉绉的理论了,直接带图实际讲解,尽量讲通俗易懂(这里只讲边界值)

image.png

以上面输入账号为例: 假设账号的长度要求5-16个字母或数字的长度.密码长度要求8-16个字母或数字

我们测试的时候看到这种输入框我们会考虑很多,边界值就是其中一个考虑的点.

上面要求了长度在5-16个字符,那边界值我们应该怎么测试呢?或者怎么写用例呢?

边界值简单考虑以下两个点即可:

输入条件规定了值的范围,则应去刚刚到达这个范围的边界的值,以及刚刚超过这个范围边界的值作为测试输入数据。

输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。

账号长度要求5-16:

提取(5,16)

分析: 4,(5,6 15,16),17 这什么意思呢?

长度在5-16个字符, 看中文边界值就能知道什么意思了,边界值,取值的数字的边界上的值

5 的边界值有哪些: 4,6 是不是5的边界值. 15,17 是不是16的边界值呢?

那测试的时候,这账号输入测试,我们是不是要分别测试4个字符长度账号,5个字符长度,6个字符长度,15个字符长度,16个字符长度,17个字符长度

我们测试的时候遇到这种输入框有长度限制,就看下限制要求,根据长度要求再设计测试用例

等价类

可以简单这么理解,符合需求规则的就是有效等价类,不符合规则的就是无效等价类

我们再拿上面的邮箱账号长度的要求来举例子

要求长度: 5-16字母或者数据组成不支持特殊符号

有效等价类为: 任意数字字母组合5-16为字符都是有效等价类

无效等价类为:任意数字字母组合长度在5以下,16以上长度都是无效等价类

工作中应用:

写用例的时候,需要考虑反例,什么事反例,就是一些异常的场景

等价类用例,我们也需要设计有效和无效的

如要求是,5-16字母或者数据组成不支持特殊符号,那我们要设计有效的,也要设计无效的

简单举例其中一个有效的: [email protected] 这个账号5位数符合5-16位字符

无效: 12.,[email protected] 这个算是有效的吗?看,符合5-16位字符,为什么他是无效的呢? 再看一下要求,要求有说明不支持特殊符号只能数字和字母

写用例的时候这种有效无效都要写,而且各种有效的场景和各种无效的场景考虑的越全,用例覆盖的就越全.

判定表

1、为什么用判定表设计测试用例?

等价类方法详细的考虑了需求输入域,但对于输入域与输入域存在关联时无法覆盖,(比如等价类划分设计测试用例时,设计一条新的测试用例,使其仅覆盖一个无效等价类,直至所有的无效等价类完全被覆盖,没有考虑无效等价类与无效等价类的组合情况)。所以需要一种能考虑输入域间的互相关系设计方法来考虑业务描述性的测试需求。

2、什么是判定表?

判断表是分析喝表达若干输入条件下,被测对象根据输入作出不同响应的工具,适用于业务逻辑关系和多种条件组合情况。

判定表的结构

image.png

条件桩:被测对象的所有输入

条件项:针对条件桩可能输入的真假值

动作桩:针对条件桩被测对象可能采取的所有动作

动作项:针对动作桩,被测对象响应可能结果取值

3、怎么用判定表设计测试用例?

步骤:

一、列出所有的条件和动作

二、根据提取出来的条件桩和动作桩,设计判定表确定规则的个数(假如有n个条件,每个条件有2个取值(0、1),就可以产生2的n次方种规则)

三、填写判定表

四、简化判定表(合并判定表是牺牲测试充分性,混乱业务逻辑为代价。8条以内的规则不建议合并)

五、抽取测试用例(简化判定表后,可抽取判定表中的每一条规则作为测试用例,判定表得到的是测试规则,不是最终的测试用例。规则不能验证功能点正确性,仅验证业务规则的正确性)

4、判定表设计测试用例的优缺点?

优点:判定表充分考虑了输入域之间的组合情况,每条规则覆盖了多条输入条件,考虑输入的约束关系,降低了漏测的风险。同时利用判定表可推断出需求规格本身的逻辑性,反向证明了需求的正确。

缺点:当输入项过多时,规则数以2的n次方剧增,判定表会非常庞大,采用判定表合并时会造成逻辑缺失,业务混乱错误的情况。

5、判断表设计测试用例的例子

示列一:停机或欠费不允许主被叫

步骤一:列出所有的条件和动作

条件:停机/欠费

动作:主被叫

步骤二:确定规则数

有3个条件,每个条件有2个取值,故有8个规则

步骤三:填写判定表


步骤四:只有4条规则不合并,8条以下的规则不建议合并

步骤五:规则抽取:

(1)用户不停机不欠费,可进行主被叫

(2)用户不停机欠费,不允许主被叫

(3)用户停机不欠费,不允许主被叫

(4)用户停机欠费,不允许住被叫

因果图

为什么采用因果图测试用例的测试方法?

判定表设计法在设计测试用例的过程中,考虑了输入与输入存在约束约束关系,没有考虑到输入与输出之间的约束关系。简单的业务逻辑可以用判定表解决,复杂的约束关系就不太适合了。

什么是因果图设计法? 因果图在软件测试用例的设计过程中,用于描述输入与输入、输入与输出之间存在的约束关系。

针对需求规格,将原因和影响分为2组4类:输入与输出、输入与输入。

理论说明:

输入与输出的关系主要有:恒等、非、与、或

恒等:若输入条件发生,则一定会产生对应的输出,若输入条件不发生,则一定不会产生对应的输出

非:若输入条件发生,则一定不会产生对应的输出,若输入条件不发生,一定会产生对应的输出

与:多个输入条件,只有所有输入条件发生时,才会产生对应的输出

或:在多个输入条件中,只要有一个发生,则会产生对应输出。

输入与输入之间同样存在异、或、唯一、要求等4种关系

异(所有输入条件中至多有一个发生,可以一个条件条件也不发生)

或(所有输入条件至少有一个输入条件发生,也可以多个条件共存)

唯一(所有输入条件有且只有一个发生)

要求(所有输入条件中只要有一个条件发生,其他的输入也会发生)

理论通俗理解

输入与输出的关系主要有:恒等、非、与、或

恒等 ----- 我去你也去 我不去你也不去 atm里面有钱的话 取款按钮是绿色的 没钱那颜色就是灰色的 这就是恒等

非 与结果相反

与 ---- 跟and 一样 多个条件都要满足

或 ---- 跟 or 一样 满足其中一个即可

image.png

输入与输入之间同样存在异、或、唯一、要求等4种关系

异 --- 一群人里面只能去一个人,也可一个一个去,也可以一个也没去

或 --- 所有人至少去一人,也可以全部都去

唯一 --- 只能有一个 必须只能一个去

要求 --- 我去你也去 我发生变化你也会发生变化,一个条件变化所有条件会跟着变化

image.png

正交实验法

用正交实验法设计测试用例

以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?

一、用正交表设计测试用例的步骤

(1) 有哪些因素(变量)

(2) 每个因素有哪几个水平(变量的取值)

(3) 选择一个合适的正交表

(4) 把变量的值映射到表中

(5) 把每一行的各因素水平的组合做为一个测试用例

(6) 加上你认为可疑且没有在表中出现的组合

二、如何选择正交表

  • 考虑因素(变量)的个数

  • 考虑因素水平(变量的取值)的个数

  • 考虑正交表的行数

  • 取行数最少的一个

三、设计测试用例时的三种情况

(1)因素数(变量)、水平数(变量值)相符

(2)因素数不相同

(3)水平数不相同

四、我们来看看第一种情况:

(1)因素数与水平数刚好符合正交表

我们举个例子:

image.png

这是个人信息查询系统中的一个窗口。我们可以看到要测试的控件有3个:姓名、身份证号码、手机号码,也就是要考虑的因素有三个;而每个因素里的状态有两个:填与不填。

选择正交表时分析一下:

1、表中的因素数>=3;

2、表中至少有3个因素数的水平数>=2;

3、行数取最少的一个。

从正交表公式中开始查找,结果为:

L4(23)

变量映射:


image

测试用例如下:

1:填写姓名、填写身份证号、填写手机号

2:填写姓名、不填身份证号、不填手机号

3:不填姓名、填写身份证号、不填手机号

4:不填姓名、不填身份证号、填写手机号

增补测试用例

5:不填姓名、不填身份证号、不填手机号

从测试用例可以看出:如果按每个因素两个水平数来考虑的话,需要8个测试用例,而通过正交实验法进行的测试用例只有5个,大大减少了测试用例数。用最小的测试用例集合去获取最大的测试覆盖率。

(2)因素数不相同

如果因素数不同的话,可以采用包含的方法,在正交表公式中找到包含该情况的公式,如果有N个符合条件的公式,那么选取行数最少的公式。

(3)水平数不相同

采用包含和组合的方法选取合适的正交表公式。

正交实验法的又一个例子

上面就正交实验法进行了讲解,现在再拿PowerPoint软件打印功能作为例子,希望能为大家更好地理解给方法的具体应用

假设功能描述如下:

  • 打印范围分:全部、当前幻灯片、给定范围 共三种情况;

  • 打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;

  • 打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;

  • 打印效果分:幻灯片加框和幻灯片不加框两种方式。

因素状态表:

状态/因素 A打印范围 B打印内容 C打印颜色/灰度 D打印效果
0 全部 幻灯片 颜色 幻灯片加框
1 当前幻灯片 讲义 灰度 幻灯片不加框
2 给定范围 备注页 黑白
3 大纲视图

我们先将中文字转换成字母,便于设计。得到:

因素状态表:

状态/因素 A B C D
0 A1 B1 C1 D1
1 A2 B2 C2 D2
2 A3 B3 C3
3 B4

我们分析一下:

被测项目中一共有四个被测对象,每个被测对象的状态都不一样。

选择正交表:

1、表中的因素数>=4

2、表中至少有4个因素的水平数>=2

3、行数取最少的一个

最后选中正交表公式:

L16(45)

正交矩阵为:

1 2 3 4 5
1 0 0 0 0 0
2 0 1 1 1 1
3 0 2 2 2 2
4 0 3 3 3 3
5 1 0 1 2 3
6 1 1 0 3 2
7 1 2 3 0 1
8 1 3 2 1 0
9 2 0 2 3 1
10 2 1 3 2 0
11 2 2 0 1 3
12 2 3 1 0 2
13 3 0 3 1 2
14 3 1 2 0 3
15 3 2 1 3 0
16 3 3 0 2 1

用字母替代正交矩阵:

1 2 3 4 5
1 A1 B1 C1 D1 0
2 A1 B2 C2 D2 1
3 A1 B3 C3 2 2
4 A1 B4 3 3 3
5 A2 B1 C2 2 3
6 A2 B2 C1 3 2
7 A2 B3 3 D1 1
8 A2 B4 C3 D2 0
9 A3 B1 C3 3 1
10 A3 B2 3 2 0
11 A3 B3 C1 D2 3
12 A3 B4 C2 D1 2
13 3 B1 3 D2 2
14 3 B2 C3 D1 3
15 3 B3 C2 3 0
16 3 B4 C1 2 1

我们看到:

第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。

1 2 3 4 5
1 A1 B1 C1 D1 0
2 A1 B2 C2 D2 1
3 A1 B3 C3 D1 2
4 A1 B4 C1 D2 3
5 A2 B1 C2 D1 3
6 A2 B2 C1 D2 2
7 A2 B3 C2 D1 1
8 A2 B4 C3 D2 0
9 A3 B1 C3 D2 1
10 A3 B2 C3 D1 0
11 A3 B3 C1 D2 3
12 A3 B4 C2 D1 2
13 A1 B1 C1 D2 2
14 A2 B2 C3 D1 3
15 A3 B3 C2 D2 0
16 A1 B4 C1 D1 1

第五列去掉没有意义。通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。

那么这样的话,就可以有12个测试用例了:

1、

测试用例编号 PPT—ST—FUNCTION—PRINT—001
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A全部的幻灯片,有颜色,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“全部”;3、打印内容选择“幻灯片”;4、颜色/灰度选择“颜色”;5、在“幻灯片加框”前打勾;6、点击“确定”。
预期输出 打印出全部幻灯片,有颜色且已加框。

2、

测试用例编号 PPT—ST— FUNCTION—PRINT—002
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A全部的幻灯片为讲义,灰度,不加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“全部”;3、打印内容选择“讲义”;4、颜色/灰度选择“灰度”;5、点击“确定”。
预期输出 打印出全部幻灯片为讲义,灰度且不加框。

3、

测试用例编号 PPT—ST—FUNCTION—PRINT—003
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A全部的备注页,黑白,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“全部”;3、打印内容选择“备注页”;4、颜色/灰度选择“黑白”;5、在“幻灯片加框”前打勾;6、点击“确定”。
预期输出 打印出全部备注页,黑白且已加框。

4、

测试用例编号 PPT—ST—FUNCTION—PRINT—004
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A全部的大纲视图,黑白
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“全部”;3、打印内容选择“大纲视图”;4、颜色/灰度选择“黑白”;5、点击“确定”。
预期输出 打印出全部大纲视图,黑白

5、

测试用例编号 PPT—ST—FUNCTION—PRINT—005
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A当前幻灯片,灰度,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“当前幻灯片”;3、打印内容选择“幻灯片”;4、颜色/灰度选择“灰度”;5、在“幻灯片加框”前打勾;6、点击“确定”。
预期输出 打印出当前幻灯片,灰度且已加框。

6、

测试用例编号 PPT—ST—FUNCTION—PRINT—006
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A当前幻灯片为讲义,黑白,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“当前幻灯片”;3、打印内容选择“讲义”;4、颜色/灰度选择“黑白”;5、在“幻灯片加框”前打勾;6、点击“确定”。
预期输出 打印出当前幻灯片为讲义,黑白且已加框。

7、

测试用例编号 PPT—ST—FUNCTION—PRINT—007
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A当前幻灯片的备注页,有颜色,不加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“当前幻灯片”;3、打印内容选择“备注页”;4、颜色/灰度选择“颜色”;5、点击“确定”。
预期输出 打印出当前幻灯片的备注页,有颜色且不加框。

8、

测试用例编号 PPT—ST—FUNCTION—PRINT—008
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A当前幻灯片的大纲视图,有颜色
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“当前幻灯片”;3、打印内容选择“大纲视图”;4、颜色/灰度选择“颜色”;5、点击“确定”。
预期输出 打印出当前幻灯片为讲义,黑白且已加框。

9、

测试用例编号 PPT—ST—FUNCTION—PRINT—009
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A给定范围的幻灯片,黑白,不加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“幻灯片”;3、打印内容选择“幻灯片”;4、颜色/灰度选择“黑白”;5、点击“确定”。
预期输出 打印出给定范围的幻灯片,黑白且不加框。

10、

测试用例编号 PPT—ST—FUNCTION—PRINT—010
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A给定范围的幻灯片为讲义,有颜色,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“幻灯片”;3、打印内容选择“幻灯片”;4、颜色/灰度选择“颜色”;5、点击“确定”。
预期输出 打印出给定范围的幻灯片为讲义,有颜色且加框。

11、

测试用例编号 PPT—ST—FUNCTION—PRINT—011
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A给定范围的幻灯片的备注页,灰度,加框
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“幻灯片”;3、打印内容选择“备注页”;4、颜色/灰度选择“灰度”;5、在“幻灯片加框”前打勾;6、点击“确定”。
预期输出 打印出给定范围的幻灯片的备注页,灰度且加框。

12、

测试用例编号 PPT—ST—FUNCTION—PRINT—012
测试项目 测试powerpoint打印功能
测试标题 打印PowerPoint文件A给定范围的幻灯片的大纲视图,灰度
重要级别
预置条件 PowerPoint文件A已被打开,电脑主机已连接有效打印机
输入 文件A:D:\系统测试.ppt
操作步骤 1、打开打印界面;2、打印范围选择“幻灯片”;3、打印内容选择“大纲视图”;4、颜色/灰度选择“灰度”;5、点击“确定”。
预期输出 打印出给定范围的幻灯片的大纲视图,灰度

状态迁移法

许多需求时使用状态机来描述的,状态及的测试主要关注测试状态的转移上面。通过测试验证其在给定的条件下是否能够产生需要的状态变化,有没有不可达到的状态或是是否有可能产生非法状态。因此可以设计状态前一路径覆盖的角度来设计测试用例,并对系统进行测试。状态迁移的目标是设计足够的测试用例来对系统的状态进行覆盖、对状态-条件的组合进行覆盖、以及状态迁移路径的覆盖

状态迁移的设计方法*

  1. 根据需求分系统存在哪些状态,分析状态之间的转换

  2. 使用箭头标志状态之间的转换

  3. 绘制状态迁移图

  4. 绘制状态迁移树,并根据状态迁移树得到测试用例

看例子就能明白了

例子1

image.png
image.png

例子2

image.png
image.png

用例设计就讲这几个,百分八十用的几乎都是边界和等价类,其他的都用的不多.

作者:松鼠 - 首席背锅官

来源:平头哥联盟

交流群:260282062(测试) 、386485473(前端)

本文原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(测试基础 -- 工作中常用的用例设计)