测试用例的设计方法(黑盒)
1.基于需求的设计方法
比如针对网易邮箱进行测试:分为功能相关和非功能相关两大类

但是这么设计的话,有无数多个测试用例,我们现在看到的只是一些大概的测试用例,要想设计具体的测试用例,需要用到下面测试用例的方法
2.等价类
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。说白了就是将需求分类,每个类取一个例子测试
比如买一杯奶茶,在我很撑很撑的情况下,我还特别想知道它好不好喝(想知道好不好喝是我输入的需求),因此我只需要喝一口就知道它好不好喝,不用全部喝完,这样我即知道了好不好喝,又解决了肚子很撑喝不下整杯的问题。
等价类分为
有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
无效等价类:根据需求说明书,不满足需求的集合。


等价类设计测试用例步骤
1.充分理解需求
2.划分有效等价类和无效等价类
3.从有效等价类抽取其中一个数据进行测试用例,从无效等价类抽取其中一个数据进行测试用例

3.边界值
3.1边界点
上点:边界上的点
内点:边界内的点
离点:边界值附近的一个点(闭区间的离点是区间外距离上点最近的点,开区间的离点是区间内距离上点最近的点)

3.2边界值设计测试用例的方法
1.充分理解需求
2.找边界点
3.针对边界点设计测试用例

工作中通常将等价类和边界值一起配合使用,这样测试用例就更多了,产品更有保证了
4.判定表
判定表的关系:
与:所有条件必须满足,如果一个不满足,结果就是假
或:满足所有条件中的一个就是真,如果条件全部为假,就为假
恒等:条件为真,结果一定是真(我是男人>>我是人)
非:条件为假,结果才为真(不好好学习>>肯定找不到好工作)
判定表设计测试用例:
1.分析所有可能的输入和输出
2.找出输入和输出之间的对应关系
3.设计判定表
4.把判定表对应到每一个测试用例
看下面例子
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”



5.正交排列
5.1正交表
5.1.1什么是正交表?
以下概念来自百度百科

因素:输入的变量
水平:每一个输入变量的取值
5.1.2正交表性质
性质1:每一列中各数字出现的次数都一样多
性质2:任何两列中的各有序数对出现的次数都一样多
下图为一个正交表,可以对照看性质
解释一下性质2:拿前两列为例子:1,1出现了一次,1,2出现了一次…都出现了一次,因此都一样多

5.1.3如何通过正交表设计测试用例
1.充分理解需求
2.确定因素和水平
3.画正交表并填写
4.将正交表转成测试用例
以注册的需求为例:
姓名,邮箱,密码,确认密码,验证码必须全部输入,才能进行注册
1.需求:必须全部输入
2.因素:姓名,邮箱,密码,确认密码,验证码
水平:填写/不填写
3.
4.
上图是测试点
具体真正测试的时候还需要测试每个测试点的环境,操作步骤,测试数据,预期结果

6.场景设计法
6.1场景
假设找女朋友,分为
搭讪>要联系方式>聊天>请女神吃饭>表白>确定男女朋友关系
但是每个过程还有可能出现很多意外

我们管搭讪>要联系方式>聊天>请女神吃饭>表白>确定男女朋友关系这一套叫主事件流,中间可能出现的问题叫次事件流
6.2如何通过这个方法设计测试用例
1.充分理解需求
2.确定主事件流
3.确定次时间流
4.每一个时间流就是一个测试用例
再举个ATM取款的例子


7.错误猜测法
通常是根据测试人员的经验去设计的,怎么提升经验呢?那就是多写测试用例,多看测试用例
以注册为例
1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文
8.额外设置
1.弱网
在fiddler设置


2.接口测试
可以用代码或者工具测试,这里用postman测试

可以根据http请求测试,还可以根据参数进行测试(传递所有参数,或者传递部分参数,不传参数或者传递其他参数等)

3.zip命令测试(可视化压缩工具测试用例设计)
功能:压缩的是一个文件夹/文件/图片
界面:压缩信息提示正确
性能:压缩5G和1kb的时间
安全:压缩完文件,解压之后文件不能损坏
4.水杯测试用例设计(实体)

5.微信发送朋友圈设计测试用例(软件的一个模块)

相关文章:
测试用例的设计方法(黑盒)
1.基于需求的设计方法 比如针对网易邮箱进行测试:分为功能相关和非功能相关两大类 但是这么设计的话,有无数多个测试用例,我们现在看到的只是一些大概的测试用例,要想设计具体的测试用例,需要用到下面测试用例的方法…...
Shell编程入门--概念、特性、bash配置文件
目录 一、Shell概念1.定义2.分类和使用场景2.1.分类和切换2.2.使用场景 3.特性3.1.文件描述符与输出重定向3.2.历史命令---history3.3.别名 --alias3.4.命令排序执行3.5.部分快捷键3.6.通配符置换 4.脚本规范5.脚本运行方式5.1.bash脚本执行5.2.bash脚本测试 二、bash配置文件1…...
读书笔记:彼得·德鲁克《认识管理》第14章 工作、做工与员工
一、章节内容概述 虽然工作的历史与人类一样久远,但对工作展开系统研究不过是近百年之内的事,并且“做工”,也就是人从事工作,迄今为止仍很少受到 系统关注。然而我们知道,工作和做工不同,工作是客观的“事…...
diffusers库中stable Diffusion模块的解析
diffusers库中stable Diffusion模块的解析 diffusers中,stable Diffusion v1.5主要由以下几个部分组成 Out[3]: dict_keys([vae, text_encoder, tokenizer, unet, scheduler, safety_checker, feature_extractor])下面给出具体的结构说明。 “text_encoder block…...
智慧城市照明为城市节能降耗提供支持继电器开关钡铼S270
智慧城市照明:为城市节能降耗提供支持——以钡铼技术S270继电器开关为例 随着城市化进程的加速,城市照明系统的需求也日益增长。与此同时,能源消耗和环境污染问题日益严重,使得城市照明的节能减排成为重要议题。智慧城市照明系统…...
固高GTS800控制卡开发数控系统宏程序心得
在对固高GTS800控制卡做数控系统开发时,经过多年的总结与积累,总算是实现了一个数控系统的基本功能。 基本实现宏程序的译码与执行同时执行,虽然不是实时执行,但在充分利用插补缓存区的基础上,实现了相对的实时性。 …...
linux入门---线程池的模拟实现
目录标题 什么是线程池线程的封装准备工作构造函数和析构函数start函数join函数threadname函数完整代码 线程池的实现准备工作构造函数和析构函数push函数pop函数run函数完整的代码 测试代码 什么是线程池 在实现线程池之前我们先了解一下什么是线程池,所谓的池大家…...
jQuery HTML/CSS 参考文档
jQuery HTML/CSS 参考文档 文章目录 应用样式 示例属性方法示例 jQuery HTML/CSS 参考文档 应用样式 addClass( classes ) 方法可用于将定义好的样式表应用于所有匹配的元素上。可以通过空格分隔指定多个类。 示例 以下是一个简单示例,设置了para标签 <p&g…...
QT 布局管理综合实例
通过一个实例基本布局管理,演示QHBoxLayout类、QVBoxLayout类及QGridLayout类效果 本实例共用到四个布局管理器,分别是 LeftLayout、RightLayout、BottomLayout和MainLayout。 在源文件“dialog.cpp”具体代码如下: 运行效果: Se…...
使用 pubsub-js 进行消息发布订阅
npm 包地址 github 包地址 pubsub-js 是一个轻量级的 JavaScript 基于主题的消息订阅发布库 ,压缩后小于1b。它具有使用简单、性能高效、支持多平台等优点,可以很好地满足各种需求。 功能特点: 无依赖同步解耦ES3 兼容。pubsub-js 能够在…...
TA Shader基础
渲染管线 概念:GPU绘制物体的时候,标准的,流水线一样的操作 游戏引擎如何绘制物体:CPU提供绘制数据(顶点数据,纹理贴图等)给GPU,配置渲染管线(装载Shader代码到GPU&…...
VScode + opencv(cmake编译) + c++ + win配置教程
1、下载opencv 2、下载CMake 3、下载MinGW 放到一个文件夹中 并解压另外两个文件 4、cmake编译opencv 新建文件夹mingw-build 双击cmake-gui 程序会开始自动生成Makefiles等文件配置,需要耐心等待一段时间。 简单总结下:finish->configuring …...
Vue中的常用指令v-html / v-show / v-if / v-else / v-on / v-bind / v-for / v-model
前言 持续学习总结输出中,Vue中的常用指令v-html / v-show / v-if / v-else / v-on / v-bind / v-for / v-model 概念:指令(Directives)是Vue提供的带有 v- 前缀 的特殊标签属性。可以提高操作 DOM 的效率。 vue 中的指令按照不…...
ChatGPT 提问技巧
ChatGPT是由 OpenAI 训练的⼀款⼤型语⾔模型,能够和你进⾏任何领域的对话。 它能够⽣成类似于⼈类写作的⽂本。您只需要给出提示或提出问题,它就可以⽣成你想要的东⻄。 在此⻚⾯中,您将找到可与 ChatGPT ⼀起使⽤的各种提示。 只需按照下…...
2023-11-09 LeetCode每日一题(逃离火灾)
2023-11-09每日一题 一、题目编号 2258. 逃离火灾二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid ,它表示一个网格图。每个格子为下面 3 个值之一: 0 表示草地。1 表示着火的格子。2 表示一…...
阿里云-maven私服idea访问私服与组件上传
1.进入aliyun制品仓库 2. 点击 生产库-release进入 根据以上步骤修改本地 m2/setting.xml文件 3.pom.xml文件 点击设置获取url 4. idea发布组件...
Ubuntu上的TFTP服务软件
2023年11月11日,周六下午 目录 tftpd-hpa atftpd 配置和启动 tftpd-hpa 这是一个TFTP服务器软件包,提供了一个简单的TFTP服务器。 你可以使用以下命令安装它: sudo apt-get install tftpd-hpaatftpd 这是另一个常用的TFTP服务器软件包…...
jedis、lettuce与redis交互分析
概念梳理: redis是缓存服务器,jedis、lettuce都是Java语言下的redis客户端,用于与redis服务器进行交互。springboot项目中一般使用的是spring data redis,spring data redis依赖与jedis或lettuce,可以进行配置&#x…...
C++算法:矩阵中的最长递增路径
涉及知识点 拓扑排序 题目 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允…...
OpenWRT配置SFTP远程文件传输,让数据分享更安全
文章目录 前言 1. openssh-sftp-server 安装2. 安装cpolar工具3.配置SFTP远程访问4.固定远程连接地址 前言 本次教程我们将在OpenWRT上安装SFTP服务,并结合cpolar内网穿透,创建安全隧道映射22端口,实现在公网环境下远程OpenWRT SFTP…...
RAG分块策略实战:5种方法代码对比+真实业务场景选择指南(附性能测试数据)
RAG分块策略工程实践:5种方法性能对比与场景化选型指南 在构建检索增强生成(RAG)系统时,文档分块策略的选择直接影响着系统的最终效果。本文将深入分析五种主流分块策略的工程实现差异,结合电商客服、医疗问答等典型业…...
镜像视界空间智能体系统的核心原理是否涉及人工智能技术?
一句话结论涉及人工智能,但本质不是AI系统。我们的核心是空间计算系统,AI只是其中一个工具层。🧠 分层拆解1️⃣ 底层:不是AI ——是空间几何计算系统最核心的能力是:空间反演(Pixel → World)多…...
别再让扩展坞‘抢电’了!手把手教你用LDR6282 APP智能分配USB-C功率
别再让扩展坞“抢电”了!LDR6282芯片智能功率分配全攻略 每次连接扩展坞时,笔记本电量不增反减?外接硬盘频繁断开?这些困扰专业用户的“功率焦虑”问题,根源在于传统扩展坞的固定功率分配机制。本文将深度解析基于LDR…...
Go语言怎么做JWT认证_Go语言JWT Token生成验证教程【推荐】
JWT exp报错因时间戳单位错误:Go的ExpiresAt需int64秒级时间戳,误用UnixMilli()导致值过大被当作远期时间而判定过期;密钥硬编码或加载不当亦引发验签失败。生成 JWT 时 exp 字段总报 expired?因为时间戳单位错了Go 的 jwt.Regist…...
避开LD_LIBRARY_PATH陷阱:在RV1103 Buildroot里成功编译V4L2库的实战记录
避开LD_LIBRARY_PATH陷阱:RV1103 Buildroot中V4L2库编译的深度解析 在嵌入式开发中,交叉编译环境下的库依赖问题往往成为阻碍开发进度的"隐形杀手"。最近在LuckFox Pico SDK环境中编译V4L2库时,一个看似简单的环境变量设置问题——…...
保姆级教程:在vsomeip中为你的SOME/IP服务开启E2E保护(Profile 4配置详解)
深入实践:基于vsomeip的SOME/IP服务E2E保护配置全指南 在汽车电子系统开发中,功能安全始终是核心考量。当两个ECU通过SOME/IP协议通信时,如何确保消息在传输过程中不被篡改或丢失?这就是E2E(端到端)保护要解…...
微信好友关系智能检测:高效管理你的社交网络
微信好友关系智能检测:高效管理你的社交网络 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 在数字社…...
AI基建重构倒计时:SITS2026圆桌闭门报告(仅限首批200家企业的7大工程化预警信号)
第一章:SITS2026圆桌:大模型工程化的未来趋势 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026圆桌讨论中,来自Meta、阿里云、Hugging Face与CNCF大模型工作组的七位工程实践者共同指出:大模型工程化正从“能跑通”迈向…...
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf僬
1. 智能软件工程的范式转移:从库集成到原生框架演进 在生成式人工智能(Generative AI)从单纯的文本生成向具备自主规划与执行能力的“代理化(Agentic)”系统跨越的过程中,.NET 生态系统正在经历一场自该平台…...
KrillinAI:AI视频翻译与配音的终极解决方案,让多语言内容创作触手可及
KrillinAI:AI视频翻译与配音的终极解决方案,让多语言内容创作触手可及 【免费下载链接】KrillinAI Video translation and dubbing tool powered by LLMs. The video translator offers 100 language translations and one-click full-process deploymen…...
