软件测试学习笔记-测试用例的编写

news2024/11/14 20:01:53

请添加图片描述
7中测试分类
按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试
单元测试:针对源代码的测试
集成测试:针对接口进行测试
系统测试:针对功能和非功能的测试
验收测试:公测、内测
黑盒测试:不关注源代码针对功能测试 如系统测试
白盒测试:针对源代码进行测试 如:单元测试
灰盒测试:针对接口进行测试 如:集成测试


测试流程的6个步骤:
1.需求评审、2. 测试计划、3. 用例设计、4. 用例执行、5. 缺陷管理、6. 测试报告

文章目录

        • 测试用例
          • 1. 等价类划分法(应对穷举场景)
          • 2. 边界值分析法(限定边界规则)
          • 3. 判断表法
          • 4. 场景法

测试用例

8个组成部分
测试编号 项目_模块_编号
测试标题 预期结果(测试点) 比如 登录失败(账号为空)
项目/模块
优先级 表示用例的重要程序或者影响力p0~p4(p0最高)用户使用最多的功能 p0
前置条件
测试步骤
测试数据
预期结果

1. 等价类划分法(应对穷举场景)
  1. 明确需求
  2. 划分有效和无效等价
  3. 设计数据编写用例

例子:验证QQ账号合法
需求:6~10位自然数
从位数上分为:
有效:8位自然数
无效:5位、11位自然数

其他:
无效:8位非自然数、空
测试用例为:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
qq_001QQ合法(8位自然数)qq账号p0打开QQ验证程序账号:123456781. 输入QQ账号
2.点击验证
QQ合法
qq_002QQ不合法(5位自然数)qq账号p1打开QQ验证程序账号:123451. 输入QQ账号
2.点击验证
QQ不合法
qq_003QQ不合法(11位自然数)qq账号p1打开QQ验证程序账号:123456789101. 输入QQ账号
2.点击验证
QQ不合法
qq_004QQ不合法(8位非自然数)qq账号p1打开QQ验证程序账号:1234567a1. 输入QQ账号
2.点击验证
QQ不合法
qq_005QQ不合法(空)qq账号p1打开QQ验证程序账号:空1. 输入QQ账号
2.点击验证
QQ不合法

例子:电话号码的正确性
需求:

  1. 区号:空或者三位数字
  2. 前缀码:非“0”且非“1”开头的三位数字
  3. 后缀码:四位数字

请添加图片描述
对应的测试用例如下:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
电话_001电话号码合法(区号为空+其他正常)电话号码p0打开电话号码验证程序区号:空 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码合法
电话_002电话号码合法(区号为三位数字+其他正常)电话号码p0打开电话号码验证程序区号:123 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码合法
电话_003电话号码不合法(区号为非三位数字+其他正常)电话号码p1打开电话号码验证程序区号:1234 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_004电话号码不合法(前缀为非0且非1开头的非三位数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:2345 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_005电话号码不合法(后缀为非四位数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:234 后缀:2341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_006电话号码不合法(区号为非数字+其他正常)电话号码p1打开电话号码验证程序区号:12a 前缀:234 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_007电话号码不合法(前缀为非数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:23a 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_008电话号码不合法(后缀为非数字+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:234 后缀:123a1. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_009电话号码不合法(前缀以0开头+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:023 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法
电话_010电话号码不合法(前缀以1开头+其他正常)电话号码p1打开电话号码验证程序区号:123 前缀:123 后缀:12341. 输入区号 2. 输入前缀 3.输入后缀 4. 点击验证电话号码不合法

使用场景:需要大量测试数据输入,但是没法穷举测试的地方

  • 输入框
  • 下拉列表
  • 单选复选框
2. 边界值分析法(限定边界规则)

解决边界值位数限制问题
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好小于)
内点:范围内的点(区间范围内的数据)
最多:7点(不考虑类型,按照位数)

步骤:

  1. 明确需求
  2. 确定有效和无效等价类(只考虑类型)
  3. 确定边界范围值
  4. 提取数据编写测试用例

例子:
需求:通过边界值法验证标题长度的合法性。
要求:标题长度大于0,小于等于30个字符

有效:长度大于0小于或等于30的字符
无效:长度大于0小于或等于30的数字
上点:0,30
离点:-1,1,29,31
内点:15

总共7种,长度没有为-1的,且内点为15和有效重复
在这里插入图片描述
优化:离点–>考虑开闭区间,开区间选择内部离点,闭区间选择外部离点

使用场景:

  1. 在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
  2. 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
  3. 典型代表:有边界范围的输入框类测试
3. 判断表法

场景:多条件有依赖关系
是一种以表格形式表示多条件逻辑判断的工具
组成:

  1. 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
  2. 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
  3. 条件项:列出条件对应的取值,所有可能情况下的真假值
  4. 动作项:列出条件项的、各种取值情况下应该采取的动作结果

例子:验证”若用户欠费或者关机,则不允许主被叫“功能的测试
在这里插入图片描述

规则:

  1. 判断表中贯穿条件项和动作项的一列就是一条规则
  2. 假设有n个条件,每个条件的取值有两个,全部组合为2的n次方种规则

步骤:

  1. 明确需求
  2. 画出判定表
    1) 列出条件桩和动作桩
    2)填写条件项,对条件进行全组合
    3)根据条件项和组合确定动作项
    4)简化、合并相似规则(有相同动作)
  3. 根据规则编写测试用例

例子1:
在这里插入图片描述
条件桩:金额是否大于500、是否过期
动作项:发出批准单和提货单、发出通知单
在这里插入图片描述
测试用例:

测试编号测试标题项目/模块优先级前置条件测试数据测试步骤预期结果
order_001发通知单(金额大于500,过期)订单p0打开订单验证程序1. 金额:600 2.是否过期:是1. 输入金额 2. 输入是否过期 3. 点击验证发通知单,不发批准单和提货单
order_002发批准单和提货单(金额大于500,没有过期)订单p0打开订单验证程序1. 金额:600 2.是否过期:否1. 输入金额 2. 输入是否过期 3. 点击验证不发通知单,发批准单和提货单
order_003发批准单和提货单、通知单(金额小于500,过期)订单p0打开订单验证程序1. 金额:400 2.是否过期:是1. 输入金额 2. 输入是否过期 3. 点击验证发通知单,发批准单和提货单
order_004发批准单和提货单(金额小于500,没有过期)订单p0打开订单验证程序1. 金额:400 2.是否过期:否1. 输入金额 2. 输入是否过期 3. 点击验证不发通知单,发批准单和提货单

例子2:
文件修改规则
在这里插入图片描述
条件桩:第一列为A或者B、第二列是数字
动作桩:给出信息L、给出信息M、修改文件成功
在这里插入图片描述

4. 场景法

使用标准图和箭头来表达程序或业务的走向(流程图)
先测试业务,再测试单功能,单模块,单页面
在这里插入图片描述
例子:ATM机取款流程
在这里插入图片描述
在这里插入图片描述
对应的测试用例
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js中执行上下文和执行栈是什么

文章目录 一、执行上下文二、生命周期创建阶段This Binding词法环境变量环境 执行阶段回收阶段 二、执行栈参考文献 一、执行上下文 简单的来说,执行上下文是一种对Javascript代码执行环境的抽象概念,也就是说只要有Javascript代码运行,那么…

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器,这条命令背后做了哪些事情? 1、首先加载Django项目的设置(settings) 2、检查数据库迁移,确保数…

这种学习单片机的顺序是否合理?

这种学习单片机的顺序是否合理? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&#xff01…

【Linux Day15 TCP网络通讯】

TCP网络通讯 TCP编程流程 接口介绍 socket()方法是用来创建一个套接字,有了套接字就可以通过网络进行数据的收发。创建套接字时要指定使用的服务类型,使用 TCP 协议选择流式服务(SOCK_STREAM)。 **bind()方法是用来指定套接字使…

绝地求生:海外博主呼吁PUBG2开发提上日程,PUBG2能否继往日荣光

海外PUBG博主WackyJacky101发推:PUBG 现在的平均玩家人数继续增加,但假期过后这里的势头似乎正在放缓!现在是保持势头并宣布制作 PUBG 2 的最佳时机! 大家好,我是闲游盒。PUBG作为最早的独立大逃杀游戏之一&#xff0c…

你今年过年回去吗?

#过年 我是一名21岁刚毕业的大学生,专业是软件技术,主修c#,之前在上海实习了一年,正式工作后来到了深圳,进入了一家电商公司实习。至于我为什么转行了,大家懂的都懂 现在是20240203晚上19.39,还…

算法设计与分析实验:回溯

目录 一、组合总和 1.1 具体思路 1.2 思路展示 1.3 代码实现 1.4 复杂度分析 1.5 运行结果 二、全排列 2.1 具体思路 2.2 思路展示 2.3 代码实现 2.4 复杂度分析 2.5 运行结果 三、N皇后问题 3.1 具体思路 3.2 思路展示 3.3 代码实现 3.4 复杂度分析 3.5 运行…

两个重要极限【高数笔记】

【第一个:lim (sinx / x) 1, x -- > 0】 1.本质: lim (sin‘?’ / ‘?’) 1, ‘?’ -- > 0;保证‘?’ -- > 0,与趋向无关 2.例题&#x…

Harbor介绍、整体架构和安装

1.Harbor介绍 Harbor 是由 VMware 开源的一款云原生制品仓库,Harbor 的核心功能是存储和管理 Artifact。Harbor 允许用户用命令行工具对容器镜像及其他 Artifact 进行推送和拉取,并提供了图形管理界面帮助用户查看和管理这些 Artifact。在 Harbor 2.0 版…

LangChain 81 LangGraph 从入门到精通三

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…

Logback学习

logback 1、logback介绍 Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好。 lockback优点: 内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升。logback非常自然地直接实现了slf4j…

Open3d计算点云法向量,可视化(代码)

Open3d使用estimate_normals函数来计算法向量。其参数设置Open3d提供了3中参数搜索的方法(所有计算的法向量模长为1): open3d.geometry.KDTreeSearchParamKNN(knn20) # 计算近邻的20个点 open3d.geometry.KDTreeSearc…

SVDiff: Compact Parameter Space for Diffusion Fine-Tuning——【论文笔记】

本文发表于ICCV 2023 论文地址:ICCV 2023 Open Access Repository (thecvf.com) 官方代码:mkshing/svdiff-pytorch: Implementation of "SVDiff: Compact Parameter Space for Diffusion Fine-Tuning" (github.com) 一、Introduction 最近几…

Apache POl Excel

目录 介绍 Apache POl的应用场景: 入门使用 通过POI创建Excel文件并且写入文件内容 通过POI读取Excel文件中的内容 介绍 Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft O…

AI应用开发-Visual Studio Code及Remote Development插件远程开发

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

由vscode自动升级导致的“终端可以ssh服务器,但是vscode无法连接服务器”

问题描述 简单来说就是,ssh配置没动,前两天还可以用vscode连接服务器,今天突然就连不上了,但是用本地终端ssh可以顺利连接。 连接情况 我的ssh配置如下: Host gpu3HostName aaaUser zwx现在直接在终端中进行ssh&am…

【数位dp】【动态规划】【KMP】1397. 找到所有好字符串

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1397. 找到所有好字符串 给你两个长度为 n 的字符串 s1 和 s2 ,以及一个字符串 evil 。请你返回 好字符串 的数目。 好字符串 的定义为&#x…

从零开始:构建高效的 JMeter 集群压测环境

当面对大量用户模拟和性能测量需求时,单台计算机运行 JMeter 往往显得力不从心。因此,构建一个多节点的JMeter集群成为了一种提升测试性能的有效途径。接下来,本文将详细介绍如何组建和配置一个JMeter测试集群。 一、准备工作:服…

深入理解直接内存和零拷贝

目录 直接内存深入辨析 堆外内存的优点和缺点 零拷贝 什么是零拷贝? Linux的I/O机制与DMA 传统数据传送机制 Linux支持的零拷贝 mmap内存映射 sendfile splice Java生态圈中的零拷贝 NIO提供的内存映射MappedByteBuffer NIO提供的sendfile Kafka中的零拷贝 直接…

npm ERR! code CERT_HAS_EXPIRED

执行npm i报错: npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! network request to https://registry.npmjs.org/react-redux failed, reason: connect ETIMEDOUT 104.16.2.35:443 npm ERR! network This is a problem rel…