实验02 黑盒测试(组合测试、场景法)

1. 组合测试用例设计技术

  • 指出等价类划分法和边界值分析法通常假设输入变量相互独立,但实际情况中变量间可能存在关联。
  • 全面测试:覆盖所有输入变量的所有可能组合,测试用例数量随输入变量的增加而指数增长。
    • 全面测试需要对所有输入的各个取值之间的各种组合情形均进行相应的测试。
    • 对于软件测试而言,假设被测功能有m个输入,且每个输入有多个离散但有限的取值N1、N2……Nm(其中Ni的值可以不等,1≤i≤m),为了覆盖输入参数的全部取值组合,需要N1*N2…Nm个测试用例。
  • 单因素覆盖:确保每个输入变量的所有取值至少被测试一次。
  • 正交试验法:通过正交表减少测试用例数量,同时保证各因素各水平的均衡测试。

2. 正交试验法

  • 适用于多因素多水平的测试场景,通过选择代表性的测试组合来减少测试用例总数。
  • 引入Galois理论,选择适量的、有代表性的测试点。
  • 正交表Ln(tc)的使用,例如L4(23)、L8(27)等,用于设计高效的测试用例。
  • 序号

    x1

    x2

    x3

    x4

    1

    3

    2

    3

    1

    2

    3

    3

    1

    2

    3

    2

    1

    3

    2

    4

    2

    3

    2

    1

    5

    2

    2

    1

    3

    6

    1

    3

    3

    3

    7

    1

    1

    1

    1

    8

    3

    1

    2

    3

    9

    1

    2

    2

    2

 

3. 两两组合

  • 减少测试用例数量,同时确保参数取值两两组合的覆盖。
    • 测试用例序号

      x1

      x2

      x3

      1

      a1

      b1

      c1

      2

      a1

      b2

      c2

      3

      a2

      b1

      c2

      4

      a2

      b2

      c2

      5

      a2

      b2

      c1

      6

      a3

      b2

      c1

      7

      a3

      b2

      c2

      8

      a3

      b1

      c2

4. 具有约束关系的组合测试

  • 软约束和硬约束在测试设计中的影响,以及如何处理这些约束关系。

         

5. 场景法

  • 模拟用户操作软件时的场景,主要用于测试系统的业务流程。
    • 用例场景用来描述用例流经的路径,从开始到结束遍历整条路径上所有的基本流和备选流。
    • 基本流:按照正确的业务流程实现的一条操作路径(模拟正确的操作流程)。
    • 备选流:导致程序出现错误的操作流程(模拟错误的操作流程)。
  • 描述基本流和备选流,设计测试用例以遍历软件系统功能。
    • 场景1:基本流
    • 场景2:基本流 备选流1
    • 场景3:基本流 备选流1 备选流2
    • 场景4:基本流 备选流3
    • 场景5:基本流 备选流3 备选流1
    • 场景6:基本流 备选流3 备选流1 备选流2
    • 场景7:基本流 备选流4
    • 场景8:基本流 备选流3 备选流4

6. 场景法实例分析

  • 以ATM机取款为例,展示了如何使用场景法设计测试用例。
  • 步骤编号

    基本流

    1

    插入银行卡:客户将银行卡插入ATM机的读卡器

    2

    验证银行卡:ATM机从银行卡的芯片中读取账户代码,并检查它是否属于可以接受的银行卡

    3

    输入密码:ATM机要求客户输入密码

    4

    验证密码:确定该密码是否正确

    5

    进入ATM机主界面:ATM机显示各种操作选项

    6

    取款并选择金额:客户选择“取款”,并选择取款金额

    7

    ATM机验证:ATM机验证账户余额、当日总取款金额等是否满足要求,验证ATM机内现金是否够用

    8

    更新账户余额、出钞:验证成功,更新账户余额,输出现金,提示用户收取现金

    9

    返回操作主界面

实验

一 实验目的:

1、理解组合测试的优缺点;

2、掌握组合测试用例设计技术;

3、掌握场景法测试。

二 实验环境

1、Windows操作系统计算机;

三 实验准备

1、理解黑盒测试的定义;

2、组合测试的不同分类;

3、场景法基本流和备选流的理解。

四 实验内容

(一)现对网上蛋糕商城进行兼容性测试,主要从系统的运行平台、浏览器、代理服务器、网络协议等参数进行测试。各参数信息如表1-1所示:

表1-1 参数信息

操作系统

浏览器

代理服务器

网络协议

Windows XP

IE

Squid

Http

Windows 7

FireFox

CCProxy

UDP

Ubuntu

Safari

Nginx

TCP

(1)根据以上参数信息,要做全面覆盖的话,一共需要多少条测试用例。

        要进行全面覆盖测试,需要考虑所有参数的所有可能组合。给定的参数有4个,每个参数有2个值,因此总的测试用例数为 24=1624=16 条。

(2)根据以上参数信息,请写出满足单因素覆盖的测试用例。

编号

测试用例

编号操作系统浏览器代理服务器网络协议
T1Windows XPIESquidHttp
T2Windows 7FireFoxCCProxyUDP
T3UbuntuSafariNginxTCP

单因素覆盖意味着每个参数的所有值至少在一条测试用例中出现一次。 

(3)请使用正交实验法,选择合适的正交表,写出测试用例。

编号

测试用例

使用正交实验法,我们可以选择合适的正交表来减少测试用例的数量。对于4个参数两水平的情况,我们可以使用L4(2^3)或L16(4^5)等正交表。这里我们选择L4(2^3)正交表,因为它提供了4个测试用例,每个用例代表不同的参数组合。

以下是根据L4(2^3)正交表设计的测试用例示例:

序号OSBrowserProxyProtocol
T1XPIESquidHttp
T27FireFoxCCProxyUDP
T3UbuntuSafariNginxTCP
T4XPFireFoxNginxUDP

说明

  • OS: 操作系统 (Windows XP, Windows 7, Ubuntu)
  • Browser: 浏览器 (IE, FireFox, Safari)
  • Proxy: 代理服务器 (Squid, CCProxy, Nginx)
  • Protocol: 网络协议 (Http, UDP, TCP)

正交表的每一列代表一个参数,每一行代表一个测试用例。在这个L4(2^3)表中,我们有4个测试用例,每个参数的两个水平都被均匀地分布在测试用例中,确保了每个参数的每个水平都与其他参数的每个水平至少组合一次,从而减少了测试用例的总数,同时保持了测试的全面性。

常用正交表
L4(23
试验号列号
123
1111
2122
3212
4221
L8(27
试验号列号
1234567
11111111
21112222
31221122
41222211
52121212
62122121
72211221
82212112
L12(211
试验号列号
1234567891011
111111111111
211111222222
311222111222
412122122112
512212212121
612221221211
721221122121
821212221112
921122212211
1022211112212
1122121211122
1222112121221
L16(215
试验号列号
123456789101112131415
1111111111111111
2111111122222222
3111222211112222
4111222222221111
5122112211221122
6122112222112211
7122221111222211
8122221122111122
9212121212121212
10212121221212121
11212212112122121
12212212121211212
13221122112211221
14221122121122112
15221211212212112
16221211221121221
L9(34
试验号列号
1234
11111
21222
31333
42123
52231
62312
73132
83213
93321
L18(37
试验号列号
1234567
11111111
21222222
31333333
42112233
52223311
62331122
73121323
83232131
93313212
101133221
111211332
121322113
132123132
142231213
152312321
163132312
173213123
183321231
L27(313
试验号列号
12345678910111213
11111111111111
21111222222222
31111333333333
41222111222333
51222222333111
61222333111222
71333111333222
81333222111333
91333333222111
102123123123123
112123231231231
122123312312312
132231123231312
142231231312123
152231312123231
162312123312231
172312231123312
182312312231123
193132132132132
203132213213213
213132321321321
223213132213321
233213213321132
243213321132213
253321132321213
263321213132321
273321321213132
L16(45
试验号列号
12345
111111
212222
313333
414444
521234
622143
723412
824321
931342
1032431
1133124
1234213
1341423
1442314
1543241
1644132
L32(49
试验号列号
123456789
1111111111
2122222222
3133333333
4144444444
5211223344
6222114433
7233441122
8244332211
9312341234
10321432143
11334123412
12343214321
13412433421
14421344312
15434211243
16443122134
17114142323
18123231414
19132324141
20141413232
21214234132
22223143241
23232412314
24241321423
25313312442
26324421331
27331134224
28342243113
29413424213
30424313124
31431242431
32442131342

(4)使用PICT工具,写出符合两两组合覆盖标注的测试用例。

编号

测试用例

两两组合覆盖意味着每对参数的组合至少在一条测试用例中出现一次。以下是符合两两组合覆盖标准的测试用例示例:

编号操作系统浏览器代理服务器网络协议
T1Windows XPIESquidHttp
T2Windows 7FireFoxSquidHttp
T3UbuntuSafariSquidHttp
T4Windows XPIECCProxyUDP
T5Windows 7FireFoxCCProxyUDP
T6UbuntuSafariCCProxyUDP
T7Windows XPIENginxTCP
T8Windows 7FireFoxNginxTCP

(二)场景法是黑盒测试中重要的测试用例设计方法。目前多数软件系统都是用事件触发来控制业务流程,事件触发时的情景便形成了场景,场景的不同触发顺序构成用例。场景法通过场景描述业务流程(包括基本流(基本流程)和备选流(分支流程)),设计用例遍历软件系统功能,验证其正确性。

下图为简化的网上蛋糕商城购物过程的基本业务流程,业务的基本流和备选流。

 

蛋糕商城购物业务流程图

(1)填写表1-1中表述的基本流和备选流,使用场景法设计测试场景。基本流和备选流用对应的字母编号表示。

表1-1 网上蛋糕商城购物的基本流和备选流

业务流

编号

描述说明

基本流

A

B

C

D

E

备选流

F

G

H

I

J

业务流编号描述说明
基本流A用户访问商城网站
B用户选择蛋糕并加入购物车
C用户点击购物车进行结算
D用户选择支付方式并支付
E支付成功后,购物成功
备选流F商品缺货
G用户登录时密码不正确
H用户登录时账户不存在
I用户支付时余额不足
J用户发现购物车为空

 

(1)用表1-1中表述的基本流和备选流,使用场景法设计测试场景。基本流和备选流用表1-1中对应的字母编号表示。

场景描述

基本流

备选流

场景描述基本流备选流
场景1: 用户正常购买流程A-B-C-D-E
场景2: 商品缺货处理A-B-F
场景3: 用户登录失败 - 密码错误A-G
场景4: 用户登录失败 - 账户不存在A-H
场景5: 用户支付失败 - 余额不足A-B-C-D-I
场景6: 用户发现购物车为空A-J

 

(2)下表给出了测试用例名称,请将表中的输入条件和预期输出补充完整。

编号

用例名称

输入条件

预期输出

1

2

3

4

5

编号用例名称输入条件预期输出
1正常购买蛋糕用户正常访问网站,选择蛋糕,支付显示支付成功页面,订单状态更新为已完成
2商品缺货提示用户选择缺货蛋糕显示商品缺货提示,建议选择其他商品
3登录失败 - 密码错误用户输入错误密码显示密码错误提示,要求重新输入密码
4登录失败 - 账户不存在用户输入不存在的账户名显示账户不存在提示,建议注册或找回账户
5支付失败 - 余额不足用户账户余额不足,尝试支付显示余额不足提示,要求充值或更换支付方式
6购物车为空用户访问购物车,但未添加任何商品显示购物车为空提示,建议继续选购商品

五 实验总结

(1)请简述全面组合测试的优缺点。

优点:

  1. 全面性:全面组合测试能够覆盖所有可能的输入组合,确保了测试的完整性。
  2. 发现缺陷:由于测试覆盖广泛,它能够揭示软件在各种输入条件下的潜在缺陷。
  3. 验证边界条件:可以确保边界条件和异常情况得到验证,增加发现边界错误的机会。
  4. 测试用例可复用:一旦创建,这些测试用例可以在软件的后续版本中重复使用。

缺点:

  1. 成本高:随着输入参数数量和每个参数取值的增加,测试用例的数量呈指数增长,导致测试成本显著增加。
  2. 时间消耗:执行大量测试用例需要更多时间,可能会延迟软件发布。
  3. 效率低下:许多测试用例可能在实际操作中很少出现或根本不出现,导致资源浪费。
  4. 维护困难:随着测试用例数量的增加,维护和更新测试用例变得更加困难。

(2)面对不同的测试任务,应该如何选择测试方法?

  1. 理解测试目标:首先明确测试的目的是什么,比如是功能测试、性能测试还是安全测试。

  2. 评估资源和时间:考虑可用的资源和时间限制,选择能够在预算和时间范围内完成的测试方法。

  3. 考虑风险和重要性:对于关键功能和高风险区域,可能需要更全面的测试方法,如全面组合测试或正交测试。

  4. 识别输入参数:分析软件的输入参数及其相互关系,选择适合参数特性的测试方法,如等价类划分、边界值分析或组合测试。

  5. 利用工具和自动化:使用测试工具和自动化测试可以提高测试效率,特别是在执行大量测试用例时。

  6. 测试方法的组合:在许多情况下,结合使用多种测试方法(如黑盒测试和白盒测试)可以更有效地发现缺陷。

  7. 迭代和适应性:根据测试结果和反馈,迭代测试过程并调整测试方法,以适应不断变化的需求和条件。

 

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值