测试用例`
1.什么是测试用例
2.测试用例的万能公式(重点)
1.功能测试
功能测试是⼀个试图发现程序与其外部规格说明之间存在不⼀致的过程。外部规格说明是⼀份从
最终⽤⼾的⻆度对程序⾏为的精确描述。功能测试通常是⼀项⿊盒操作。在进⾏功能测试时,需要对
规格说明进⾏分析以提炼测试⽤例,本课程中讨论的具体设计测试⽤例的⽅法尤其适⽤于功能测试。
然⽽,不仅是⼯作中还是⾯试中,可能会存在需求不明确的功能?这种情况下该如何进⾏功能测试?
◦ 查找其他相关⽂档,来帮助理解所要测试的产品需要完成的⽬标;
◦ 尽量多参加项⽬组内的会议,⽐如需求讨论、设计讨论、计划讨论等,能够加深对产品的理解;
◦ 召集相关⼈员,对你整理的结果进⾏讨论,通过评审后,这份⽂档就可以作为依据来设计你的case了;
◦ 如果是⼀款已经上线的产品,可以多使⽤产品,有不懂的问产品经理;
◦ 也可以去看历史bug,可以了解到⼀些需要关注的东西。
2.界⾯测试
对软件界⾯上所有的内容都需要进⾏测试。
要求:
◦ 整体界⾯测试界⾯的实现与设计图要求⼀致。
◦ 界⾯元素测试
▪ 控件操作验证
3.性能测试
性能测试和功能测试的区别是:功能测试检查软件是否做了,⽽性能测试测试软件做的好不好。
4.兼容性测试
软件是部署在硬件系统之上,并依赖所需要的软件环境。如QQ可以在PC端打开,也可以在移动
端打开;移动端⼜分为IOS系统和Android系统,且市⾯上⼿机⼜有不同的品牌、不同的机型、不同
的版本。软件是否能够在不同的环境下正确运⾏需要测试⼈员进⾏验证。
问题:既然市⾯上有众多版本的机器,那么在执⾏兼容性测试时难道所有的机型都需要全⾯覆盖吗?
选取标准:
• 优先选择使⽤当前产品top级别的机型进⾏测试
实际在企业中,后台是可以获取到使⽤产品的机型,并以报表的形式统计在后台,供产品⼈员或
其他⼈员制定策略参考。
• 选择主流的浏览器/机型进⾏测试
5.易⽤性测试
易⽤性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使⽤过
该产品,作为⼀个新⽤⼾,对当前产品是否能够快速适⽤产品的使⽤流程。
6.安全测试
安全测试和性能测试⼀样都是⽐较⼤的领域。常⻅的安全问题如:
隐私数据明⽂显⽰。
参数未强校验导致SQL注⼊。
越权:普通⽤⼾也可以执⾏管理员权限的操作。
几个测试用例举例:
1.针对无畏契约英雄设计测试用例
2.针对登录页面设计测试用例
3.场景题:针对优惠券设计测试用例(注意:优惠券可以叠加使用,并且不会冲突)
场景题:优惠券:有三种优惠:
1.某⼀店铺对指定商品打五折
2.全场满300减50(淘宝机制)
3.同⼀家 店的同⼀商品针对第⼆件打⼋折根据这三种优惠来设计测试⽤例
3.弱网测试
弱网测试是指用户在访问网站的过程中出现的网络问题
页面响应时间是否可以接受.
安全角度:是否包含dns劫持,登录ip更换频繁等
进行弱网测试我们一般使用抓包工具(Fiddler),通过抓包修改请求的上行速率和响应的下行速率
将上行速率和下行速率降低我们观察
进行弱网测试后我们发现页面还是可以正常打开
4. 设计测试用例的方法
4.1 等价类法
等价类法就是依据需求将输入划分为若干个等价类.比如我们在注册账号的时候,要求输入长度限制为6~15个字符.我们把所有的情况整合形成一个集合.此时我们只需要在这个集合内抽取一个实例进行测试,假如我们测试10个字符,如果通过测试,我们就认为整个等价类就通过测试.
等价类分为:有效等价类和无效等价类.
还是以注册账号的用户名长度进行举例,规定长度为6,15个字符,那么[6,15]区间的集合就称为有效等价类,而除了这个集合之外的剩下的我们也整合成一个集合就称为无效等价类
4.2 边界值
边界值包含:边界值和次边界值.
当我们规定注册账号的用户名是大于等于6并且小于等于15 [6,15]的时候
边界值:6位,15位 就是有效等价类;次边界值:5位或者16位就是无效等价类
当我们规定注册账号的用户名是大于6并且小于15 (6,15)的时候
边界值:6位,15位就是无效等价类;次边界值:7位,14位就是有效等价类
4.3 场景法

在测试中也要多考虑这些容易出现这些正常流程之外的情况.
还是以注册账号举例
全面发散性考虑,对于我们测试是很有帮助的.
4.4 正交法
学习正交法,我们首先要学习下正交表
最简单的正交表是L4(2^3),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性
正交表的组成






4.5 判定表法
需求:⽤⼾输⼊的账号中包含admin字符,或者通过内部链接进⼊注册⻚⾯,提交注册按钮成为管理员⾝份;反之⽆管理员⾝份。



5.测试分类
5.1 按照测试目标分类
5.1.1 界面测试
界面测试(简称UI测试).指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则,对我们软件界 ⾯所展⽰的全部内容进⾏测试和检查.
5.1.2 功能测试
5.1.3 性能测试
5.1.4 可靠性测试
5.1.5 安全测试
5.1.6 易用性测试
5.2 按照执行方式分类
5.2.1 静态测试
5.2.2 动态测试
果和预期结果是否相符的过程,所以判断⼀个测试属于动态测试还是静态的,唯⼀的标准就是看是否运⾏程序。
5.3 按照测试方式分类
5.3.1 白盒测试

简单解释白盒测试的动态测试方法:有下述两个判断语句
1.语句覆盖
每个语句都会执行一次
2. 判定覆盖
A and B =>T A=T && B=T
A and B=>F A=F B=T || B=F A=T || A=F, B=F
C or D => T C=T D=F|| C=F D=T || C=T D=T
C or D => F C=F D=F
3.判定条件覆盖
4.条件组合覆盖
5.路径覆盖
5.3.2 黑盒测试
5.3.3 灰盒测试
5.4 按照测试阶段进行分类
5.4.1 单元测试
就是将一个方法或者一个类看成一个单元进行测试,单元测试一般是开发人员来进行测试
5.4.2 集成测试

测试对象:模块间的接⼝
5.4.3 系统测试
冒烟测试的对象是每⼀个新编译的需要正式测试的软件版本,⽬的是确认软件主要功能和核⼼流程正常,在正式进⾏系统测试之前执⾏
5.4.4 验收测试
5.5按照实施组织划分
5.5.1 α测试
5.5.2 β测试
相关文章:
测试用例`
1.什么是测试用例 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素. 2.测试用例的万能公式(重点) 设计测试⽤例的万能公式: 功能测试界…...
React 中的错误边界(Error Boundaries),如何使用它们捕获组件错误
大白话React 中的错误边界(Error Boundaries),如何使用它们捕获组件错误 在 React 里,错误边界就像是一个“小卫士”,专门负责在组件出现错误时挺身而出,避免整个应用因为一个小错误就崩溃掉。接下来我会详…...
往期项目shader着色器实践效果应用合集
1、管路混色 2、水管水流效果 3、水管流入到流完效果 4、加热冷却 两 色混色 示意 XX、毒蘑菇测试效果...
go-zero: sqlx 对timestamp 格式数据问题
1.问题背景 对于goctl自动生成的model代码文件,对于非null的时间数据列,一定会产生如下问题 deleted_at\": unsupported Scan, storing driver.Value type \u003cnil\u003e into type *time.Time" 例如以上的问题,不论是插入还…...
systemd-networkd 的 *.network 配置文件详解 笔记250323
systemd-networkd 的 *.network 配置文件详解 笔记250323 查看官方文档可以用 man systemd.network命令, 或访问: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html 名称 systemd.network — 网络配置 概要 network.network 描述 一个纯…...
Axure项目实战:智慧城市APP(四)医疗信息(动态面板、选中交互应用)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP医疗信息模块 主要内容:医疗信息模块原型设计与交互 应用场景:医疗信息行业 案例展示: 案例视频&…...
机器学习正则化技术:Ridge、Lasso与ElasticNet全解析
机器学习中的正则化技术 在机器学习中,正则化技术(如 Ridge 和 Lasso)主要用于解决过拟合问题,通过限制模型复杂度提高泛化能力。以下是详细说明及实例代码: 一、正则化解决的问题 过拟合:模型在训练集表…...
【汽车传感系统架构:借助传感获取安全】
为了将车辆自动化提升到一个新的水平,设计人员研究了 LiDAR 等传感器选项的权衡,并着眼于传感系统架构。 本文引用地址:https://www.eepw.com.cn/article/202503/468584.htm 每年,约有 120 万人死于道路交通事故,还有…...
3.25-2request库
request库 一、介绍request库 (1)requests是用python语言编写的简单易用的http库,用来做接口测试的库; (2)接口测试自动化库有哪些? requests、urllib 、urllib2、urllib3、 httplib 等&…...
LangChain4j(1):初识LangChain4j
1 什么是LangChain和LangChain4j LangChain是一个大模型的开发框架,使用LangChain框架,程序员可以更好的利用大模型的能力,大大提高编程效率。如果你是一个lava程序员,那么对LangChain最简单直观的理解就是,LangChain…...
UMI-OCR Docker 部署
额外补充 Docker 0.前置条件 部署前,请检查主机的CPU是否具有AVX指令集 lscpu | grep avx 输出如下即可继续部署 Flags: ... avx ... avx2 ... 1.下载dockerfile wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Do…...
python每日十题(9)
外存储器的容量一般都比较大,而且大部分可以移动,便于在不同计算机之间进行信息交流。外存储器中数据被读入内存储器后,才能被CPU读取,CPU不能直接访问外存储器。本题答案为A选项。 进程是指一个具有一定独立功能的程序关于某个数…...
Jenkins最新版,配置Gitee私人令牌和Gitee凭证
jenkins 配置Gitee私人令牌和凭证 jenkins 版本:Jenkins 2.492.2 Gitee配置 Jenkins配置gitee插件,需要先申请gitee私钥。 安装gitee插件 申请Gitee私人令牌,后面还需要添加凭证。 测试链接,并保存 配置凭证...
AI 生成内容(AIGC):从文本到视频的完整流程
近年来,AI 生成内容(AIGC, AI-Generated Content) 迅速发展,从文本、图片到音频、视频,AI 在创意内容生成方面展现出了惊人的能力。AIGC 不仅提升了内容创作效率,还降低了成本,使得普通用户也能…...
【漏洞复现】Apache Tomcat partial PUT文件上传反序列化漏洞复现(CVE-2025-24813)
❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 0x00 免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用;任何个人/组织须在合法合规…...
Spring JDBC Template与事务管理:基于XML与注解的实战指南
摘要 本文深入解析Spring JDBC Template与事务管理的核心技术,结合XML配置与注解方式两种主流方案,通过转账案例完整演示数据库操作与事务管理的最佳实践。文章涵盖JDBC Template的核心用法、事务配置语法、常见问题及性能优化建议,帮助开发…...
自动化测试selenium(Java版)
1.准备工作 1.1.下载浏览器 自动化测试首先我们要准备一个浏览器,我们这里使用谷歌(chrome)浏览器. 1.2.安装驱动管理 每一个浏览器都是靠浏览器驱动程序来启动,但是浏览器的版本更新非常快,可能我们今天测试的是一个版本,第二天发布了一个新的版本,那么我们就要重构代码,很…...
【13】Ajax爬取案例实战
目录 一、准备工作 二、爬取目标 三、初步探索:如何判断网页是经js渲染过的? 四、爬取列表页 4.1 分析Ajax接口逻辑 4.2 观察响应的数据 4.3 代码实现 (1)导入库 (2)定义一个通用的爬取方法…...
tar包部署rabbitMQ
部署erlang: 有网使用: sudo apt-get update sudo apt-get install libncurses5-dev libncursesw5-dev sudo yum install ncurses-devel 无网使用 tar zxvf ncurses.tar.gz mkdir ncurses cd ncurses-6.3/ ./configure --with-shared --without-debu…...
SpringMVC请求与响应深度解析:从核心原理到高级实践
一、SpringMVC架构与核心组件剖析 SpringMVC是基于Java的MVC设计模型实现的轻量级Web框架,其核心架构围绕前端控制器模式构建。以下是核心组件及其作用: DispatcherServlet 作为前端控制器,所有请求首先到达此处。它负责请求分发、协调组件协…...
CentOS 8 安装 Redis 全流程指南:从基础部署到远程安全配置
一、环境准备 本文以 CentOS 8.5 为例,演示 Redis 的安装、密码设置及远程连接配置。在开始前,请确保: 已通过 SSH 连接至服务器(建议使用 Root 权限)系统已联网基础工具包已安装:sudo dnf update -y &am…...
【机器学习】使用Python Spark MLlib进行预测模型训练
Spark MLlib 是 Spark 的机器学习 (ML) 库。它的目标是使实用的机器学习变得可扩展且易于使用。从高层次上讲,它提供了以下工具: ML 算法:常见的学习算法,如分类、回归、聚类和协同过滤特征化:特征提取、转换、降维和…...
简单聊聊Oracle和MySQL数据库的区别和使用场景
对于IT的技术人员,MySQL是非常熟悉的开源数据库,在各个行业被广泛应用。但是对于Oracle数据库,很多专业的IT从业人员不太了解,今天就来聊一聊Oracle和MySQL的一些区别。 1. 使用场景 首先MySQL是在各种IT公司或者非IT公司广泛应用…...
qt QOffscreenSurface详解
1、概述 QOffscreenSurface 是 Qt 中用于离屏渲染的一个类。它允许在不直接与屏幕交互的情况下进行 OpenGL 渲染操作,常用于生成纹理、预渲染场景等。通过 QOffscreenSurface,可以在后台创建一个渲染表面,进行绘制操作,并将结果捕…...
【软件测试】:软件测试实战
1. ⾃动化实施步骤 1.1 编写web测试⽤例 1.2 ⾃动化测试脚本开发 common public class AutotestUtils {public static EdgeDriver driver;// 创建驱动对象public static EdgeDriver createDriver(){// 驱动对象已经创建好了 / 没有创建if( driver null){driver new EdgeDr…...
springboot使用netty做TCP客户端
1、服务端文档说明 ## 1. 概述本文档描述了Socket模拟器的通信协议实现细节,包括数据包格式、字节序、编码方式等信息。## 2. 通信基础### 2.1 连接方式 - 协议类型:TCP - 网络层:IPv4 (AddressFamily.InterNetwork) - 传输方式:流…...
【NLP 49、提示工程 prompt engineering】
目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…...
Axure RP设计软件中的各种函数:包括数字、数学、字符串、时间及中继器函数,详细解释了各函数的用途、参数及其应用场景。
文章目录 引言函数分类数字函数数学函数字符串函数时间函数函数中继器函数引言 在axure交互设计时,函数可以用在条件公式和需要赋值的地方,其基本语法是用双方括号包含,变量值和函数用英文句号连接。 在交互事件编辑器中通过fx按钮插入函数表达式,例如设置文本内容为: …...
Logback使用和常用配置
Logback 是 Spring Boot 默认集成的日志框架,相比 Log4j,它性能更高、配置更灵活,并且天然支持 Spring Profile 多环境配置。以下是详细配置步骤及常用配置示例。 一、添加依赖(非 Spring Boot 项目) 若项目未使用 Sp…...
赛季7靶场 -- Code -- HTB writeup(Just hint)
本系列仅说明靶场的攻击思路,不会给出任何的详细代码执行步骤,因为个人觉得找到合适的工具以实现攻击思路的能力也非常重要。 1.首先我们对靶场进行了Nmap扫描,很快我们发现了Web应用端口何SSH端口 2.显然我们无法直接突破ssh,因为…...
第十三届蓝桥杯单片机省赛程序设计试题
目录 试题 各程序块代码 init.c main.c other.h other.c key.c seg.c onewire.c部分 ds1302.c部分 试题 各程序块代码 init.c #include "other.h"void init74hc138(unsigned char n){P2(P2&0x1f)|(n<<5);P2&0x1f; } void init(){P00x00;in…...
【QT】Qt creator快捷键
Qt creator可以通过以下步骤快捷键査看调用关系: 1.打开代码文件。 2.将光标放在你想要查看调用关系的函数名上。 3.按下键盘快捷键 CtrlshiftU。 4.弹出菜单中选择“调用路径”或“被调用路径” 5.在弹出的窗口中可以查看函数的调用关系 折叠或展开代码快捷键&…...
Flask接口开发--GET接口
安装Flask 1.安装命令: pip3 install Flask2.查看Flask版本: pip3 show flask如图我的Flask版本号是2.0.3 项目创建 1、在PyCharm中,我们点击左上方的 file,选择 New Project,创建一个Flask项目。(Py…...
爬虫豆瓣电影
以下是一个简单的使用 requests 和 BeautifulSoup 库来爬取网页标题的 Python 爬虫示例代码,以爬取豆瓣电影 Top250 首页为例(注意遵守网站的 robots.txt 协议,不要过度爬取给网站造成负担): 首先确保你已经安装了 re…...
[ ] 前后端连接 结合常见故障场景和解决
调试流程图: 一、基础网络检查 IP与端口验证 确认前端请求的URL与后端实际运行的IP和端口完全一致(如http://192.168.1.100:8080/api)使用ping命令测试网络连通性,telnet检查端口是否开放: telnet 192.168.1.100 80…...
MyBatis-Plus 的加载及初始化
在 Spring Boot 启动过程中,MyBatis-Plus 的加载和初始化涉及多个阶段的工作。这些工作包括 MyBatis-Plus 自身的配置解析、Mapper 接口的扫描与注册、SQL 语句的动态注入以及底层 MyBatis 的初始化等。以下是对整个过程的详细分析: 1. Spring Boot 启动…...
LangChain开发(九)基于Rag实现文档问答
文章目录 关联阅读Rag是什么?Rag工作流索引(Indexing)检索和生成(Retrieval and generation) 文档问答实现流程代码实现 源码地址参考资料 关联阅读 LangChain开发(一)LangChain介绍和对话demo…...
Netty——TCP 粘包/拆包问题
文章目录 1. 什么是 粘包/拆包 问题?2. 原因2.1 Nagle 算法2.2 滑动窗口2.3 MSS 限制2.4 粘包的原因2.5 拆包的原因 3. 解决方案3.1 固定长度消息3.2 分隔符标识3.3 长度前缀协议3.3.1 案例一3.3.2 案例二3.3.3 案例三 4. 总结 1. 什么是 粘包/拆包 问题?…...
探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求
以下是ProxyPin的简单介绍: - ProxyPin是一个开源免费HTTP(S)流量捕获神器,支持 Windows、Mac、Android、IOS、Linux 全平台系统- 可以使用它来拦截、检查并重写HTTP(S)流量,支持捕获各种应用的网络请求。ProxyPin基于Flutter开发࿰…...
【例3.5】位数问题(信息学奥赛一本通-1313)
【题目描述】 在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。 【输入】 读入一个数N(N≤1000)。 【输出】 输出有多少个数中有偶数个数字3。 【输入样例】 2 【输出样例】 73 【题解代码】 #incl…...
python之selenium中的窗口切换
前提:触发一个事件打开一个新的窗口 1,先获取所有的句柄: handles driver.windowhandlers2,获取当前窗口 cururl driver.current_url3,循环遍历所有句柄 for handle in handles:driver.switch_to.window(handle)i…...
青少年编程与数学 02-011 MySQL数据库应用 20课题、连接与ORM
青少年编程与数学 02-011 MySQL数据库应用 20课题、连接与ORM 一、数据库连接基本概念连接过程连接状态连接池技术 二、Go语言连接MySQL数据库安装MySQL驱动导入相关包建立数据库连接检查连接状态执行SQL操作查询操作插入操作更新操作删除操作 完整示例 三、Python语言连接MySQ…...
Java 大视界 -- 基于 Java 的大数据分布式系统的监控与运维实践(155)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
三维空间中点、线、面的关系
三维空间中点、线、面的关系 点相对于平面的位置关系直线相对于平面的位置关系1.根据三点计算平面方程 //根据3点计算平面方程#include <iostream> #include <cmath> #include <vector>...
Spring JdbcTemplate 万字详解(通俗易懂)
目录 Δ前言 一、什么是JdbcTemplate? 1.定义: 2.作用: 3.环境搭建: 二、JdbcTemplate的简单使用 1.通过JdbcTemplate实现数据的添加: 2.通过JdbcTemplate实现数据的修改: 三、JdbcTemplate的进阶使用 …...
centos 7 搭建ftp 基于虚拟用户用shell脚本搭建
#!/bin/bash# 步骤1: 更新系统并安装vsftpd yum update -y yum install vsftpd -y# 步骤2: 创建虚拟用户信息文件并转换为数据库文件 cat << EOF > /etc/vsftpd/virtual_users.txt ftpvuser 123456 EOFdb_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsft…...
《Android低内存设备性能优化实战:深度解析Dalvik虚拟机参数调优》
1. 痛点分析:低内存设备的性能困局 现象描述:大应用运行时频繁GC导致卡顿 根本原因:Dalvik默认内存参数与硬件资源不匹配 解决方向:动态调整堆内存参数以平衡性能与资源消耗 2. 核心调优参数全景解析 关键参数矩阵࿱…...
【AI学习】概念了解
1,GPU 专门用于处理图形相关运算任务的微处理器,它起初主要聚焦于加速图形渲染,让计算机能够快速、流畅地显示高质量的图像、视频以及 3D 场景等内容,在电脑游戏、影视特效制作、动画设计等领域有着至关重要的作用。 与传统的中央处理器(CPU)相比,GPU 有着数量众多的核…...
WPF InkCanvas 控件详解
1. InkCanvas 是什么? InkCanvas 是 WPF 提供的一个手写绘图控件,它允许用户使用鼠标、触摸屏或手写笔在界面上进行绘图、标注等操作。 核心特点: ✅ 具备笔迹存储和管理功能。 ✅ 提供 Children 和 Strokes 两个集合,分别用于管理子控件和绘制的笔迹。 ✅ 通过 EditingM…...
数据库三级选择题(2)
C) 分布式数据库的事务管理包括恢复控制和并发控制,恢复控制一般采用的策略是基于两阶段提交协议 采用一定的计算方法定位数据的有 Ⅳ.散列(哈希)索引 下列提供逻辑独立性的是外模式/模式映像 UML所有活动有关判断的部分要用菱形表…...