测试用例方法–等价类划分法「建议收藏」

测试用例方法–等价类划分法「建议收藏」等价类划分法定义与使用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

定义

是一种黑盒测试方法。依据是软件需求规格说明书。
等价类的定义:是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的。
等价类分为有效等价类和无效等价类。
有效等价类:正确的输入值;无效等价类:不正确的输入值。

划分原则

在给定了输入或外部条件之后,等价类的划分原则如下:

输入条件规定 有效等价类 无效等价类
区间(如,1<a<100) 1个(1<a<100) 2个(a>=100, a<=1)
数值(如,“汽车可登记一至六名车主”) 1个 (车主个数1至6个) 2个(无车主,车主个数大于6个)
限制条件(如,“交通工具的类型必须是公共汽车、卡车、出租车、火车或摩托车”) 5个 (公共汽车、卡车、出租车、火车、摩托车) 1个(飞机)
数据存储类型(如,测试加法器,两个文本框,要求输入-99~99之间的整数) 2个(-99至-1, 0至99) 2个(<-99, >99)

划分等价类的标准:

  • 子集互不相交,子集的并集为整个集合
  • 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到”相同的执行路径”

用例设计步骤

  1. .确定等价类
  2. 建立等价类表
    列出与每一个输入条件对应的有效等价类和无效等价类, 最好有对每个子集编号
序号 功能项 有效等价类 编号 无效等价类 编号
1
2
  1. 生成测试用例
    现在利用等价类表来生成测试用例,其过程如下:
  • 编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去)。
  • 编写新的用例,每次覆盖一个(仅一个)尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖(包含进去)。

测试用例的完整性划分

针对是否对无效数据进行测试,可以将等价类测试分为标准等价测试类和健壮等价类测试。

  1. 标准等价类测试: 只针对有效数据, 不考虑无效数据。
  2. 健壮等价类测试:无效+有效数据。

健壮等价类测试存在两个问题:
1)需要花费精力定义无效测试用例的期望输出
2)对强类型的语言没有必要考虑无效的输入,程序可以自己检测

注意事项

不仅要针对输入域进行等价类划分,也应针对输出域进行等价类划分

示例

程序要求:输入三个整数a、b、c分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作处理。

  1. 等价类分析

    输入域
    A三个、B整数、C正数、D两边之和大于第三边、E三边均不相等、F两边相等但不等于第三边、G三边相等(D~G由输出值域的等价类隐性确定)

    输出域
    R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形}

  2. 等价类表

  3. 生成用例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180878.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • usart和uart的通信原理「建议收藏」

    usart和uart的通信原理「建议收藏」usart和uart的通信原理一、通信接口介绍1、处理器与外部设备通信的两种方式:并行通信:数据各个位同时传输。(速度快,占用引脚资源多)串行通信:数据按位顺序传输(一位一位传输)。(占用引脚资源少,速度相对较慢)2、串行通信三种传送方式单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工…

    2022年5月12日
  • MaskRCNN 何凯明_cnn应用

    MaskRCNN 何凯明_cnn应用本文介绍了MaskRcnn目标分割项目的搭建及运行过程,并对搭建过程中可能出现的问题进行了解答。环境:Cuda10.2+tensorflow-gpu1.13.2MaskR-CNN是一个实例分割算法,可以用来做“目标检测”、“目标实例分割”、“目标关键点检测”。

    2022年9月28日
  • 面试题的基本总结回顾(以以往面试过的问题做基本总结)[通俗易懂]

    Java基础问题整理:1.HashMap1.7与HashMap1.8的区别,从数据结构上、Hash值的计算上、链表数据的插入方法、内部Entry类的实现上分析?2.Hash1.7是基于数组和链表实现的,为什么不用双链表?HashMap1.8中引入红黑树的原因是?为什么要用红黑树而不是平衡二叉树?3.HashMap、HashTable、ConcurrentHashMap的原理与区别?…

    2022年4月6日
  • 详细理解HashMap数据结构,太齐全了!「建议收藏」

    写在前面:小伙伴儿们,大家好!今天来学习HashMap相关内容,作为面试必问的知识点,来深入了解一波!思维导图:1,HashMap集合简介HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。JDK1.8之前的HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了节解决哈希碰

    2022年4月17日
  • termux安装ssh服务_python ssh连接

    termux安装ssh服务_python ssh连接pycharm下载、使用与远程连接服务器下载安装pycharm配置Deployment同步设置配置远程python解释器其他设置*环境变量*cannotconnecttoXserver*Pycharm运行程序给argparse指定参数*Pycharm打开连接服务器的终端下载安装pycharm如果要远程连接服务器,需要安装pycharmprofessional版本,从官网上下载并安装https://www.jetbrains.com/pycharm/download/#section=

    2022年8月28日
  • 运行游戏时出现0xc000007b错误的解决方法[通俗易懂]

    运行游戏时出现0xc000007b错误的解决方法[通俗易懂]最后更新:2019-2-28如图,0xc000007b这个错误使无数玩家烦恼。问题描述:出现这个错误,可能是硬件的问题,也可能是软件的问题。但是,由于硬件引起该问题的概率很小,并且除了更换硬件之外没有更好的解决方法,因此本文将详细介绍如何通过软件解决此问题,这也是大家最关心的。由于本文阅读用户众多,大家对于电脑故障解决的熟悉程度也不一样,因此本文致力…

    2022年6月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号