软件测试用例分析和用例设计

article/2025/11/9 13:15:36

测试用例的概念

测试用例(test case),也叫测试案例,是为了达到一个最佳的测试效果或者高效的发现软件中的隐藏错误(缺陷)而精心设计的包括场景步骤和数据。
通用的定义:是关于一个功能验证时候的步骤和数据的文档,她描述了输入参数、条件和配置、预期的输出结果,用以验证软件的某个功能是否正确的文档。

测试用例的重要性

  • 构成测试设计和执行和执行测试过程的基础
  • 测试用例的复用性使得测试活动更加容易展开
  • 软件质量的度量依据,测试实施的质量保证
  • 基于需求的覆盖,保证测试需求的覆盖率100%。

测试用例的作用

  • 有效性:测试用例是测试人员测试过程中的重要依据。
  • 可复用性:良好的测试用例具有重复使用的功能,使得测试过程
    事半功倍,提高测试效率。
  • 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用
    例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
  • 可评估性:从测试的项目管理角度来说,测试用例的通过率是检
    验代码质量的保证。
  • 可管理性:测试用例也可以作为检验测试人员进度、工作量以及
    跟踪/管理测试人员的工作效率的标准。
    测试用例模板
    在这里插入图片描述
    测试用例的设计方法
     黑盒测试方法
     白盒测试方法
     灰盒测试方法
     附:业务流测试、本地化测试、单元测试、静态测试等

黑盒测试常见方法

黑盒测试概述
把被测对象看作是一个黑盒子,我们不关心程序内部的实现结构和处理过程,测试者仅需要根据需求给出输入(测试用例中测试步骤和数据),拿着实际运行输出(实际结果)与预期(来自需求的)是否一致,如果一致说明该用例对应的功能点是正常的,否则是错的
黑盒测试又成为功能测试,也叫数据驱动测试。

  • 设计功能需求输入条件集合,实现对需求的覆盖(测试需求–来自用户需求、业务需求、系统需求等)
  • 在软件的接口处进行的测试(GUI接口),主要针对软件界面和功能测试
  • 用户的角度,针对输入和输出的一致性进行验证的过程

黑盒测试的作用

  • 功能实现不正确或者功能遗漏(测试依据是需求,而在测试执行的时候才会有被测软件出现)
  • 界面错误(黑盒测试是在GUI界面上进行输入、输出的验证工作)
  • 输入和输出错误(比如需求重要某文本框可以输入11位的数字,但是软件中只能输入10位)
  • 数据库错误或者外部访问错误
  • 初始化或终止错误

黑盒测试的方法
在这里插入图片描述

等价类划分方法

1、等价类的概率
依据需求将程序的输入域划分为若干个部分,从每一个部分选取有限的几个代表性数据作为测试用例的数据,这几个代表性数据等同于该部分的其他数据。
等价类就细分为有效的等价类和无效的等价类:

  • 有效等价类:需求中规定的符合需求的、有意义的、合理的数据的集合
  • 需求中定义的不合理的、无意义的,或者隐藏的无意义的数据的集合

2、等价类的划分原则

  • **按照区间划分:如果输入的条件是一个范围或者是值的个数情况,可以划分出1个有效类和两个无效等价类

  • 按照数值划分:如果给定有限的N个值,可以划分N个有效等价类和一个无效等价类

  • 按照数值的结合划分:如果给定的是输入值得集合,划分一个有效等价类和1个无效等价类

  • 按照设定规则进行划分:在输入数据遵守规则下,可以划分1个有效等价类和多个无效等价类

  • 如果数据是布尔值:则可以划分出一个无效一个有效**

  • 例:11位的数字组成的手机号码

  • 11位数字,1开头

  • 11位数字,非1开头

  • 10位数字,1开头

  • 10位数字,非1开头

  • 11位非数字,1开头

  • 11位非数字,非1开头

  • 10位非数字,1开头

  • 10位非数字,非1开头

等价类划分的 步骤
确定等价类后,建立等价类表,列出所有的等价类

输入条件有效等价类编号无效等价类编号
11位11位1非11位7
数字数字2字母8
数字数字2特殊字符9
数字数字2汉字10
手机号码第一位是13第一位非111
手机号码第二位不能为14第二位能为112
手机号码第二位不能为25第二位能为213
手机号码第二位不能为06第二位能为14

从已列出的等价类表中按以下原则设计测试用例数据:(补全)

  • 为每个等价类规定一个唯一的编号;
  • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有有效等价类均被测试用例所覆盖;
  • 设计一个新的测试用例,使其只覆盖一个无效等价类,重复这一步使所有无效等价类均被覆盖。
    测试用例数据                                            覆盖等价类
    18621984010                                         1、2、3、4、5、6
    1862198401                                           7、2、3、4、5、6
    18a21984010                                         8、1、3、4、5、6

边界值分析法

1、边界值分析简介:

  • 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
  • 通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
  • 所谓边界,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
    2、边界值分析的步骤:
  • 首先确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。
  • 然后选取边界数据做为测试数据。测试数据应该刚好等于、刚刚小于和刚刚大于边界值,而不是取等价类中的典型值或任意值作为测试数据。
    3、边界值分析原则:
  • 1、如果输入条件规定了值的范围,则取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 例:输入值的范围是 -1.0~1.0,则可选取-1.0、 1.0、 -1.1和1.1作为输入数据。
  • 2、如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
    例:一个输入文件应包括1~255个记录,则需设计测试用例测试1、255、0、256。
  • 3、将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。例:一程序属于情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”,则需设计测试用例测试1和4,以及0和5。
  • 4、如果程序的输入或输出是一个有序序列(例如顺序的文件、线性列表或表格),则应特别注意该序列的第一个和最后一个元素。
  • 5、分析规格说明,找出其他可能的边界条件。

在这里插入图片描述

因果图方法

产生背景:等价类法、边界值法分析着重考虑输入条件,未考虑输入条件之间的关系。
含义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,该方法充分考虑了输入情
况的各种组合及输入条件之间的相互制约关系。
适用范围:适合检查程序输入条件的各种组合情况。
因果图的使用步骤

  • 分析软件规格说明描述:原因、结果、标识符
  • 分析软件规格说明描述中的语义:找出逻辑关系
  • 由于语法或环境限制,有些原因与原因之间,原因与结果之间
    的组合情况不可能出现,添加必要的约束条件
  • 把因果图转换成判定表
  • 把判定表的每一列拿出来作为依据,设计测试用例

在这里插入图片描述
在这里插入图片描述
案例分析
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
找出原因和结果
原因:
C1——第一列字符是A
C2——第一列字符是B
C3——第二列字符是一数字
结果:
E1——给出信息L
E2——修改文件
E3——给出信息M
在这里插入图片描述
在这里插入图片描述

因果图优点:
1、因果图能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例,防止遗漏。
2、因果图分析还能为我们指出,软件规格说明描述中存在的问题。
因果图缺点:
1、输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到。
2、加入N个条件,每个条件都有真和假两种取值,这就大大增加了测试用例的数目,不便于维护。

场景法

概念:场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
用例场景:
是通过描述流经用例路径来确定的过程。这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流。
基本流:采用直黑线表示,是经过用例的最简单的路径。(无任何错,程序从开始直到执行到结束)
备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,
也可以起源于另一个备选流,或终止用例,不在加入基本流中。(各种错误情况)
在这里插入图片描述
场景法使用步骤

  • 确定基本流和备选流
  • 根据基本流和备用流确定场景
  • 对每一个场景生成测试用例
  • 去重复之后设计测试数据
    案例分析:
    用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用账号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
    第一步:确定基本流和备选流
    基本流:进入在线购物网站—>选择物品—>登录账号—>付款—>生成订单;
    备选流1:账户不存在;
    备选流2:账户密码错误;
    备选流3:用户账户余额不足;
    备选流4:用户账户没钱。
    第二步:根据基本流和备用流确定场景
    场景1(成功购物):基本流;
    场景2(账户不存在):基本流 备选流1;
    场景3(账户密码错误):基本流 备选流2;
    场景4(账户余额不足):基本流 备选流3;
    场景5(账户没钱):基本流 备选流4。
    在这里插入图片描述
    第四步:设计测试用例
    在这里插入图片描述

错误推导法

含义:
错误推测法是一种基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
基本思想:
错误推测方法的基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
例:
 在单元测试时曾列出的许多在模块中常见的错误
 以前产品测试中曾经发现的错误
 输入数据和输出数据为0的情况
 输入表格为空格或输入表格只有一行的情况

探索性测试

探索性测试是一种测试思维技术:
➢ 探索性测试(ET)是敏捷世界里的一种重要测试方法,它是一种经过深思熟虑的测试方式,没有测试脚本,可
以使你的测试超出各种明显已经测试过的场景;
➢ 探索性测试的最大特色是在对测试对象进行测试的同时学习测试对象并设计测试,在测试过程中运用获得的关于测试对象的信息设计新的更好的测试,典型过程如下图:
在这里插入图片描述
一边熟悉学习测试对象,针对性的设计更好的测试用例

测试方法的选择
一个好的测试策略和测试方法将给整个测试工作带来事半功倍的效果,以下是各种测试方法选择的
综合策略,可在实际应用过程中参考:

  1. 首先进行等价类划分,包括输入条件和输出条件等价划分,将无限测试变成有限测试,这是减少工作量和提高工作效率的最有效方法;
  2. 在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强;
  3. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的用例;
  4. 如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用因果图;
  5. 如要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试;
  6. 使用错误推测技术增加更多的测试用例。

测试用例设计

在这里插入图片描述
为什么设计测试用例?
是测试工作的指导
是软件测试必须遵守的准则
更是软件测试质量稳定的根本保障

测试用例原则:

  • 基于测试需求
  • 基于测试方法
  • 兼顾测试充分性和效率
  • 测试用例代表性
  • 测试结果的可判定性
  • 测试执行可再现性

测试用例的内容

  1. 正确性测试
  2. 容错性(健壮性)测试
  3. 完整(安全)性测试
  4. 接口测试
  5. 数据库测试
  6. 边界值测试
  7. 压力测试
  8. 等价划分测试
  9. 错误推测
  10. 效率
  11. 可理解(操作)性测试
  12. 可移植性测试
  13. 回归测试
  14. 比较测试
    测试用例的特点
    测试用例的组成要素基本相同:
    • 一般包括测试用例编号、测试用例目的、测试用例前置条件、操作步骤、预期结果等内容,根据各个行业及公司的要求,内容有增有减。
    测试用例的设计方法基本一致:
    • 大多数白盒测试用例设计包含了路径覆盖或是最基本的语句覆盖法;而大多数黑盒测试用例均包含到边界值、等价类、场景法的相关内容(经常潜意识使用)。
    测试用例的要素

在这里插入图片描述
测试用例的word模板
在这里插入图片描述
测试用例注意事项

  • 操作是否符合用户习惯
  • 各种选项可用或禁用是否合理
  • 某些相似操作能否成通用模块

测试用例设计步骤
测试需求:
电话:长度必须为11位,位数不符合时提示“电话必须为11位”。不能为空,否则提示“电话不能为空”。必须由数字组成,第一位必须为1,第二位可以为3、4、5、7、8,后面九位任意,输入错误时提示“手机号不合法, 请重新输入”。

测试用例设计步骤
Step1 需求分析:
有效等价类:
长度必须是11位:
不能为空:
必须由数字组成:
第一位必须为1:
第二位可以为3、4、5、7、8

无效等价类:
长度小于11位,
长度大于11位
为空
由非数字(汉字、字母、特殊字符)
第一位不为1(0,2)
第二位是0、1、2、6、9
跟步骤写测试用例表

测试用例评审

测试用例的评审能够使用例的结构更清晰,覆盖的用户场景更全面;对于测试工程师来说也是一个快速提高用例设计能力的过程。

参与评审人员:

  • 部门评审,测试部门全体成员参与的评审。
  • 公司评审,这里包括了项目经理、需求分析人员、架构设计人员、运维人员、开发人员和测试人员。
  • 客户评审,包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见。

在这里插入图片描述

测试用例误区

  • 能发现到目前为止没有发现的缺陷的用例是好的用例
  • 测试输入数据设计方法等同于测试用例设计方法
  • 强调测试用例设计得越详细越好
  • 追求测试用例设计“一步到位”
  • 测试用例不应该包含实际数据
  • 让测试新人设计测试用例

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

相关文章

软件测试用例设计练习

1、完成163邮箱注册用例的编写 邮箱地址:6~18个字符,可使用字母、数字、下划线,需要以字母开头 密码:8~16个字符,大、小写字母、数字、标点符号,3种或以上组合 2、需求:输入三条边&#xff…

软件测试用例详细规范

软件测试用例详细规范 为什么编写测试用例详细测试用例模板测试用例字段介绍用例操作步骤用例预期结果: 测试用例录入原则:测试用例设计步骤测试用例案例:测试用例校验点: 为什么编写测试用例 我也不知道,自己百度 详…

软件测试——测试用例设计方法

1、测试用例定义 测试用例又叫test case,是为某个特殊目标而编制的一组测试输入,执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 2、测试用例的特性 有效性:测试用例能够被使用,且被不同人…

接口测试用例怎么写?

测试流程 需求规格说明书--测试计划--测试用例--用例评审--开发 接口文档--接口分析--接口用例设计--评审--接口测试执行(关注数据库)--前后端对接 系统界面测试--测试结束 如何设计接口测试用例? 1.接口正常调用,先要能跑通…

软件测试 - 用例篇

回顾上一篇博客主要内容:软件测试 - 基础篇 1: 软件测试的流程是什么? 需求分析,测试计划,测试设计/测试开发,测试执行,测试报告 需求分析 分析需求,验证需求的正确性和合理性,从需求中提取出测试项 测试计划 要考虑测试人数,测试环境,测试时间,测试设备等 测试设计/测试开发 …

软件测试用例优先级,软件测试用例的优先级划分方法

随着互联网的不断发展,程序员对于软件品质以及运行状况等参数关注程度也在提高,而今天我们就一起来了解一下,在划分测试用例优先级的时候都有哪些划分方法可以使用。 没有软件系统是完美的,任何系统都有BUGS。但是每一次得迭代都有…

软件测试:测试用例

一、通用测试用例八要素  1、用例编号;  2、测试项目;  3、测试标题;  4、重要级别;  5、预置条件;  6、测试输入;  7、操作步骤;  8、预期输出 二、具体分析通用测试用例八要…

【软件测试】测试用例的设计方法

文章目录 1. 测试用例的概念2. 设计测试用例的好处3. 基于需求设计测试用例3.1 功能性需求3.2 非功能性需求 4. 设计测试用例的具体方法4.1 等价类4.2 边界值4.3 错误猜测法4.4 场景设计法4.5 因果图法4.6 正交法 5. 测试用例的粒度 1. 测试用例的概念 测试用例就是测试人员向…

如何写好测试用例

目录 前言 为什么要写用例? 那怎么写好测试用例呢? 那么我们日常测试中,如果用xmind梳理用例结构注意哪些点呢? 结语 前言 经历过校招或社招的测试同学,都会被问到测试用例的设计、使用方法,以及用例的…

软件测试——测试用例设计测试分类详解

文章目录 1. 测试用例的基本要素2. 测试用例的设计方法2.1 基于需求设计测试用例2.11 功能性需求测试分析2.12 非功能性需求测试分析 2.2 具体的设计测试用例的方法等价类(非常重要)边界值错误猜测法场景法因果图法正交法 3. 测试分类3.1 按照测试对象划…

软件测试-如何写好测试用例

软件测试-如何写好测试用例 一、课程介绍前置知识点 二、测试用例与编写流程介绍测试用例介绍需求分析与测试点编写测试用例编写注意 三、 测试用例编写,评审与管理测试用例编写方法3-2 慕课网注册功能测试用例编写 (13:25)3-3 慕课网搜索,APP下载功能测…

测试用例应该怎么写

一、背景 有些测试同学,写测试用例的时候,直接就是将需求文档上的内容抄一遍,转换成测试用例的格式。没有加入任何自己的思考和理解,没有融入任何测试方法论。测试完全依赖于需求文档的质量,依赖于产品经理保姆级的服…

【软件测试】测试用例设计

目录 🌷1. 测试用例的基本要素 🌷2. 测试用例的设计方法 🌳2.1 基于需求进行测试用例的设计 ⭐️(1)功能需求测试分析 ⭐️(2)非功能需求测试分析 🌳2.2 具体的设计方法 &#…

软件测试用例设计规范

文章目录 1 目的2 规范内容2.1 设计原则2.1.1 可执行性2.1.2 可维护性2.1.3 可代表性2.1.4 可判定性 2.2 必要元素2.2.1 用例包和用例对象名命2.2.2 测试目的2.2.3 测试优先级2.2.4 测试环境2.2.5 前提条件2.2.6 后置关联2.2.7 用例状态 2.3 综合策略2.3.1 必要的边界值分析2.3…

软件测试——测试用例

目录 1.测试用例的基本要素 2.测试用例的设计方法 2.1基于需求的设计方法(Requirements-Based Testing,RBT) 2.2等价类划分法 2.3边界分析法 2.4因果图 2.5正交排列 2.6场景设计法 2.7错误猜测法…

软件测试(测试用例)—写用例无压力

软件测试——用例篇 文章目录 软件测试——用例篇一、概念二、测试用例总体设计方案1、等价类 ☆2、边界值 ☆2.1 边界值法设计用例步骤 3、判定表 ☆4、因果图5、场景设计法 ☆6、错误猜测法7、正交排列三、实际操作中注意的点3.1测试用例的注意点 四、缺陷介绍1、缺陷的判定标…

软件测试用例

测试用例 为什么要写测试用例测试用例的基本要素QQ登录的测试用例功能正常时异常时 界面易用性可移植性性能 具体的设计测试用例的方法等价类边界值错误猜测法场景设计法因果图法正交排列 测试用例的有效性 为什么要写测试用例 测试用例是测试执行的依据测试用例可以复用&…

软件测试用例概述

软件测试用例概述 知识点 什么是测试用例如何获取需求的测试点测试用例的模板测试用例的优先级测试用例的设计原则测试用例的维护 简介 软件测试是软件质量管理最有效的方法之一,同时也是耗时最多的一项工作,基于时间因素的考虑,软件测试…

测试用例要如何写

1、测试点与测试用例 测试点不等于测试用例,这是我们首先需要认识到的。 问题1:这些测试点在内容上有重复,存在冗余。 问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。 问题3:总是在搭相似…

【软件测试】(四)测试用例怎么写

文章目录 测试用例基本要素1. 评价好的测试用例的标准2. 根据需求写测试用例3. 测试用例的设计方法3.1 基于需求进行测试用例的设计3.2 具体的设计用例的方法3.2.1 等价类3.2.2 边界值3.2.3 错误猜测法3.2.4 场景设计法3.2.5 因果图3.2.6 正交设计法 测试用例基本要素 之前文章…