测试用例分析及编写

article/2025/4/17 7:15:35

文章目录

    • 1.测试用例
      • 1.1 用例与测试用例
      • 1.2 测试用例的作用
      • 1.3 测试用例的编写格式
    • 2. 测试点的设计方法
      • 2.1 等价类划分法
        • 2.1.1 定义
        • 2.1.2 分类
        • 2.1.3 划分规则
        • 2.1.4 步骤
        • 2.1.5 适用场景
        • 2.1.6 案例
          • 2.1.6.1 验证QQ帐号的合法性
          • 2.1.6.2 验证某城市号码的正确性
      • 2.2 边界值划分法
        • 2.2.1 定义
        • 2.2.2 边界值范围节点
        • 2.2.3 步骤
        • 2.2.4 适用场景
        • 2.2.5 优化策略
        • 2.2.6 案例
          • 2.2.6.1 验证标题合法性
          • 2.2.6.2 验证QQ帐号合法性
      • 2.3 因果判定法
        • 2.3.1 定义
        • 2.3.2 组成
        • 2.3.3 规则
        • 2.3.4 步骤
        • 2.3.5 使用场景
        • 2.3.6 案例
          • 2.3.6.1 订单判断
          • 2.3.6.2 文件修改规则
          • 2.3.6.3 投币充值系统
          • 2.4.6.4 投币系统2.0
      • 2.4 场景法
        • 2.4.1 定义
        • 2.4.2 流程图
        • 2.4.3 梳理流程图工具
        • 2.4.4 案例
          • 2.4.4.1 ATM取款业务验证
      • 2.5 错误推断法
        • 2.5.1 含义
        • 2.5.2 使用场景
        • 2.5.3 思想
        • 2.5.4 案例
      • 2.6 正交排列法
        • 2.6.1 定义
        • 2.6.2 使用场景
        • 2.6.3 特点
        • 2.6.4 正交表
        • 2.6.5 步骤
        • 2.6.6 案例
          • 2.6.6.1 字符属性设
          • 2.6.6.2 个人信息查询

1.测试用例

1.1 用例与测试用例

​ 用例就是用户使用的案例。

​ 测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便核实是否满足某个特定需求。

1.2 测试用例的作用

​ 1. 防止测试有遗漏

​ 2. 测试用例是测试人员具体执行测试的依据,作为测试标准并指导测试人员进行测试工作。测试人员会按照测试用例中的操作步骤和具体数据逐一执行测试用例,发现问题并提交BUG单,最终完善软件的质量。

1.3 测试用例的编写格式

​ 测试用例一般包含8大要素

  • 用例编号
  • 用例标题
  • 项目/模块
  • 优先级
  • 前置条件
  • 测试步骤
  • 测试数据
  • 预期结果
    测试用例8大要素
    QQ登录测试用例

2. 测试点的设计方法

​ 编写测试用例时,需要先将需求进行分析,然后转化为测试点,然后针对测试点,编写测试用例。

​ 一般来说,测试点有以下几种设计方法:

  • 等价类划分法
  • 边界值分析法
  • 因果判定法
  • 场景法
  • 错误推断法
  • 正交排列法

2.1 等价类划分法

2.1.1 定义

​ 在所有测试数据中,将具有某种共同特征的数据集合划分到不同区域,然后从每个区域中取少数有代表性的数据进行测试即可。

2.1.2 分类

  • 有效等价类
    • 满足需求的数据集合
  • 无效等价类
    • 不满足需求的数据集合

2.1.3 划分规则

​ 一般来说,等价类从3个方面来划分

  • 长度
  • 类型
  • 规则

​ 比如,6-10位自然数,就如此划分:

  • 长度:
    • 有效等价类:6-11位
    • 无效等价类:小于6位,大于11位
  • 类型:自然数
    • 有效等价类:自然数
    • 无效等价类:非自然数
      • 包含中文字符
      • 包含英文字符
      • 包含特殊符号
      • 包含空格
  • 规则:/(无)
    在这里插入图片描述

2.1.4 步骤

  • 1.明确需求
  • 2.确定有效等价类和无效等价类
  • 3.提取数据编写测试用例

2.1.5 适用场景

  • 针对:需要有大量测试数据输入,但是没法穷举测试的地方
    • 输入框
    • 下拉列表
    • 单选、复选框

2.1.6 案例

2.1.6.1 验证QQ帐号的合法性
需求:验证QQ帐号的合法性
要求:6-10位自然数

验证QQ帐号合法性(等价类)

2.1.6.2 验证某城市号码的正确性
需求:验证某城市电话号码的正确性
要求:1.区号:空或者三位数字2.前缀码:非“0”且非“1”开头的三位数字3.后缀码:四位数字

验证某城市号码的正确性
城市号码测试用例

2.2 边界值划分法

2.2.1 定义

​ 对输入或输出的边界值进行测试的方法

2.2.2 边界值范围节点

​ 一般来说,选取正好等于、刚好大于、刚好小于边界的值作为测试数据,分为:

  • 上点:边界上的点(正好等于)

  • 离点:距离上点最近的点(刚好大于、刚好小于)

  • 内点:范围内的点(区间范围内的数据)

    ​ 一般来说,有关范围限制,最多有7条用例。

    ​ 边界值能解决位数限制问题,但不能解决类型问题,所以需要结合等价类一起分析。

2.2.3 步骤

  • 1.明确需求
  • 2.确定有效等价和无效等价
  • 3.确定边界范围值
  • 4.提取数据编写测试用例

2.2.4 适用场景

一般用来解决边界位数限制问题。

2.2.5 优化策略

一般来说,边界值可以将7个点优化为5个点

  • 上点:必选
  • 内点:必选
  • 离点:开内闭外
    • 开区间选择内部离点
    • 闭区间选择外部离点

2.2.6 案例

2.2.6.1 验证标题合法性
1.需求:验证标题合法行
2.要求:标题长度大于0,小于30个字符

验证标题合法性

2.2.6.2 验证QQ帐号合法性
1.需求:验证QQ帐号合法性
2.要求:6-10位自然数

验证QQ帐号合法性(边界值)

2.3 因果判定法

2.3.1 定义

​ 一种以表格形式表达多条件逻辑判断的工具

2.3.2 组成

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

2.3.3 规则

  • 判定表中贯穿条件项和动作项的一列就是一条规则
  • 假设有N个条件,每个条件的取值有两个(0,1),全组合有2^N中规则

2.3.4 步骤

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

2.3.5 使用场景

  • 1.有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有相互依赖关系
  • 2.判定表一般适用于条件组合数量较少的情况(一般为4个条件以下)

2.3.6 案例

2.3.6.1 订单判断
1.需求:根据订单金额及状态发送单据
2.要求:1)如果金额大于500元,又未过期,则发出批准单和提货单;2)如果金额大于500元,但过期了,则不发批准单与提货单;3)如果金额小于等于500元,则不论是否过期都发出批准单和提货单;4)在过期的情况下不论金额大小还需要发出通知单。
订单判断测试用例
2.3.6.2 文件修改规则
1.需求:修改文件名
2.要求:1)输入的第一列字符必须是A或B2)第二列字符必须是一个数字3)如果第一列字符不正确,则给出信息L4)如果第二列字符不正确,则给出信息M5)如果两列字符输入正确,则修改文件成功
文件修改名称 文件修改名称测试用例
2.3.6.3 投币充值系统

1.需求

在这里插入图片描述

  • 2.步骤
投币充值判定表
  • 3.编写测试用例

    红色部分为无意义用例,故删去。
    投币充值测试用例

2.4.6.4 投币系统2.0
  1. 需求

在这里插入图片描述
2. 画出判定表


3. 编写测试用例

​ 同上。

2.4 场景法

2.4.1 定义

​ 场景法也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。

2.4.2 流程图

​ 业务用例是根据流程图来梳理的,需要先了解流程图。
流程图

2.4.3 梳理流程图工具

  • processon
  • 微软visio
  • 腾讯文档vision

2.4.4 案例

2.4.4.1 ATM取款业务验证
  • 业务流程
    ATM取款业务
  • 转换为具体业务流程
1、开始→验证银行卡失败→提示错误,退卡→结束
2、开始→验证银行卡成功→输入密码错误3次→吞卡→结束
3、开始→验证银卡成功→验证密码成功→验证账户余额不足→提示错误、退卡→结束
4、开始→验证银卡成功→验证密码成功→验证账户余额充足→验证取款金额不足→提示错误、退卡→结束
5、开始→验证银卡成功→验证密码成功→验证账户余额充足→验证取款金额充足一ATM机余额不足→提示错误、退卡一结束
6、开始一验证银卡成功→验证密码成功→验证账户余额充足→验证取款金额充足→ATM机余额充足→取款成功,更新账户余额并出钞→返回主界面→结束

2.5 错误推断法

2.5.1 含义

​ 通过经验推测系统可能出现的问题

2.5.2 使用场景

​ 当项目用例都执行完毕,切BUG修复完成,离上线还有一段时间,在这段时间中可使用错误推断法复测主要业务或测试未覆盖的功能。

2.5.3 思想

​ 根据经验列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷。

​ 一般情况下,程序在处理空格、空、边界值、超长字符串、全角字符串、0以及单引号情况下较容易出错。

2.5.4 案例

需求:查看年龄是否符合要求
要求:20-99之间的整数

错误推测法

2.6 正交排列法

2.6.1 定义

​ 正交排列法就是使用最小的测试过程集合获得最大的测试覆盖率。

2.6.2 使用场景

​ 当可能输入的数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

2.6.3 特点

​ 均匀分散,齐整可比。

2.6.4 正交表

  • 一种特制的表,一般正交表标记为: L n ( m k ) L_n(m^k) Ln(mk)
  • n表示行数
  • k表示列数
  • m表示列的取值个数
比如:$L_9(3^4)$有4个列每列有3个取值9为列的组合个数叫做4因素3水平

2.6.5 步骤

  • 1.明确需求
  • 2.画出正交表
    • 1)确定需求中的因素数(所有的输入)与对应的水平数(输入的取值)
    • 2)根据因素数与水平数选取正交表
    • 3)用需求中的文字代替正交表中的数字
  • 3.编写测试用例

2.6.6 案例

2.6.6.1 字符属性设
1.需求:设置控件属性
2.要求:1)窗体中有多个控件(字体、字符样式、颜色、字号)2)每个空间有多个取值字体: 仿宋、 楷体、 华文彩云字符样式: 粗体、 斜体、 下划线颜色: 红色、 绿色、 蓝色字号: 20号、 30号、 40号

字符属性设置
​ 正常情况下,所有的排列组合列举出来,一共是:3^4=81种;
​ 使用正交排列的话可以简化为: L 9 ( 3 4 ) L_9(3^4) L9(34)=9,即9行4因素3水平。
​ 具体的操作步骤如下:

  • 1.明确需求
字体: 仿宋、 楷体、 华文彩云
字符样式: 粗体、 斜体、 下划线
颜色: 红色、 绿色、 蓝色
字号: 20号、 30号、 40号
  • 2.画出正交表
    • 1)确定因素数为4(字体、字符样式、颜色、字号)与水平数为3(每个因素包含3中选项)
    • 2)选取正交表

在这里插入图片描述

  • 3)替换内容
    字符属性正交表
  • 3.编写测试用例
    字符属性测试用例
2.6.6.2 个人信息查询
1.需求:查询个人信息
2.要求:1)当姓名、身份证号码、手机号码都输入正确时,显示个人信息

查询个人信息
​ 正常情况下,所有的排列组合应为:2^3=9种;

​ 使用正交排列优化后,简化为: L 4 ( 2 3 ) L_4(2^3) L4(23)=4,即4行3因素2水平。

​ 具体的操作步骤如下:

  • 1.明确需求
    • 姓名、身份证号码、手机号输入正确,显示个人信息;
    • 姓名、身份证号码、手机号分为:输入、不输入,两种情况;
  • 2.画出正交表
    • 1)确定因素数为3(姓名、身份证号码、手机号码)与水平数为2(填写、不填写)
    • 2)选取正交表
      在这里插入图片描述
    • 3)替换内容
      个人信息正交表
  • 3.编写测试用例

个人信息测试用例


http://chatgpt.dhexx.cn/article/EdHl7Dmj.shtml

相关文章

测试用例,怎么写 ?

本文的测试用例主要针对功能测试。 软件测试中最重要的因素是设计和生成有效的测试用例。 穷举的测试是不可能的,合理的测试策略是通过使用特定的面向黑盒测试的测试用例设计方法,而后使用白盒测试方法对程序的逻辑结构进行检查以补充这些测试用例&…

测试:用例篇

上一章讲述的是测试的基本概念。在我们开始做了一段时间基础测试,熟悉了业务之后,往往会 分配来写测试用例,并且在日常测试中,有时也需要补充测试用例到现有的案例库中 在开始之前先讲讲测试中经典的测试方法:黑盒测试…

软件测试用例.范文,软件测试用例模板范文

软件测试用例模板范文 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 XX 系统系统 测试用例测试用例 XX 系统-测试用例 1 由安博测试空间技术中心由安博测试空间技术中心 http://ww…

路由器与交换机知识总

路由器与交换机知识总结 路由器(Router)是一种计算机网络设备,提供了路由与转发机制,可以决定数据包从源到目的所经过的路径,这个过程就叫做路由;将路由器输入端的数据包交移到目的路由器,这个…

【计算机网络】路由器与交换机

-计算机网络 路由器就是 路由器:寻址,转发(依靠 IP 地址),局域网内网的数据转发交换机:过滤,转发(依靠 MAC 地址),连接局域网和外网 相信有很多人在学习网络…

OSI七层模型的各个功能?路由器与交换机的区别?冲突域,广播域

一、OSI总结 二、路由器与交换机的区别 2.1 外观 路由器和交换机的外观长得一样一样的,他们有个超级明显的区别,交换机的各个接口上标注的序列数字是有规律的,接口颜色也是一致的。 在路由器的接口上我们可以看到标注的数字是有规律的,标注为wan或者i…

第6节 构建简单局域网并实现远程管理路由器与交换机——基于PacketTracer仿真

1实验目标 在PacketTracer平台上构建以下两个局域网,并使用路由器相连。路由器,连接不同的局域网,其上的各个端口需要属于不同网段。交换机,连接同一网段内的设备。为各个设备配置IP、子网掩码、网关等。实现各个设备间能互相pin…

认识路由器与交换机,在常见的企业组网中起什么样的作用呢?

作者:一天,公众号:网络之路博客(ID:NetworkBlog)。让你的网络之路不在孤单,一起学习,一起成长。 前言 从这篇开始正式进入路由交换网络的讲解,这一篇,不讲解…

3.路由器与交换机的管理

路由器与交换机的管理 (1)通过带外方式对设备进行管理 (2)通过Telnet对设备进行远程管理 (3)通过Web对设备进行远程管理 (4)通过SNMP管理工作站对设备进行远程管理 实验1 交换机基…

路由器与交换机基本原理

路由器工作原理 定义 路由器是一种实现网络互联的设备,作为三层网络层设备提供路由与转发两种机制,可以决定数据包从源端到目的端的经过路径(路由),以及将路由器输入端的数据包送到适当的路由器输出端(内…

路由器与交换机的作用

路由器与交换机的作用(浅析) 拿到这个题目,不用想,先百度。 首先是路由器 说实话,看不懂,不过我看到了一个眼熟的东西(TCP/IP),如果我没有记错的话,这个名词我在写post和get传参作…

路由器与交换机的区别是什么

路由器与交换机的主要区别体现在以下几个方面: (1)工作层次不同 (2)数据转发所依据的对象不同 交换机是利用物理地址或者说mac地址来确定转发数据的目的地址。 而路由器则是利用不同网络的id号(即iP地址…

eNSP实验记录(一):路由器与交换机

eNSP实验记录(一):路由器与交换机 本次实验拓扑图如下: 实验目的:探究路由器与交换机之间的连接及设置方法,以及Ping通4台PC端!! 一:配置各端口的IP (一&…

路由器与交换机有什么区别

路由器与交换机的主要区别体现在以下几个方面: (1)工作层次不同 (2)数据转发所依据的对象不同 交换机是利用物理地址或者说mac地址来确定转发数据的目的地址。 而路由器则是利用不同网络的id号(即iP地址…

路由器与交换机的区别(基础知识)

文章目录 交换机路由器路由器和交换机的区别(1)工作层次不同(2)数据转发所依据的对象不同(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域(4&…

程序员职业划分

一、目的: 1、知道程序员很多的职业,但是想了解一下 二、参考 1、带你了解IT互联网行业程序员岗位有些什么类型? 带你了解IT互联网行业程序员岗位有些什么类型?_weixin_33709219的博客-CSDN博客 1、程序员的岗位,每…

Java程序员职业发展规划和方向有哪些?

Java程序员职业发展规划和方向有哪些?Java程序员需要不断学习,要深入了解Java底层和Java类库,JVM和JDK相关的内容,还要了解大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等技术,当精通专业技能后会有很…

关于程序员的职业规划分析

对于绝大部分从事互联网、程序员的群体来说,看中的不仅是一个白领工作,更重要的是他高薪资的待遇,就当前来说,IT行业发展速度突飞猛进,就业方向和前景更是百家争鸣,如果对自己没有一个明确的目标而漫无目的,那只会殆误时机,俗话说,欲行千里,先立其志。因此,要为自己拟定…

程序员常见的职业病有哪些?

程序员是一个久坐的行业,基本上一天有十几个小时需要坐在电脑旁边,随之而来会给我们这些广大的程序员朋友们身体健康带来了很大的隐患。作为一名优秀的程序员,爱护自己的身体也是非常重要的,毕竟身体是革命的本钱嘛。今天主要给大…

Java程序员职业发展与规划:我要做一辈子的Java程序员吗?

Java作为备受程序员喜爱的编程语言,在各行各业都被广泛使用,导致当下越来越来多的人想通过学习Java从而找到一份高薪可以改变自己职业前途的工作。那么,对于初级Java程序员来说,Java的职业发展规划和方向有哪些? 其实Java程序员需要不断学习,要深入了解Java底层和Java类…