【测试篇】测试用例
文章目录
- 前言
- 具体设计测试用例
- 等价类
- 边界值
- 场景设计法
- 判定表(因果图)
- 正交排列(用的非常少)
- 错误猜测法
前言
什么是测试用例??
测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤,旨在验证软件是否按照预期工作。测试用例描述了预期输入、执行操作和预期输出,以及测试的环境和先决条件。测试用例通常由测试人员编写,用于检查软件的功能、性能、安全性等方面。
测试用例具有什么基本要素??
测试用例通常包含 测试环境、操作步骤、测试数据、预期结果、实际结果、测试状态等要素……
评价测试用例的标准是什么??
- 用例表达清楚,无二义性
- 用例可操作性
- 用例的输入与输出明确。一条用例只有一个预期结果。
- 用例的可维护性好。
- 用例对需求的覆盖率高。
覆盖率高意味着测试用例覆盖了软件系统的许多方面,有助于发现潜在的缺陷和问题。
具体设计测试用例
- 等价类
- 边界值
- 错误猜测法
- 场景设计法
- 因果图
- 正交排列
等价类
-
有效等价类:根据需求说明书,满足需求的集合。
-
无效等价类:根据需求说明书,不满足需求的集合。
举例子:测试一个账号输入机制,要求用户名长度是6~15位&必须全是字符。
测试点是有效等价类+无效等价类
边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
-
寻找上点、内点、离点。可以观察下图来理解:

-
设计测试用例(和等价类结合)
针对上述的“上点、内点、离点”设计测试用例。

场景设计法
什么是场景:场景设计法是指根据特定情境和需求,构思和设计出一个具体的场景或情景,以便更好地理解和解决问题,促进创新和设计思考的方法。
场景设计法设计测试用例的时候具体的步骤是什么?
- 主事件流
- 次事件流
- 将主事件流次事件流串起来就会形成场景,一个场景就是一个测试用例
以淘宝购物为例。
测试点①:打开淘宝APP,搜索商品,选中商品,加入购物车,选择支付方式,支付成功,生成订单。
测试点②:打开淘宝APP,APP闪退,没有订单。
判定表(因果图)
判定表需要掌握的基本知识:恒等、与、或、非。
- 恒等:条件为真,结果一定为真,条件为假,结果一定为假
- 与︰条件全为真,结果才为真,条件中有一个为假,结果为假
- 或:条件全为假,结果才为假,条件中有一个为真,结果为真
- 非:条件为假,结果才为真
通过判定表法设计测试用例
- 充分理解需求
- 分析所有的输入和可能的输出
- 找出输入和输出之间的对应关系
- 画判定表
- 把判定表对应到每一个测试用例
案例:假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
分析:
-
输入:订单提交(A),订单没有提交,金额大于等于300(B),金额小于300,有红包©,没有红包。
-
输出:有优惠,没优惠。
-
对应关系:A B C AB AC BC ABC
-
画判定表

-
测试用例:
- 订单已提交,金额大于等于300,有红包,有优惠
- 订单已提交,金额大于等于300,没有红包,有优惠
- 订单已提交,金额小于300,有红包,有优惠
- 订单已提交,金额小于300,没有红包,没有优惠
- 订单未提交,金额大于等于300,有红包,没有优惠
- 订单未提交,金额大于等于300,没有红包,没有优惠
- 订单未提交,金额小于300,有红包,没有优惠
- 订单未提交,金额小于300,没有红包,没有优惠
正交排列(用的非常少)
正交法的核心是正交表,这是一种设计实验的特殊表格,能够将各个因素的水平组合安排得尽可能均匀,从而使得实验结果具有较高的准确性和可重复性。
通过正交表设计测试用例:
- 确定因素和因素取值(确定因素和水平)
- 通过工具生成正交表
- 将正交表转换成测试用例
- 补充正交表
案例:注册 姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册。
- 因素:姓名、密码、确认密码、验证码
- 水平:每个元素填写/不填写

测试点①:姓名填写,邮箱填写,密码填写,确认密码填写,验证码填写
……
错误猜测法
错误猜测法更多的是依赖以往的经验,长期对于被测软件涉及的理解来进行的猜测。
依赖测试人员的工作经验和积累。
相关文章:
【测试篇】测试用例
文章目录 前言具体设计测试用例等价类边界值场景设计法判定表(因果图)正交排列(用的非常少)错误猜测法 前言 什么是测试用例?? 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤…...
Shell学习 - 2.24 Shell let命令:对整数进行数学运算
let 命令和双小括号 (( )) 的用法是类似的,它们都是用来对整数进行运算,读者已经学习了《Shell (())》,再学习 let 命令就相当简单了。 注意:和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数…...
langchain Chroma 构建本地向量数据库
langchain Chroma 构建本地向量数据库 # import from langchain_community.document_loaders import TextLoader from langchain_community.embeddings.sentence_transformer import (SentenceTransformerEmbeddings, ) from langchain_community.embeddings import HuggingFa…...
Rust 中的字符串类型:`str` 和 `String`
Rust 中的字符串类型:&str 和 String 文章目录 Rust 中的字符串类型:&str 和 String1. &str:不可变的字符串引用2. String:可变的字符串3、字符串使用综合案例代码执行结果 在 Rust 编程语言中,有两种主要…...
Visual Studio(VS) 搭建 QT 开发环境
Visual Studio(VS) 搭建 QT 开发环境 在当今的软件开发领域,Visual Studio(VS)是一款备受欢迎的集成开发环境(IDE),而 QT 则是一个强大的跨平台应用程序框架。将两者结合使用,可以为开发人员提供高效、便捷的开发体验。本文将详细介绍如何在 VS2022 中搭建 QT 开发环…...
Qt模拟面试(超硬核)
1. 请简要介绍一下你的 Qt 开发经验。 建议:诚实地描述你的 Qt 经验,包括你使用过的 Qt 版本、开发过的项目类型、遇到的挑战以及如何解决它们。 假如你没有开发经验,可以提供一些关于 Qt 开发的一般信息和常见的经验分享。 Qt 是一个跨平…...
某眼实时票房接口获取
某眼实时票房接口获取 前言解决方案1.找到veri.js2.找到signKey所在位置3.分析它所处的这个函数的内容4.index参数的获取5.signKey参数的获取运行结果关键代码另一种思路票房接口:https://piaofang.maoyan.com/dashboard-ajax https://piaofang.maoyan.com/dashboard 实时票房…...
cesium键盘控制相机位置和姿态
该类主要用于监听键盘事件并在用户按下不同按键时执行相应的相机操作,如改变相机的位置、偏航角、俯仰角和翻滚角,从而实现在三维场景中的漫游。 以下是代码的主要逻辑: 导入Cesium库,并定义一个flags对象,其中包含了…...
基于ArrayList实现简单洗牌
前言 在之前的那篇文章中,我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此,便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表&…...
Paddle实现人脸对比
人脸对比 人脸对比,顾名思义,就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS:作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集: 人脸数据_数据集-飞桨AI Studio星河社区 (b…...
挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题
前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…...
函数对象基本使用
一、函数对象概念 1.重载函数调用操作符的类,其对象常称为函数对象 2.函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 二、函数对象使用 特点: 函…...
浅谈HTTP
浅谈HTTP 要通过netty实现HTTP服务器(或者客户端),首先你要了解HTTP协议。 HTTP在客户端 - 服务器计算模型中用作请求 - 响应协议。 例如,web浏览器可以是客户端,并且在托管网站的计算机上运行的应用程序可以是服务器。 客户端向服务器提交…...
HarmonyOS NEXT应用开发之@Provide装饰器和\@Consume装饰器:与后代组件双向同步
Provide和Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,Provide和Consume摆脱参数传递机制的束缚,实现跨层级传递。 其中Provide装饰的变…...
Docker 安装 | 部署MySQL 8.x 初始设置
1、准备工作 如果不想看前面的废话请直接右边目录跳到 运行容器 处 默认你已经有 docker 环境。 Windows 推荐 Docker Desktop (下载地址)并基于 WSL2 运行 Docker 环境 mac 推荐 Orbstack (下载地址)(这个很节省资源&…...
linux三剑客之流编辑器sed
sed(stream editor)是Linux和Unix系统中一个非常强大的文本处理工具。它主要用于对文本数据进行过滤和转换。sed 可以在不打开文件的情况下,直接对输入流进行操作,并且可以将结果输出到标准输出或文件。 基本语法: s…...
【Android Studio】上位机-安卓系统手机-蓝牙调试助手
【Android Studio】上位机-安卓系统手机-蓝牙调试助手 文章目录 前言AS官网一、手机配置二、移植工程三、配置四、BUG五、Java语言总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 AS官网 AS官网 一、手机配置 Android Studio 下真机调试 …...
怎样把学浪购买的课程下载下来
如何把学浪已购买的课程下载下来?这里就教大家一个方法,利用一个工具轻轻松松把视频下载下来 这个工具我打包成压缩包了,有需要的自己取一下 链接:https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码:kqvj --来自百度网盘超级会员V1…...
SD-WAN如何解决更有性价比地跨境网络问题
云桥通SD-WAN利用智能路由和负载均衡技术,优化数据传输路径,提高网络性能和可靠性。这意味着数据在跨国传输时可以更快到达目的地,减少延迟和丢包率。跨境SD-WAN提高了网络连接速度和质量,使用户能够更快地访问跨国业务所需的资源…...
第15章 File类与IO流
一 java.io.File类的使用 1.1 概述 File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
