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

news2024/9/28 19:24:38

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.coloradmin.cn/o/1919612.html

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

相关文章

Geoserver源码解读六 插件

系列文章目录 Geoserver源码解读一 环境搭建 Geoserver源码解读二 主入口 Geoserver源码解读三 GeoServerBasePage Geoserver源码解读四 REST服务 Geoserver源码解读五 Catalog Geoserver源码解读六 插件(怎么在开发模式下使用) 目录 系列文章目…

ubuntu计划任务反弹

目录 实验环境 实验步骤 目标主机构造任务计划 构造语句 语句解释 kali开启监听 监听成功 问题 原因 实验环境 攻击者 操作系统:kali IP:192.168.244.141 目标主机 操作系统:ubuntu IP:192.168.244.151 实验步骤 目…

CSS 中的 ::before 和 ::after 伪元素

目录 一、CSS 伪元素 二、::before ::after 介绍 1、::before 2、::after 3、content 常用属性值 三、::before ::after 应用场景 1、设置统一字符 2、通过背景添加图片 3、添加装饰线 4、右侧展开箭头 5、对话框小三角 6、插入icon图标 一、CSS 伪元素 CSS伪元…

数据库使用SSL加密连接

简介 数据库开通SSL加密连接是确保数据传输过程中安全性的关键措施,它通过加密数据、验证服务器身份、保护敏感信息、维护数据完整性和可靠性,同时满足行业标准和法规要求,进而提升用户体验和信任度,为企业的数据安全和业务连续性…

做工和音质都堪称典范!悠律Ringbuds pro耳机动感低音享受

想要长时间佩戴舒适,又要听歌看电影音质好,还想户外运动时不影响听到环境声音,开放式毋容置疑是最好的选择,像我每天坐地铁上下班的时候都会习惯戴耳机,但以前戴入耳式耳机的时候经常会错过站点,耽误了不少…

TREK高压功率放大器维修trek高压电源609E-6

美国Trek维修产品包括:高压放大器、电源、静电电压表、高压功能发生器、放大器、静电测量仪、荷电板、信号放大器、高压电源、功率放大器、高压功能发生器、高压放大器、接触电压表、非接触式电压表、板载控制器、ESD和传感器、ESD电压表、带电板、电离器、表面电阻…

HashMap----源码解读

源码分析&#xff1a; public class HashMap<K,V> extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable 在类的开头声明了几个常量&#xff0c;以下是较为重要的&#xff1a; /*** 定义初始容量大小为16*/ static final int DEFAULT_I…

【射频器件供应】 Marki Microwave

射频、微波和毫米波组件 裸片、表面贴装、连接器和波导 直流至Sub-THz Marki Microwave通过创建强大的性能突破性射频和微波组件产品组合&#xff0c;解决了业界最棘手的技术问题。Marki Microwave 成立于 1991 年&#xff0c;以开发业内最好的混频器为目标&#xff0c;如今已…

kaggle提交csv文件

使用colab完成实验后 将要提交的csv文件拖到kaggle网站自己加入的competition就行 如果kaggle网站无法注册&#xff0c;往往是人机验证问题&#xff1a; kaggle网站验证

6-5,web3浏览器链接区块链(react+区块链实战)

6-5&#xff0c;web3浏览器链接区块链&#xff08;react区块链实战&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 这里就是浏览器端和智能合约的交…

语言模型演进:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…

【最经典的79个】软件测试面试题(内含答案)提前备战“金九银十”

001.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 0002.问&…

ctfshow-web入门-文件上传(web166、web167)(web168-web170)免杀绕过

目录 1、web166 2、web167 3、web168 4、web169 5、web170 1、web166 查看源码&#xff0c;前端只让传 zip 上传 zip 成功后可以进行下载 随便搞一个压缩包&#xff0c;使用记事本编辑&#xff0c;在其内容里插入一句话木马&#xff1a; 上传该压缩包&#xff0c;上传成功…

LLM独角兽们就要活不下去了!C.AI被资本抛弃,核心员工跑路;Perplexity陷入传统媒体口水战;微软发明的新型收购方式靠谱么?| ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;ShowMeAI官网 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; 1. 亚马逊「招聘式收购」Adept AI&#xff0c;始作俑者微软正在被联邦「反垄断」调查 Adept AI 官网 → https://www.adept.ai Adept AI 成立于2022年4月&#xf…

分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子

前言 EF 开发效率确实很高也很便捷&#xff0c;但当它发生错误时&#xff0c;也挺让人头疼的&#xff0c;为什么&#xff1f;因为 EF 就像是一个黑盒子&#xff0c;一切全被封装起来&#xff0c;出错的时候很难定位原因&#xff0c;如果能够知道并打印 EF 生成的 SQL 语句&…

历年HW已公开漏洞合集!(目前漏洞库更新至84个,Goby持续更新...)

截至2024年7月11日&#xff0c;Goby红队版已扩充以下历年HW已公开漏洞库&#xff0c;本次更新84个&#xff1a; &#xff08;后续将持续更新…) 华天动力OA 华天动力 OA getHtmlContent 文件读取漏洞华天动力OA办公系统 /OAapp/bfapp/buffalo/TemplateService 文件读取漏洞华…

中国各省养老机构数据明细(更新至2024年)

中国养老机构是指为老年人提供集中居住、生活照顾、健康管理、文化娱乐等综合性服务的设施。这些机构包括养老院、福利院、老年公寓等多种形态&#xff0c;既有公立也有民办&#xff0c;遍布城市与农村。 一、数据介绍 数据名称&#xff1a;中国养老机构数据明细 数据范围&am…

【C++】使用C++实现基于Socket的通信

在本文中&#xff0c;我们将详细讨论如何使用C实现基于Socket的通信&#xff0c;并设计一个TLV&#xff08;Type-Length-Value&#xff09;协议用于数据交互。TLV协议因其灵活性和可扩展性&#xff0c;在多种通信协议中被广泛使用&#xff0c;特别是在需要动态定义数据结构的场…

软件架构之嵌入式系统设计

软件架构之嵌入式系统设计 第 12 章&#xff1a;嵌入式系统设计12.1 嵌入式系统概论12.2 嵌入式系统的组成12.2.1 硬件架构12.2.2 软件架构 12.3 嵌入式开发平台与调试环境12.3.1 嵌入式系统软件开发平台12.3.2 嵌入式开发调试 第 12 章&#xff1a;嵌入式系统设计 随着计算机…

# Redis 入门到精通(一)数据类型(3)

Redis 入门到精通&#xff08;一&#xff09;数据类型&#xff08;3&#xff09; 一、redis 数据类型–set 类型介绍与基本操作 1、set 类型 新的存储需求: 存储大量的数据&#xff0c;在查询方面提供更高的效率。需要的存储结构: 能够保存大量的数据&#xff0c;高效的内部…