黑盒测试技术之等价类划分法

  • 一、 等价区间与等价测试原理
  • 二、等价类划分
  • 三、常见等价类划分形式
  • 四、应用

一、 等价区间与等价测试原理

在描述等价类法之前,先来解释等价测试原理。正是基于这个原理,才有了等价类划分测试的充分性和完备性的保证。

  • 等价区间和等价测试原理
    假设(A, B)是命题f (x) 的一个等价区间,在(A, B) 中任意取一点xi进行测试。如果f (xi) 错误,那么f (x) 在整个(A, B) 区间都将是错误的,如果f (xi) 正确,那么f (xi) 在整个(A, B) 区间都将是正确的。
    根据这个原则而设计的测试方法,称之为等价类测试。等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少量代表性数据当作测试用例, 而选取的每一个测试用例对于揭露程序中的缺陷或错误均为等效。简单来说就是某个等价类中的一个测试用例检测出了测试对象中的缺陷或错误,那么这一等价类中的其他测试用例也能发现同样的问题,反之亦然。
    总结归纳: 等价类的假定条件是其中的每一个代表值,对于发现测试对象中的缺陷或错误是等价的,测试等类中的一个代表值等价了等价类中的其他值。应用等价类划分测试方法可大幅减少测试用例的数量,做到“事半功倍",并能满足测试的充分性,取得完备的测试结果。

二、等价类划分

  • 测试的两个重要点:第一,是要具完备性;第二,是无冗余。
    若在测试输入域须提供了一种形式的完备性,并且测试输入域互不相交,
    则可保证形式上的测试无冗余。
  • 等价类划分法的任务:第一,划分与确定等价类;第二,为每一个等价类建立一个测试用例,并提供充分的覆盖。
  1. 等价类的有效与无效
    划分等价类需首先从功能规格说明书中找出所有输入条件,然后为每个输入条件划分两个或多个等价类,形成若干互不相交的子集,这些子集称之为等价类。而所有等价类的并集就是整个测试用例的输入域。
    等价类划分有两种情形:有效等价类和无效等价类
    有效等价类指对程序功能规格说明是合理、有意义的输入数据构成的集合,利用有效等价类检验程序是否实现规格说明中所规定的功能。
    与有效等价类定义相反,无效等价类指对软件功能规格说明是无意义、
    不合理的输入数据所构成的集合,利用无效等价类,可检查被测对象的功能的实现是否有不符合程序规格说明要求的地方。
  2. 等价类划分原则
  • 如果输入条件指定是在一个连续范围的值,则可划分为一个有效等价类及两个无效等价类。
    例1: 某个参数值的输入值的有效范围是:3000-8500
  • 在输入条件规定了输入值的集合或规定了“必须如何”的条件情形下,可划分一个有效等价类和一个无效等价类。
    例2: 购买汽车的客户(申请者)必须是个人身份。
    有效类: {个人}
    无效类: (公司,房屋, 其他 }
  • 在输入条件为一个布尔品的情况下,可确定一个有效等价类和一个无效
    等价类。
  • 在规定了输入数据必须遵守某规则情形时,可确立一个有效等价类(符
    合规则)及若干个无效等价类(违反规则)。
    例3: 若某个输入条件说明了一个必须成立的情况(如输入数据必须是数
    字0-9) , 则可划分一个有效等价类(输入数据仅为数字)及一个无效等价类(输入数据为非数字)。
    按照数值集合划分。如规格说明规定了输入值的集合,则可确定一个有效等
    价类(该集合有效值之内)和一个无效等价类(该集合有效值之外)。
  • 当确知已划分的等价类中各元素在处理中方式不同时,则应将该等价类
    进一步划分为更小等价类。
  1. 等价类划分测试的步骤
    (1)划分若干互不相交子集
    (2) 建立等价类表输入测试条件、有效等价类和无效等价类
    (3)在划分等价类中设计测试用例
  • 同时考虑有效、无效等价类测试用例设计
  • 用最少的测试用例覆盖所有等价类
  • 对每一个无效等价类设计一个测试用例
  • 设计测试用例的预期结果也是测试用例的必要内容

三、常见等价类划分形式

  1. 标准等价类划分
    标准等价类测试不考虑无效数据值。
  2. 健壮等价类划分
    健壮等价类测试主要出发点是不仅关注等价类,同时也关注无效等价类。

四、应用

【问题描述】NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:①1≤month≤12②1≤day≤31 ③1912≤year≤2050
解题步骤:

  1. 划分等价类
    有效等价类:
    M1={mouth:1≤mouth≤12}; D1={day:1≤day≤31};Y1={year:1912≤year≤2050} S1={年、月、日有值 && 均为整数值}
    无效等价类:
    M2={mouth:mouth<1}、M2={mouth:mouth>12};
    D2={day:day<1}、D3={day:day>31};
    Y2={year:year<1912}、Y2={year:year>2050};
    S2={年不为整数值 || 值为空}、S2={月不为整数值 || 值为空}、S2={日不为整数值 || 值为空}

  2. 形成测试用例

黑盒测试技术之等价类划分法相关推荐

  1. 黑盒测试技术中的等价类划分法、边界值分析法、因果图法和决策表法进行测试用例设计

    一.实验目的 1.能熟练应用黑盒测试技术中的等价类划分法.边界值分析法.因果图法和决策表法进行测试用例设计. 2.对测试用例进行优化设计 二.实验环境 Windows系统+ Office工具 三.实验 ...

  2. 黑盒测试技术(概念等价类划分法详细)——软件质量保证与测试

    概念: 不深入代码细节的测试方法称为动态黑盒测试.软件测试员充当客户 来使用它.又称闭着眼睛测试软件.主要针对软件界面和软件功能进 行测试. 不用关心软件的内部结构 站在用户角度看现有的功能是否被正确 ...

  3. 黑盒测试案例设计技术--等价类划分法

    什么是测试用例 所谓的测试用例设计就是将软件测试的行为活动,作一个科学化的组织归纳.软件测试是有组织性.步骤性和计划性的,而设计软件测试用例的目的,就是为了能将软件测试的行为转换为可管理的模式.软件测 ...

  4. 黑盒测试——nextDate函数测试(等价类划分法、边界值分析法、判定表驱动法)

    实验目的 (1)掌握应用黑盒测试技术进行测试用例设计. (2)掌握对测试用例进行优化设计方法. 实验内容 日期问题 测试以下程序:该程序有三个输入变量month.day.year(month.day和 ...

  5. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  6. 黑盒测试等价类划分法、边界值分析法

    一.实验目的 能够掌握黑盒测试的等价类划分法.边界值分析法原理 能够运用等价类划分法.边界值分析法写测试用例 二.实验任务 根据商城注册模块的要求用等价类划分法和边界值法写测试用例 根据注册程序的要求 ...

  7. 【软件测试】黑盒测试の等价类划分法

    等价类划分法 等价类划分法是一种重要的.常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性. 等价类划分法是把所有可能的输入数据,即程序的输入域划分成 ...

  8. 黑盒测试 ------ 等价类划分法

    文章目录 等价类划分法 等价类划分概念: 等价类的分类 等价类思考步骤 例子 等价类划分的总结 等价类划分法 计算器:到底输入几组数据才算测试完毕? 答案:一个一个测试效率低下,所以一定要分类测试. ...

  9. 软件测试-黑盒测试:等价类划分法

    等价类划分法 参考文献: 软件测试方法_等价类划分法 等价类划分法设计测试用例 软件测试第8讲_测试流程_测试用例(等价类划分法) 整个等价类划分法的核心就是:如何划分等价类,如何区分有效等价类和无效 ...

最新文章

  1. DMG MORI AKTIENGESELLSCHAFT
  2. 利用FRIDA攻击Android应用程序(一)
  3. NLP十大数据扩充策略
  4. Abp Vnext Vue3 的版本实现
  5. python多线程_python多线程:控制线程数量
  6. 交换机是如何对数据包打标签去标签的_条形码软件如何在标签纸上套打可变条码...
  7. malloc动态内存分配
  8. 【转载】浅谈 看图软件 的设计与实现
  9. 火星人谚语系列之八:少读书,多思考
  10. 文件对比工具比较会话时查看字节地址的方法
  11. C语言解决约瑟夫问题详解的代码
  12. 活动目录的物理结构逻辑结构
  13. SP namespace (sp.js)
  14. 射频(RF)和微波电路发展简史(一)
  15. 电路城 电路方案 51单片机开发板(原理图+PCB+学习程序源文件)
  16. java定时器定时发短信,定时任务(如:定时发送短信信箱等)
  17. 三方四方聚合支付PHP网站源码-对接支付宝微信接口
  18. 判断无线网卡是否支持监听模式
  19. 【matplotlib】图片的各种渲染效果;matplotlib.cm
  20. android长按home键流程

热门文章

  1. sx126x 与 sx127x 的区别
  2. python调用默认播放器_python使用Tkinter实现在线音乐播放器
  3. Redis五大基本数据类型(String、LIst、Set、Hash、ZSet)及其底层结构
  4. cesium中测距测面
  5. Corba 学习笔记 (一)
  6. 专为mac用户设计的苹果手机助手。爱思助手 Mac版结构更清晰,功能更好用,界面更清晰,让你能够轻松查看设备信息,下载最新最火的应用游戏。
  7. B端产品客户画像的一点感悟
  8. 建模新手使用Maya的xGen功能后,角色毛发顺滑堪比使用海飞丝!
  9. C#数组维度转换:一维数组二维数组三维数组相互转换
  10. named-checkzone命令--Linux命令应用大词典729个命令解读