实验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.mfbz.cn/a/789727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue 项目中 history 路由模式的使用

在最近帮客户开发的一个项目中,由于项目的特殊性,需要用到 Vue 中的 history路由模式。该模式使用时会涉及到“上传白屏”和“刷新 404 问题”。在帮助客户解决这两个问题的过程中,总结问题的解决方案并记录下来,希望能够保留这篇…

开始尝试从0写一个项目--前端(二)

修改请求路径的位置 将后续以及之前的所有请求全都放在同一个文件夹里面 定义axios全局拦截器 为了后端每次请求都需要向后端传递jwt令牌检验 ps:愁死了,翻阅各种资料,可算是搞定了,哭死~~ src\utils\request.js import axio…

数据结构--二叉树相关性质

1.性质 1.满二叉树每层节点个数:等比数列 3.(重要)任意二叉树:度为0(叶子节点)的比度为2的永远多一个。。度:就是看有多少孩子 如下图解析:(用推到归纳来分析&#xff…

Code2prompt:探索高效代码编辑新纪元的开源模型工具

项目介绍 Code2prompt 是一个命令行工具,能将你的代码库转化为单一的大型语言模型(LLM)提示,结合源码树结构,模板定制,以及令牌计数。它旨在简化与高级上下文窗口模型如GPT或Claude的交互,助你…

华为浏览器,Chrome的平替,插件无缝连接

文章目录 背景插件书签 背景 不知道各位小伙伴有没有这样的痛点,办公电脑、家里的电脑还有手机、平板等,收藏了一个网址或者在手机上浏览了某个网页,保存起来,可是一换平台或者换个电脑,在想要浏览之前收藏的东西&…

【linux】 sudo apt update报错——‘由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32’

【linux】 sudo apt update报错——‘由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32’ 在运行sudo apt update时遇到报错,由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 解决方法&#x…

299k stars利用Public APIs提升开发效率:探索APILayer提供的开源资源

299k stars利用Public APIs提升开发效率:探索APILayer提供的开源资源 在现代软件开发中,API(应用程序接口)是实现应用间通信和功能扩展的关键工具。公共API(Public APIs)则为开发者提供了宝贵的资源&#…

passwd文件被删导致无法进入系统问题处理

系统:centos7 问题背景:根据描述,之前有人搞破坏,导致无法进入系统。启动界面显示各种服务无法启动。 进单用户模式 重启启动,在内核选择界面按e,在linux16 行,将ro 修改为rw,在行末添加 init/bin/bash ,按…

【C语言】【排序算法】----- 归并排序

由于最近要考试,好久没有发博客了,非常抱歉大家对我的支持。之后我会不断更新博客,继续创作出高质量的文章,希望能帮到大家! 文章目录 一、归并排序基本思想二、递归实现三、非递归实现四、效率分析 一、归并排序基本…

【工具】咸鱼小助手,一款咸鱼之王辅助工具

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ Github:咸鱼之王的自动化脚本,自动答题、爬塔、领资源等 下载:(密码:9u22) 咸鱼小助手 文档:腾讯文档 视…

Windows 下安装 Memcached

Memcached 安装包下载 官网上并未提供 Memcached 的 Windows 平台安装包。 我们可以使用以下链接来下载,你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可: 32位系统 1.2.5版本:http://static.jyshare.com/download/memcache…

1996-2023年各省农村居民人均消费支出数据(无缺失)

1996-2023年各省农村居民人均消费支出数据(无缺失) 1、时间:1996-2023年 2、来源:国家统计局、统计年鉴 3、指标:农村居民人均消费支出 4、范围:31省 5、缺失情况:无缺失 6、指标解释&…

使用昇腾芯片进行多卡训推时使用hccl_tools.py为npu分配ip报错问题解决办法

目录 问题描述问题产生原因解决办法最终执行并验证参考网站命令扩展 问题描述 昇腾芯片(910b/310p等)进行多卡训练或者推理时需要先获取并配置每张npu的ip信息,因此需要执行类似下面问题: python mindformers/tools/hccl_tools.…

快手kolors模型测评和安装完整教程(支持中文提示词、文字绘制 )

在人工智能领域,文本到图像合成技术一直是研究的热点。Kolors项目以其卓越的性能和创新的技术,正在重新定义这一领域的可能性。本文将深入探讨Kolors项目的核心优势、技术细节以及如何快速开始使用这一强大的模型。 随着深度学习技术的飞速发展&#xf…

【1.4】动态规划-解目标和

一、题目 给你一个整数数组nums和一个整数target 。 向数组中的每个整数前添加或 - ,然后串联起所有整数,可以构造一个表达式: 例 如 , nums[2,1] , 可 以 在 2 之 前 添 加 , 在 1 之 前 添 加 - &…

常见WAF拦截页面总结

(1) D盾 (2) 云锁 (3) UPUPW安全防护 (4) 宝塔网站防火墙 (5) 网防G01 (6) 护卫神 (7) 网站安全狗 (8) 智创防火墙 (9) 360主机卫士或360webscan (10) 西数WTS-WAF (11) Naxsi WAF (12) 腾讯云 (13) 腾讯宙斯盾 (14) 百度云 图片 (15) 华为云 (16) 网宿云 (17) 创宇盾 图片 (…

(自用)gtest单元测试

gtest是Google的一套用于编写C测试的框架,可以运行在很多平台上(包括Linux、Mac OS X、Windows、Cygwin等等)。基于xUnit架构。支持很多好用的特性,包括自动识别测试、丰富的断言、断言自定义、死亡测试、非终止的失败、生成XML报…

《Programming from the Ground Up》阅读笔记:p19-p48

《Programming from the Ground Up》学习第2天,p19-p48总结,总计30页。 一、技术总结 1.object file p20, An object file is code that is in the machine’s language, but has not been completely put together。 之前在很多地方都看到object fi…

RAG的学习与实践——LangChain和LlamaIndex学习笔记

RAG RAG(Retrieval Augmented Generation)系统,代表“检索增强生成”。RAG由五个关键步骤组成: 加载:这是指将数据从其所在位置(无论是文本文件、PDF、其他网站、数据库还是 API)获取到您的管道中。LlamaHub提供数百…

【南京蓝领新材料】水力颗粒分离器工作原理

水力颗粒分离器工作原理 在装置内部设有一个具有一定空间的滤网,雨水从进水管流入,先进入滤网过滤,雨水中的悬浮物和漂浮物将被拦截在此滤网内。 在装置底部有三个腔室,当雨水中小的颗粒物流到每个腔室挡墙前时,颗粒物…