软件测试用例设计方法(一)

article/2025/9/24 19:53:12

目录

    • 软件测试用例设计之等价类划分法
      • 一、等价类划分法的定义
      • 二、等价类划分法的术语
      • 三、等价类划分原则
      • 四、实例演示(三角形问题和档案管理系统问题)
    • 软件测试用例之边界值分析法
      • 一、边界值分析法定义
      • 二、等价类划分法和边界值分析法的区别
      • 三、内部边界值
      • 四、设计测试用例的原则
      • 五、边界值分析法实例(三角形问题)
    • 软件测试用例设计之错误推测法
      • 一、错误推测法定义
      • 二、错误推测法基本思想
      • 三、错误推测法实例
      • 四、错误推测法的优势和不足
    • 软件测试用例设计之判定表驱动法
      • 一、判定表的定义
      • 二、判定表的组成部分
      • 三、判定表驱动法设计步骤
      • 四、实例
      • 五、因果图和判定表的区别
      • 六、判定表驱动法的使用条件
      • 七、判定表驱动法的优点
      • 八、判定表驱动法的缺点
    • 软件测试用例设计之因果图法
      • 一、因果图法定义
      • 二、因果图常用符号
      • 三、因果图的四种关系
      • 四、因果图约束条件
      • 五、因果图法设计步骤
      • 六、实例

软件测试用例设计之等价类划分法

一、等价类划分法的定义

把程序的输入域和输出域划分成若干部分,然后从各个部分中选取若干代表性数据作为测试用例。这些数据在测试中的作用等价于其所属部分的其他值。

二、等价类划分法的术语

等价类:输入域的各个子集,该子集中所有数据在测试中的作用都是等效的。从等价类中选取个别数据用于测试的效果和该子集中所有数据用于测试的效果一样。
有效等价类:对于程序的规格说明来说合理的,有意义的输入数据集合,有效等价类可检验程序是否实现了规格说明书中所规定的功能和性能。
无效等价类:对于程序的规格说明来说不合理的,没有意义的输入数据集合。

三、等价类划分原则

  1. 确定了输入条件取值范围或值的个数,可以划分出1个有效等价类和2个无效等价类。
    例如:输入学生成绩,输入域为[0,100],有效等价类为[0,100],无效等价类为(-∞,0)和(100,+∞)
  2. 输入条件规定了输入值的集合,例如条件中规定了“必须如何”的绝对条件,可以确定1个有效等价类和1个对立无效等价类。
    例如:规定输入为正整数,有效等价类为所有正整数,无效等价类为所有非正整数
  3. 输入条件的数据类型为布尔类型,可以确定1个有效等价类和1个无效等价类,有效等价类为true,无效等价类为false。
  4. 规定了输入数据的一组值,假定n个,程序要对这n组值分别处理,可以划分出n个有效等价类和1个无效等价类。
    例如:规定输入数据只能为中文,英文或阿拉伯文,则这三种分别为3个有效等价类,除这3种以外的任何字符集合为1个无效等价类
  5. 在规定了输入数据必须遵守规则的情况下,可划分出1个遵守规则的有效等价类和若干个从不同角度违反规则的无效等价类。
  6. 若已划分出的等价类中各元素在程序中的处理方式不同,则应再将该等价类进一步划分为更小的等价类。

四、实例演示(三角形问题和档案管理系统问题)

实例一:某程序规定,输入三个整数a,b,c分别作为三边的边长构成三角形,通过程序判定所构成的三角形的类型,例如,三角形为一般三角形,等腰三角形,等边三角形。
首先通过分析输入域和输出域,划分出等价类。
有效等价类:
根据输入数据得出条件:①三个数②整数③正数④非0数
根据输出数据得出条件:⑤等边⑥等腰⑦两边之和大于第三边
在这里插入图片描述
在这里插入图片描述

实例二:假设有一个档案管理系统,要求用户输入以年月表示的日期,假定日期限定1990年1月~2049年12月,并确定日期由6位数字字符组成,前4位表示年,后2位表示月,用等价类划分法设计测试用例,测试日期检查功能。
有效等价类:①6位数字字符②年范围[1990,2049]③月范围[1,12]
在这里插入图片描述

软件测试用例之边界值分析法

一、边界值分析法定义

边界值分析法通常作为对等价类划分法的补充,其测试数据来自于等价类的边界。边界值分析法是对输入或输出的边界值进行测试的黑盒测试方法。

二、等价类划分法和边界值分析法的区别

1.边界值分析法首先确定边界,然后选取大于,刚好等于,小于边界值的数据进行测试。而不是选取等价类中的典型值或随机值进行测试。
2.边界值分析法不止要考虑输入的边界,也要考虑输出的边界。

三、内部边界值

在设计测试用例过程中,某些边界值不需要呈现给客户,或者客户很难注意到,但是确实属于检验范畴,称为内部边界值条件或者子边界值条件。
内部边界值条件主要有以下几种:数值的边界值检验,字符的边界值检验和其他。

四、设计测试用例的原则

1. 如果输入条件规定了边界值,就应该取刚达到这个范围的值和刚超过这个范围的值作为边界值测试数据。
例如:某程序规格说明中规定:“重量在10公斤到50公斤范围内的邮件,其邮费计算公式为…”,这里应该取重量为10和50,还应该取9.99,10.01,49.99,50.01作为边界值测试数据。
2. 如果输入条件规定了值的个数,就应该取比最大个数多1,最大个数,最小个数,比最小个数少1作为边界值测试数据。
例如:某程序规格说明书中规定:“一个输入文件应包括1~255个记录”,这里应该取0,1,255,256作为边界值测试数据。
3. 应设计测试用例使输出达到边界值及其左右的值。
例如某程序规定:“每次最少显示1条,最多显示4条”,就应该取使输出达到0条,1条,4条,5条作为边界值测试数据。
4. 如果程序规格说明书给出的输出域或者输入域是一个有序集合,则应该选取该集合的第一个数据和最后一个数据作为边界值测试数据。
5. 如果程序中使用了一个内部数据结构,则应该选择这个内部数据结构边界上的值作为边界值测试数据。
6. 分析规格说明书,找可能的边界值测试条件。

五、边界值分析法实例(三角形问题)

假设规定输入a,b,c三条边的数值范围为[50,100]
则边界值分析法得出补充测试用例如下
在这里插入图片描述

软件测试用例设计之错误推测法

一、错误推测法定义

基于测试人员的直觉和经验推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例。

二、错误推测法基本思想

列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些设计测试用例。
例如输入数据和输出数据为0的情况,输入空格的情况,输入只有1行的情况。可根据这些设计测试用例。

三、错误推测法实例

  • 实例之在日历上添加提醒

测试点:
(1)提交操作时限
(2)未到达的日期是否可以选择
(3)前后时间限制
(4)系统时间的调整

  • 实例之登录页面密码安全性问题

测试点:
(1)复制黏贴密码,密码是否明文显示
(2)复制密码的时候能不能复制出来
(3)配置文件中能否看到密码

  • 实例之输入数组进行排序

测试点:
(1)输入空数组
(2)输入含1个元素的数组
(3)输入的数组中已按顺序排序
(4)输入的数组中已按逆序排序
(5)输入数组中的部分或全部元素相同

  • 实例之手机通话功能

测试点:
(1)无SIM卡时进行呼叫(紧急呼叫除外)
(2)插入已经欠费的SIM卡进行呼叫
(3)射频器件损坏或信号区域外插入有效SIM卡进行呼出
(4)网络正常,插入SIM卡也正常,呼出无效号码
(5)网络正常,插入有效SIM卡,使用快速拨号功能呼出设置无效号码的数字

四、错误推测法的优势和不足

优点:测试人员能够快速且容易地切入,体会到程序的易用程度
缺点:覆盖面不广,丢失大量测试点,该测试行为带有一定主观性,如果外部特性本身设计有问题或者规格说明错误,该方法无法发现
错误推测法只能作为一种辅助的手段,不是系统的测试方法。

软件测试用例设计之判定表驱动法

一、判定表的定义

判定表适用于多逻辑条件下执行多操作的情况。在所有的黑盒测试方法中,判定表驱动法是最严格,最具有逻辑性的测试方法。

二、判定表的组成部分

条件桩:根据题目列出的所有条件。(通常认为条件的次序无关紧要)
动作桩:根据题目列出的所有操作。(通常认为条件的次序无关紧要)
条件项:对各个条件桩的取值
动作项:对各个动作桩的取值
规则:每一组条件项和动作项组合形成一条规则。
合并:对比多条动作项相同,条件项相似的规则,如果发现这些规则里某个条件桩或者某几个条件桩不管取什么值都不影响结果,则这些规则就可以合并。
如下面的例子,初始判定表的规则3,5,6,7就可以合并成最终判定表的规则2,即表示不管条件桩①②满不满足,只要条件桩③满足,动作桩④就满足。最终判定表的规则1和规则2也可以通过读题直接得出。
在判定表中用“-”表示结果与该条件桩的取值无关。

三、判定表驱动法设计步骤

  • 根据软件规格说明书,列出所有条件桩和动作桩
  • 确定规则的个数,如果有n个条件桩,每个条件桩有2个取值(0,1),那么初始判定表中就有2的n次方条规则。
  • 填入条件项。
  • 填入动作项,得到初始判定表。
  • 合并相似规则或相同动作。

四、实例

对于功率大于50马力的机器且维修记录不全或者已运行10年以上的机器,应给与优先维修处理,请建立判定表。
列出条件桩:
①功率大于50马力
②维修记录不全
③已运行10年以上
列出动作桩:
④优先维修处理
⑤正常维修处理
初始判定表:
在这里插入图片描述
最终判定表:
在这里插入图片描述

五、因果图和判定表的区别

判定表和因果图都适用于多逻辑条件下多动作的测试对象,但判定表并非因果图的辅助,因果图用于逻辑比较复杂的测试对象,可以先画出因果图,然后得出判定表。对于逻辑比较简单的测试对象,可以直接画出判定表。

六、判定表驱动法的使用条件

  • 规格说明以判定表形式给出,或者很容易得出判定表。
  • 条件的排列顺序不影响执行哪些操作。
  • 规则的排列顺序不影响执行哪些操作。
  • 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验其他规则。
  • 如果某一规则的得到满足需执行多个操作,这些操作的执行顺序无关紧要。

注:这5个条件的目的是为了使操作的执行完全依赖于条件的组合,就算不满足这些条件,也可以使用判定表驱动法,只不过需要补充用例。

七、判定表驱动法的优点

  • 全面地列出所有可能性,避免遗漏
  • 是最具有逻辑性最严格的测试用例设计方法,适用于复杂逻辑下多输入输出的情况。

八、判定表驱动法的缺点

不能表达重复执行的动作,例如循环结构。

软件测试用例设计之因果图法

一、因果图法定义

因果图法是利用图解法分析多个输入条件组合情况,考虑输入条件之间的约束关系,从而设计测试用例的方法。

二、因果图常用符号

Ci:原因
Ei:结果

注:其中i取0表示状态不出现,i取1表示状态出现,若有多状态可取大于1的值。

三、因果图的四种关系

恒等关系,若C1发生,则E1发生,否则E1不发生。
在这里插入图片描述
非,若C1发生,则E1不发生。
在这里插入图片描述
或,若C1,C2,C3有1个发生,则E1发生,只有一个都不发生,则E1不发生。
在这里插入图片描述
且,若C1,C2,C3都发生,则E1发生,只要有1个不发生,E1都不发生。
在这里插入图片描述

四、因果图约束条件

输入条件互相之间的约束:

  • E互斥:a,b不会同时发生,最多有1个发生,比如性别为男和女,只能选1个
  • I包含:a,b,c中至少有1个发生
  • O唯一:a,b中有且仅有1个发生,比如性别为男和女,只能选一个
  • R要求:a,b中当a出现时,b也必须出现。

输出条件互相之间的约束:

  • M强制:a发生时,b不可能发生,a不发生时,b随意。

五、因果图法设计步骤

(1)提取因果关系,赋予标志符:从软件规格说明书上找出所有输入条件和输出结果,并用CI和EI分别表示。
(2)提取因果关系,表示因果图:分析软件规格说明书中的逻辑,找出原因与结果之间,原因与原因之间的关系,并画出因果图。
(3)标明约束条件:由于环境关系,有些原因和原因,原因和结果之间的组合情况不可能出现,用一些记号标明约束条件。
(4)把因果图转换成判定表。
(5)根据判定表设计测试用例。

六、实例

某软件规格说明书包含这样的要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件修改。若第一个字符不是#或*,给出信息N,若第二个字符不是数字,给出信息M。
输入条件:
C1:第一个字符是#
C2:第一个字符是*
C3:第二个字符是一个数字
输出条件:
E1:给出信息N
E2:允许修改
E3:给出信息M
画出因果图,图中⑩表示一种中间状态,即表示C1和C2形成的一种结果(输入的第一个字符是#或*)
在这里插入图片描述
判定表:
在这里插入图片描述


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

相关文章

测试用例方法-判定表法

判定表法案例 若用户欠费或关机,则不允许主被叫 等价类划分法和边界值分析法都是着重考虑单个输入的输入条件,但是没有考虑输入条件的各种组合,输入条件与输出条件之间的相互制约关系。所以要使用判定表法才能解决上述案例编写测试用例的过…

编写测试用例方法之错误推测法

今天我们再来介绍另外一个编写测试用例的方法:错误推测法。话不多说,开始整干货,老规矩,首先全图镇楼。 错误推测法其实它不同于等价类划分法或者边界值分析法,它是对有效等价类和边界值分析法的一个补充。因为错误推测…

【测试】编写测试用例的常用方法

文章目录 1)等价类划分法1.1 什么是等价类有效等价类:无效等价类: 1.2 划分标准1.3 划分方法1、确立等价类2、转化为测试用例 1.4 实例:三角形问题1.4.1 分析对输入条件的要求(显性和隐性)1.4.2 列出等价类…

编写测试用例的方法

编写测试用例的方法 一、等价类划分法(重点)1、应用场景:多用于输入框。2、概念:3、等价类:4、示例: 二、边界值法(重点)三、场景法(重点)1、概念&#xff1a…

编写测试用例的七种方法

1 测试用例的概念 测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素 2 常见编写测试用例的七种方法 基于需求的设计方法 等价类 边界值 因果图 场景设计法 错误猜测法 3 基于需…

【路径规划】(4) 蚁群算法,附python完整代码

大家好,今天和各位分享一下蚁群算法,并基于 tkinter 完成一个旅行商问题。完整代码可以从我的 GitHub 中获得: https://github.com/LiSir-HIT/Mathematical-Programming/tree/main/Path%20Planning 1. 算法介绍 蚁群算法是由 Mr.Dorigo 博士…

Python编程实现蚁群算法详解

这篇文章主要介绍了Python编程实现蚁群算法详解,涉及蚂蚁算法的简介,主要原理及公式,以及Python中的实现代码,具有一定参考价值,需要的朋友可以了解下 简介 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco…

智能优化算法:蝙蝠算法-附代码

智能优化算法:蝙蝠算法-附代码 文章目录 智能优化算法:蝙蝠算法-附代码1.算法原理2.算法流程3.算法结果4.参考文献5.MATLAB代码6.python代码 摘要:蝙蝠算法(Bat Algorithm,BA)[1] 是受蝙蝠回声定位捕食行为…

蚁群算法介绍(python)

蚁群算法 什么是蚁群算法 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是仿照蚂蚁寻找食物的最短路径行为来设计的仿生算法,是一种概率型算法,适用于优化组合问题。 特点 对图的对称性和目标函数无特殊要求可以解决…

蝙蝠优化算法(python代码)

1.效果图 2.代码 import numpy as np import math import matplotlib.pyplot as plt# 定义目标函数(示例函数为Rastrigin函数) def rastrigin(x):return 10 * len(x) + np.sum(x**2 - 10 * np.cos(2 * np.pi * x))# 蝙蝠优化算法函数 def bat_algorithm(f, D, N, N_gen, A,…

蚁群算法Python实现

解决的问题 三维地形中,给出起点和重点,找到其最优路径。 作图源码: from mpl_toolkits.mplot3d import proj3d from mpl_toolkits.mplot3d import Axes3D import numpy as npheight3d np.array([[2000,1400,800,650,500,750,1000,950,900…

蚁群算法原理与实现(python)

文章目录 蚁群算法的背景蚁群算法的思想蚁群算法的python实现实例总结 蚁群算法的背景 古有牛顿在苹果树下被苹果砸中发现万有引力,三十年前有人观察蚂蚁觅食发明蚁群算法。蚁群算法是意大利学者Dorigo、Maniezzo等人于20世纪90年代看蚂蚁觅食发明的。蹲在地上看蚂…

Python实现HBA混合蝙蝠智能算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法…

蝙蝠算法(Bat Algorithm,BA)算法

生物学基理 蝙蝠算法(Bat Algorithm,BA)算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。BA算法的仿生原理将种群数量为…

经典蝙蝠算法MATLAB实现

为什么会有这么多基于群智能的算法,蚁群、粒子群、鱼群、烟花、炮竹、猪群、牛群、马群、羊群、猴群、鸡群。。。算法。?????? 黑人问号.jpg 蝙蝠算法( BA) 是 Yang 教授于 2010 年基于群体智能…

【算法学习】蝙蝠算法简介

蝙蝠算法(Bat Algorithm,缩写 BA),是一种元启发式优化算法,是杨新社(音译自:Xin-She Yang)在2010年提出的算法[1]。这个蝙蝠算法以微蝙蝠(microbats)回声定位…

算法学习:蝙蝠算法简介

蝙蝠算法(Bat Algorithm,缩写 BA),是一种元启发式优化算法,是杨新社(音译自:Xin-She Yang)在2010年提出的算法[1]。这个蝙蝠算法以微蝙蝠(microbats)回声定位…

蝙蝠算法

蝙蝠算法 蝙蝠算法是根据蝙蝠的回声定位特性开发的优化算法。下面为蝙蝠算法的几个基本规则。 蝙蝠通过回声定位可以感觉到距离,它们在食物/猎物和背景屏障之间也有差异。蝙蝠的速度由(Vi)和蝙蝠的位置表示为(Xi),具有频率Fmin、变化波长λ和寻找食物的响…

元启发式算法之一:蝙蝠算法BA

目录 一、算法 1. 定义 2. 步骤 3. 特点 二、蝙蝠 1.描述 2.先进技能-声纳 1) 回声定位-Acoustics of Echolocation 2) 行为参数化分析 3. 技能属性 三、 蝙蝠算法 1.算法模型建立之规则理想化简化 2.算法模型建立之近似值应用 3.算法模型建立…

算法优化笔记|蝙蝠算法的理解及实现

蝙蝠算法(Bat Algorithm,BA )理解及实现 一、蝙蝠算法背景介绍二、蝙蝠算法原理三、蝙蝠模型构建四、蝙蝠算法的Python实现五、总结 一、蝙蝠算法背景介绍 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有…