【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习
【测试开发】用例篇(2)
文章目录
- 【测试开发】用例篇(2)
- 1. 正交表法
- 1.1 什么是正交表
- 1.2 两个重要概念
- 1.3 如何通过正交表设计测试用例
- 1.3.1 充分理解需求
- 1.3.2 确定因素、确定水平
- 1.3.3 allpairs画正交表
- 1.3.4 补充正交表
- 1.3.5 将正交表转换成测试用例
- 2. 场景设计法
- 2.1 场景
- 2.2 如何通过这个方法设计测试用例
- 2.2.1 充分理解需求
- 2.2.2 确定主事件流
- 2.2.2 确定次事件流
- 2.2.3 一个事件流就是一个测试用例
- 3. 错误猜测法
- 4. 常见案例练习
- 4.1 用FIddler代理来模拟弱网
- 4.2 接口测试
- 4.3 对冒泡排序进行测试
- 4.4 Linux的zip命令
- 4.4.1 功能测试
- 4.4.2 界面测试
- 4.4.3 性能
- 4.4.4 安全
- 4.4.5 可视化压缩工具测试用例设计
- 4.5 水杯测试用例设计(水杯是一个实体)
- 4.6 微信发送朋友圈设计测试用例(软件的一个模块)
【测试开发】用例篇(2)
1. 正交表法
1.1 什么是正交表
最简单的正交表是L4(23),含意如下:
- “L”代表正交表
- L角的指数“4”表示有 4 横行,简称行,即要做四次试验
- 括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个
- 括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2(每一个变量的取值只有两种)
正交表的特点是其安排的试验方法具有均衡搭配特性。
1.2 两个重要概念
因素:输入的变量
水平:每一个输入变量(因素)的取值
以下是一个正交表:
试验号/列号 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | 3 |
4 | 2 | 1 | 2 | 3 |
5 | 2 | 2 | 3 | 1 |
6 | 2 | 3 | 1 | 2 |
7 | 3 | 1 | 3 | 2 |
8 | 3 | 2 | 1 | 3 |
9 | 3 | 3 | 2 | 1 |
正交表的两条性质:
- 每一列中各数字出现的次数都一样多
- 如何两列中各有序数对出现的次数一样多
以此正交表为例:
对于第一条:
- 1出现的频次是12
- 2出现的频次是12
- 3出现的频次是12
第一条每一列:
- 1出现3次
- 2出现3次
- 3出现3次
对于第二条:
- 可用第一条推出
1.3 如何通过正交表设计测试用例
- 充分理解需求
- 确定因素、确定水平
- 画正交表
- 补充正交表
- 将正交表转换成测试用例
1.3.1 充分理解需求
针对一个注册案例进行设计测试用例:姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
1.3.2 确定因素、确定水平
因素:
- 姓名
- 邮箱
- 密码
- 确认密码
- 验证码
水平:
- 填写
- 不填写
1.3.3 allpairs画正交表
- 将因素和水平放在Excel表格中
-
在allpairs的安装路径下创建一个文本文件:
- 请自行下载安装allpairs
- 请自行下载安装allpairs
-
复制粘贴刚才的表格
- 通过命令行生成正交表
- 查看生成的正交表
- 在Excel表中查看(复制粘贴)
- pairings等等东西目前不需要注意
- ~填写的意思是,可以是填写也可以是不填写,但是要保证正交表的那个特性!
例如:
1.3.4 补充正交表
比如补充一条测试用例,全部都不填写的情况
补充正交表,不需要保证仍是正交表,补充的例子是我们人为写的,特别关注的测试用例~
1.3.5 将正交表转换成测试用例
当然,在这里,我们的两个水平是两个分类,所以这更像是在划分测试点,因为它没全包含测试用例的几个要素:
- 所以要进行补充测试要素
正交表在测试用例设计中有重要的意义
- 它是一种有效的测试用例设计技术,可以帮助测试人员在有限的资源和时间下,优化测试覆盖率,发现更多的缺陷。
正交表的科学依据源于统计学的设计理论
- 它可以通过有效的组合和排列,提供一组最小的测试用例
- 同时覆盖了系统中可能存在的多个独立因素或因素组合
通过使用正交表,测试人员可以在较少的测试用例数量下,覆盖更多的场景,减少测试的工作量和时间成本
2. 场景设计法
2.1 场景
针对用户使用软件的一系列操作,形成的一个场景
- 例如点外卖:想吃什么类型的 => 想吃哪个商家 => 想吃哪道菜 => 选择菜品指标 => 填写地址和联系方式 => 备注+支付 => 提交订单 => 商家接单 => 商家出单 => 骑手接单 => 骑手送货 => 用户收到外卖 => 用户评论
而按照这条路线,如果每个环节都没出现啥问题,是可以进行完毕的,这就是“主事件流”
- 其中几个环节是可能出现问题的
- 如没有这个类型的餐厅、商家未营业、此菜售空/下架、地点不配送、钱不够…
- 而这种只进行主事件流部分就“宣告失败”的,称为“次事件流”
2.2 如何通过这个方法设计测试用例
- 充分理解需求
- 确定主事件流
- 确定次事件流
- 每一个事件流就是一个测试用例
2.2.1 充分理解需求
以ATM取款场景为例
2.2.2 确定主事件流
-
插卡
↓
-
输入密码
↓
-
选择业务
↓
-
选择金额
↓
-
出钞
↓
-
取卡
2.2.2 确定次事件流
各个环节可能出现的问题:
主事件流:
次事件流:
2.2.3 一个事件流就是一个测试用例
对于每个事件流,补充测试要素即可~
3. 错误猜测法
依据测试人员经验(根据遇到过的错误,进行合理猜测)
所以没啥可讲的,重点在多看多练多实践…
常见的有:
- 注册:
- 校验特殊字符(例如空格)的处理
- 密码校验的大小写
- 姓名中的特殊字符
- 密码发送是否明文
- …
4. 常见案例练习
4.1 用FIddler代理来模拟弱网
打开速度影响,根据用户相关规则,影响网络条件:
查看用户相关规则:
出现一个脚本:
ctrl + f 查找:
找到这个设置相关代码:
- 传输1KB花费时间300ms
- 下载1KB花费时间150ms
- 这个数值设置得越大,网络越差越弱
4.2 接口测试
这里的接口就是前后端交互的接口,不是我们的接口类,但是本质上就是一个名词,差不多就那个意思,接口其实就是一些方法的集合罢了,而在此处,接口就是前后端交互的通道,而接口测试,其实就是模拟前端发送请求走这个通道给后端~
所以,就需要我们的一个软件=> Postman,其使用不再赘述
- 参考此博文的2.5:【JavaEE】HTTP状态码-HTTP数据报的构造_s:103的博客-CSDN博客
可以结合fiddler/浏览器进行抓包,找到接口,复制url,通过Postman构造请求进行发送
- 请求的内容也可以仿造已有的包,结合实际测试内容去构造
- fiddler在进行其他测试的时候,注意关闭弱网
个人比较习惯用fiddler的Raw,用记事本去看,这样可以一眼看全部,当然如果对http请求和响应还不是很熟练,可以看看浏览器和fiddler其他的一些按钮,可以可视化的看到一些信息,自行研究!
对于复制请求,在postman上粘贴,我建议使用浏览器:
- 需要刷新,然后在这里看到接口
在postman进行import:
粘贴:
点击send,就相当于向该接口发起了一次请求
针对参数进行测试(传递所有参数、传递部分参数、不传递参数、传递其他的参数、改变参数的值…)
- 你可以试一下对自己的网站的注册功能进行测试,比如空用户名/空昵称进行注册,看看是否注册成功~
针对性能进行测试
- 后面讲解性能测试的时候再细说
4.3 对冒泡排序进行测试
这里是一类问题,就是对代码的测试,涉及白盒测试,于进阶篇讲解!
4.4 Linux的zip命令
4.4.1 功能测试
- 压缩的是一个目录,或者是一个文件
对test目录进行压缩:
zip使用手册:
对111.txt文件进行压缩:
对nohup.out进行压缩
- 对于nohup.out文件的介绍:nohup.out是什么文件?nohup.out如何写?_一棵小白菜#的博客-CSDN博客
4.4.2 界面测试
- 其实这就是界面,只不过是在命令行显示~
压缩信息要提示正确!
4.4.3 性能
对于5G网络条件下和压缩1KB大小的目录/文件,性能怎么样!
4.4.4 安全
压缩完文件,下一次解压文件不能损坏!
4.4.5 可视化压缩工具测试用例设计
跟上面的测试点一致,只不过现在是用户能看到的可视化页面了~
- 针对这些测试点,结合我们的测试用例设计方法,去设计测试用例即可~
4.5 水杯测试用例设计(水杯是一个实体)
这是一道测试实体题
水杯是真水杯,不是啥专业名词
列出万能公式:
一些测试点可能适合在不同的划分里,不要太刻意去区分,这里不需要太严格!
- 写测试点,是没有标准答案的!合理发挥即可,不要太大压力!
- 可能我没想到的你想到了,由你进一步发挥!
补充测试点:
4.6 微信发送朋友圈设计测试用例(软件的一个模块)
这是一道测试软件模块题
列出万能公式:
- 如果这个划分不够全面,再进行补充~
对于xss漏洞,就是web中嵌入了恶意脚本代码,导致脚本语言被执行,文本不显示等等的问题…
- 不是重点,不做赘述,参照博文:什么是XSS漏洞—漏洞原理学习_xss漏洞原理_Ping_Pig的博客-CSDN博客
文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆!我们应该根据具体情况打出组合拳,才能设计出好的测试用例!
相关文章:
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习
【测试开发】用例篇(2) 文章目录 【测试开发】用例篇(2)1. 正交表法1.1 什么是正交表1.2 两个重要概念1.3 如何通过正交表设计测试用例1.3.1 充分理解需求1.3.2 确定因素、确定水平1.3.3 allpairs画正交表1.3.4 补充正交表1.3.5 将…...
【ES】笔记-数值扩展
数值扩展 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>数值扩展</title> </head> &l…...
浅谈Rust内存管理
Rust因在内存管理上的独到之处,近年来受到了不少开发者的青睐。Rust内存管理的核心功能就是所有权。不同的语言采取了不同的内存管理方式,主要分为开发者手动管理或者编译器辅助管理,以及垃圾回收机制等。Rust的所有权机制,有别于…...
Vue路由跳转至页面后多次渲染
在 Vue 中,当你跳转到一个新的路由或者重新加载当前路由时,由于 Vue Router 或其他路由管理工具的机制,会导致该页面组件重新渲染多次的情况发生。这可能是因为以下原因: 组件复用:Vue Router 默认情况下会尝试复用已经…...
CDH大数据平台集群部署
文章目录 1. 资源准备2. 部署 Mariadb 数据库3. 安装CM服务4. 安装数据节点5. 登录CM系统 1. 资源准备 准备好CDH安装包资源,官方网站下载需要账号,如果没有账号可以去网上到处搜搜。主要涉及到的资源有: cloudera-manager-servercloudera-m…...
基于springboot+vue的校园资产管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
@RequestMapping 注解使用技巧
一、RequestMapping 基础用法 用于将任意HTTP 请求映射到控制器方法上。 RequestMapping表示共享映射,如果没有指定请求方式,将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。GetMapping、PostMapping、PutMapp…...
AtCoder 265G 线段树
题意 传送门 AtCoder 265G 012 Inversion 题解 直接维护逆序对数量比较困难,考虑到元素值域很小,直接将不同数值对解耦进行维护。具体而言,线段树维护区间 0 , 1 , 2 0,1,2 0,1,2 的数量,以及满足 i < j i<j i<j 时…...
通俗易懂了解大语言模型LLM发展历程
1.大语言模型研究路程 NLP的发展阶段大致可以分为以下几个阶段: 词向量词嵌入embedding句向量和全文向量理解上下文超大模型与模型统一 1.1词向量 将自然语言的词使用向量表示,一般构造词语字典,然后使用one-hot表示。 例如2个单词&…...
Vim - 快速插入C语言函数注释模板
背景 C语言使用vim编写时,需要快速对函数进行说明头插入; 代码 function! InsertCFunctionHeader()" 获取当前行内容let line getline(.)" 匹配 C 函数定义let matched matchlist(line, ^\s*\w\ \\(\w\\)(\(.*\)))" 如果当前行不是函…...
Leetcode171. Excel 表列序号
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 题解:力扣(LeetCode)官网 - 全球极客挚爱…...
自主设计,模拟实现 RabbitMQ - 实现 拒绝/否定 应答机制
目录 一、拒绝/否定 应答机制 1.1、需求分析 什么是 拒绝/否定 应答呢?...
在github上设置不同分支,方便回滚
在github上设置不同分支,方便回滚 步骤可能出现的问题couldnt find remote ref gpuVersion1. 确保您处于正确的分支2. 添加并提交更改(如果还未进行)3. 推送本地分支到远程仓库4. 验证操作 步骤 之前在github上上传了一个项目代码,…...
【Elsevier旗下】JCR2/3区,最快25天录用!计算机与娱乐、教育、游戏、新媒体均可
期刊简介: 出版社:Elsevier 影响因子(2022):2.5-3.0 期刊分区:JCR2/3区,中科院4区 检索数据库:SCIE 在检 数据库检索年份:2016年 预警情况:无中科院预警…...
TSINGSEE视频AI智能分析技术:水泥厂安全生产智能监管解决方案
一、方案背景 随着人工智能技术的快速发展以及视频监控系统在全国范围内的迅速推进,基于AI视频智能分析技术的智能视频监控与智慧监管系统,也已经成为当前行业的发展趋势。在工业制造与工业生产领域,工厂对设备的巡检管理、维护维修、资产管…...
Whisper + NemoASR + ChatGPT 实现语言转文字、说话人识别、内容总结等功能
引言 2023年,IT领域的焦点无疑是ChatGPT,然而,同属OpenAI的开源产品Whisper似乎鲜少引起足够的注意。 Whisper是一款自动语音识别系统,可以识别来自99种不同语言的语音并将其转录为文字。 如果说ChatGPT为计算机赋予了大脑&…...
795. 区间子数组个数
795. 区间子数组个数 给你一个整数数组 nums 和两个整数:left 及 right 。找出 nums 中连续、非空且其中最大元素在范围 [left, right] 内的子数组,并返回满足条件的子数组的个数。 生成的测试用例保证结果符合 32-bit 整数范围。 示例 1:…...
Request method ‘GET‘ not supported,不支持GET形式访问
org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘GET’ not supported 原因:异常提示的很明确,请求不支持GET方式访问,出现这种问题一般都是由于限制请求接口为POST,然后使用GET形式访问造成的…...
数据结构与算法(C语言版)P2---线性表之顺序表
前景回顾 #mermaid-svg-sXTObkmwPR34tOT4 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sXTObkmwPR34tOT4 .error-icon{fill:#552222;}#mermaid-svg-sXTObkmwPR34tOT4 .error-text{fill:#552222;stroke:#552222;}#…...
AI写文章软件-怎么选择不同的AI写文章软件
在如今信息爆炸的时代,无论是学生、职场人士,还是创作者和企业家,写文章都是一项常见而又重要的任务。然而,随着科技的不断进步,AI写文章的软件也逐渐走进了人们的视野。 147GPT批量文章生成工具www.147seo.com/post…...
VSCode远程连接服务器报错:Could not establish connection to
参考:https://blog.csdn.net/weixin_42538848/article/details/118113262 https://www.jb51.net/article/219138.htm 刚开始把ssh文件夹中的known_hosts给删除了,发现没啥用。 之后在扩展Remote-SSH里面,把config file路径设置为ssh文件夹里…...
openssl 用法整理 —— 筑梦之路
用法一 生成自签名数字证书 # 生成私钥 openssl genpkey -algorithm RSA -out private.key# 生成证书请求 openssl req -new -key private.key -out certificate.csr# 使用私钥签署证书 openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certifica…...
Mac安装SPSS 26(含安装包)
Mac安装SPSS 26(含安装包) 安装包地址(百度网盘):https://pan.baidu.com/s/127ZJNRIMZaeR2hDilQT0Zg提取码: m5xj 查看是否允许安装任何来源的app 如果没有任何来源这个选项 打开终端输入:sudo spctl --master-disable回车之后输入password(注:电脑的…...
uniapp存值和取值方法
在UniApp中,可以使用全局变量、本地缓存和Vuex状态管理等方式来进行存值和取值。 全局变量:可以在App.vue文件的data中定义一个全局变量,在其他页面或组件中通过uni.$emit方法修改其值,并通过uni.$on方法监听值的变化。 // App.…...
Apache Beam 2.50.0发布,该版本包括改进功能和新功能
导读我们很高兴向您介绍 Beam 的新版本 2.50.0。该版本包括改进功能和新功能。请查看此版本的下载页面。 亮点 Spark 3.2.2 被用作 Spark 运行程序的默认版本(#23804)。Go SDK 新增默认本地运行程序,名为 Prism(#24789࿰…...
华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图
文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…...
栈的简单应用(利用Stack进行四则混合运算)(JAVA)
目录 中缀表达式转后缀表达式 图解 代码实现过程: 完整代码: 利用后缀表达式求值: 完整代码: 首先我们得先了解逆波兰表达式。 中缀表达式转后缀表达式 所谓的中缀表达式其实就是我们平时写的例如:࿱…...
Python---异常
捕获全部异常 语法: try: 可能发生的错误代码 except: 如果出现异常执行的代码 例子: try:open("test2.txt", "r", encoding"UTF-8") except:print("出现异常,文件不存在,换个模式打…...
视频编解码器H.264和H265有什么区别?
对于大型视频文件来说,视频编解码器至关重要,它可以将文件压缩为较小的尺寸,从而可以更轻松地存储和加快传输速度。而两种最常用的编解码器是H.264和H.265,那么它们两者之间有什么区别,哪一个更好呢? 1. 什…...
网络安全进阶学习第十六课——业务逻辑漏洞介绍
文章目录 一、什么是业务逻辑二、业务逻辑漏洞的成因三、逻辑漏洞的重要性四、业务逻辑漏洞分类五、业务逻辑漏洞——业务授权安全1、未授权访问2、越权访问1) 平行越权(水平越权是指相同权限的不同用户可以互相访问)2) 垂直越权(垂直越权是指…...
深圳大眼睛网站建设/b2b电子商务网站
SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理 - 一、大致介绍 1、API 服务网关顾名思义就是统一入口,类似 nginx、F5 等功能一样,统一代理控制请求入口,弱化各个微服务被客户端记忆功能࿱…...
单页面网站好优化吗/网站做seo教程
---- 什么是CAS机制 CAS机制主要是发生于Java中原子操作类(JUC)的底层实现中,其中在CAS机制中包含3个基本参数:内存地址V、旧预期值A、要修改的新值B。 当要更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实…...
做变态的视频网站/官方网站百度一下
1 前言设计师交付给前端开发一张宽度为750px的视觉稿,设计稿上元素的尺寸、颜色、位置等已做过标注,要求工程师工在适配不同屏幕尺寸的设备时采用等比缩放的方案。前面我们讲过可以使用viewport缩放方案实现页面级的缩放适配。但该方案有个问题ÿ…...
江西南昌网站定制/网页设计用什么软件做
备忘录,整理逻辑关系 步骤 1. 打开configuration 2. 配置 configuration 这个root path是远程绝对路径 3. 配置mapping 4. 配置系统的编辑器 这个路径 使用 which python 找。 6. 查看远程目录 7. 下载远程目录代码 8. 打开代码自动同步 9. 填写configuration…...
网站建设公司做前端/百度开户流程
kotlin萌新入门 文章目录kotlin萌新入门[toc]1. 基础教程2.编码规范1. 基础教程 变量 只读变量 val a :Int 1普通变量 var a:Int 123可自动推测类型可以接受一个表达式 val name if(you"tomcat"){"yes"}else{"no"} 函数返回值 普通返回fun() …...
驾校官方网站 模板/在线建站平台
上篇:第2章 Flink快速上手 1、standalone模式 (1)上传发flink安装包到Linux环境中 (2)解压文件 flink-1.7.0-bin-hadoop27-scala_2.11.tgz [roothadoop105 hadoop]# tar -zxvf flink-1.7.0-bin-hadoop27-scala_2.11…...