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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/44317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2008年上半年软件设计师【上午题】真题及答案

文章目录 2008年上半年软件设计师上午题--真题2008年上半年软件设计师上午题--答案 2008年上半年软件设计师上午题–真题 2008年上半年软件设计师上午题–答案

按模版批量生成定制合同

提出问题 一个仪器设备采购公司,商品合同采购需要按模版生成的固定的文件,模板是固定的,只是每次需要替换信息,然后打印出来寄给客户。 传统方法 如果手工来做这个事情,准备好数据之后,需要从Excel表格中…

高效应对网络攻击,威胁检测响应(XDR)平台如何提升企业应急响应能力

在数字化时代,企业面临的网络攻击威胁持续增加,如恶意软件、勒索软件、钓鱼攻击、DDoS攻击等。这些威胁不仅危及企业数据安全、系统稳定,还损害了品牌形象和市场信任。随着云计算、大数据、物联网的广泛应用,企业网络攻击面扩大&a…

MAVLink代码生成-C#

一. 准备Windows下安装环境 Python 3.3 – 官网链接下载Python future模块 –pip3 install future TkInter (GUI 工具). – python for Windows自带,无需下载环境变量PYTHONPATH必须包含mavlink存储库的目录路径。 –set PYTHONPATH你的mavlink源码路径 源码下载在…

【昆工主办|7月昆明】第三届绿色建筑、土木工程与智慧城市国际会议(GBCESC 2024)

随着全球城市化进程的加速,绿色建筑、土木工程与智慧城市等议题逐渐成为了行业内外关注的焦点。在这一背景下,第三届绿色建筑、土木工程与智慧城市国际会议(GBCESC 2024)的召开,无疑将为相关领域的研究者、学者及从业者…

原理和组成

能力要素:(1)人员要素:“正确选人”。(2)过程要素:“正确做事”。(3)技术要素:“高效做事”。(4)资源要素:“保障做事”。…

【ARM】MDK-解决Flexnet服务的error:-13.66

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录MDK网络版部署服务器error :-13.66的问题解决方案,后续有相关发现持续更新。 2、 问题场景 在客户的服务器上部署Flexnet服务,将license文件检查过后,确认MAC地址…

如何才能半个月学习完自动化测试,成功跳槽涨薪?

一直想写类似的文章&#xff0c;但是一直没有时间&#xff0c;正好乘此周末&#xff0c;终于可以写写我的见解了<关于如何学习自动化测试>&#xff0c;其实自动化测试的知识很宽泛&#xff0c;具体细分又可以分为&#xff1a;Web自动化测试&#xff08;PythonSelenium&am…

全新UI自助图文打印系统小程序源码 PHP后端 附教程

最新自助图文打印系统和证件照云打印小程序源码PHP后端&#xff0c;为用户用户自助打印的服务&#xff0c;包括但不限于文档、图片、表格等多种格式的文件。此外&#xff0c;它们还提供了诸如美颜、换装、文档打印等功能&#xff0c;以及后台管理系统&#xff0c;方便管理员对打…

【密码学】公钥密码的基本概念

在先前我写的密码学体制文章中谈到&#xff0c;现代密码学分为两大体制&#xff0c;介绍了一些有关对称密码体制诸如流密码和分组密码的内容。本文的主要内容则切换到公钥密码体制&#xff08;又称非对称密码体制&#xff09;&#xff0c;简述了公钥密码体制的基本思想和应用方…

六个Python实用技巧,大幅提升你的编程效率!

关注星标&#xff0c;每天学习Python新技能 Python作为当下最流行的编程语言之一&#xff0c;以其简洁易懂的语法和强大的第三方库支持&#xff0c;深受开发者的喜爱。在实际开发中&#xff0c;掌握一些实用的Python小技巧&#xff0c;可以大大提升编程效率和代码质量。 本文…

院内导航:如何用科技破解就医找路难题

自2019年开始“院内导航”被纳入医院智慧服务评估体系以来&#xff0c;到2023年改善就医服务升级的部署&#xff0c;每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求&#xff0c;如何让患者在茫茫人海中迅速找到就…

CSDN回顾与前行:我的创作之旅——2048天的技术成长与感悟

CSDN回顾与前行&#xff1a;我的创作之旅——2048天的技术成长与感悟 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 前言 时光荏苒&#xff0c;岁月如梭。转眼间&#xff0c;从我在CSDN上写下第一篇技术博客《2-6 带头结点的链式表操作集…

Springcloud双重预防管理体系平台危险作业票子系统-计算机毕业设计源码48672

摘 要 随着企业生产规模的扩大和生产技术的提高&#xff0c;双重预防管理体系逐渐成为企业安全生产的重要手段。在双重预防管理体系中&#xff0c;危险作业票管理是其中的关键环节之一&#xff0c;对于预防生产事故和保障生产安全具有重要作用。 为了更好地管理危险作业票&…

移动应用:商城购物类,是最常见的,想出彩或许就差灵犀一指

在移动应用中&#xff0c;商城购物类的非常常见&#xff0c;模式也非常成熟&#xff0c;想要设计的出彩也是有难度的&#xff0c;这次分享一些不同的。

C语言之Const关键字与指针

目录 1 前言2 变量与指针的储存方式3 const int *var;int *const var&#xff1b;const int *const var&#xff1b;理解与区分4 总结 1 前言 实际开发过程中经常遇到const关键字作用于指针的情况&#xff0c;例如&#xff1a;const int *var;int *const var&#xff1b;const…

Linux开发板(正点原子阿尔法_IMX6U)QT5.12.9交叉编译到ARM开发板(已解决)

问题记录&#xff1a;Qt下ctrlR直接构建项目&#xff0c;然后在build-01_led-Desktop_Qt_5_12_9_GCC_64bit-Debugz中将构建的执行文件&#xff0c;scp到ARM开发板下&#xff0c;发现通过指令./01_led后出现以下报错。 问题原因&#xff1a;因为Qt构建默认使用的是64bit的gcc&am…

群辉NAS同步Android手机日历日程

目录 一、安装套件 二、手机导出日历日程 三、NAS套件导入日历 四、获得DAVx5登陆链接 五、手机配置 六、验证 上一篇文章我们解决了Android手机与群辉NAS的通讯录的同步,这期我们说说如何同步Android手机的日历中的日程到群辉NAS。 看过上篇文章的伙伴知道,Android需要…

深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件

本文将了解到Rokid AR开发组件 一、RKCameraRig组件1.脚本属性说明2.如何使用 二、PointableUI组件1.脚本属性说明2.如何使用 三、PointableUICurve组件1.脚本属性说明2.如何使用 四、RKInput组件1.脚本属性说明2.如何使用 五、RKHand组件1.脚本属性说明2.如何使用3.如何禁用手…

东旭蓝天被控股股东占用78亿:近七年业绩奇差,或面临退市

《港湾商业观察》施子夫 张楠 在7月5日一口气发了超过30份公告后&#xff0c;终于让投资者对于东旭蓝天2023年和今年一季度经营业绩有了更清晰的观察。 与此同时&#xff0c;东旭蓝天&#xff08;下称&#xff09;也收到了深交所的关注函。种种不利因素之下&#xff0c;上市…