测试用例设计——边界值分析法

2023-11-02

在前面的测试用例设计——等价类划分法中,我们使用等价类划分法给两位数加法器设计了测试用例,但在测试过程中我们发现了一个问题。
在这里插入图片描述
为什么我们用等价类法设计的测试用例没有发现这个问题呢?查看一下代码,发现程序员粗心,边界条件设置错误了。
在这里插入图片描述
无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常可能会发现更多的bug。

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,是对等价类划分方法的补充。一般,我们在设计测试用例的时候,需要将等价类法和边界值法结合起来使用。

关于边界点,可以分为上点、内点和离点。如图:
在这里插入图片描述
上点:就是边界上的点,不管它是开区间还是闭区间,就是说,如果该点是封闭的,那上点就在值域范围内,如果该点是开放的,那上点就在值域范围外;
内点:就是在值域范围内的任意一个点;
离点:就是离上点最近的一个点,如果边界是封闭的,那离点就是值域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点。

使用边界值分析方法设计测试用例,首先应确定程序的边界情况。通常输入和输出等价类的边界,就是应该着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

边界值与等价类的区别在于:
1、边界值分析不是从某等价类中随便挑一个,而是把这个等价类的每个边界都作为测试条件
2、边界值分析不仅考虑输入条件,还要考虑输出结果产生的测试情况。

基于边界值分析方法选择测试用例的原则:
1、如果输入(输出)规定了值的范围,则应该以该范围的边界值及边界附近的值作为测试数据;如一个文本输入区域允许输入1个到255个字符,那么输入0个、1个、255个字符和256个字符做为边界条件值。
2、如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据;如超市打折,买3件相同商品打7折,则2件、3件、4件商品做为边界条件值。
3、将规则1和2应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值;如某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元”,其边界值可取0.00及1165.24、还可取0.01及1165.26等。
4、如果需求规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试数据;如下拉列表中可以对5个行政区域进行选择,可以选择第一个和最后一个。
5、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据;如对16-bit 的整数而言 32767 和 -32768 是边界。
6、分析规格说明,找出其它可能的边界条件。

根据以上边界值分析法的介绍,我们的两位数加法器还需要加上边界值的相关用例。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试用例设计——边界值分析法 的相关文章

  • JVM--调优--03--开发配置

    JVM 调优 03 开发配置 1 本地配置 Xmx1g Xms1g Xmn900m XX UseG1GC Xloggc gc log XX PrintGCDetails 2 linux tomcat 配置 进入tomcat的bin目录 修改
  • 软工作业 双人项目代码规范

    双人项目代码编写规范 蔡东杰 房林尧 以下共分为四个部分 缩进代码 命名规则 代码注释 异常处理 部分规范已做实例说明 后续编代码时需要严格遵守 一 关于缩进代码 一行里面只写一行代码 包括定义变量 一行只定义一个 左括号和后一个字符之间不
  • Java分支和循环语句及方法的使用

    1 分支语句No3 顺序语句 分支语句 循环语句 1 1 分支语句 选择结构 分支语句满足某种条件则执行某一部分 满足另一种条件则执行另一部分 1 2 if语句 简单分支语句 if boolean类型表达式 语句 如果小括号中的表达式成立
  • STM32中断知识点简介

    中断服务函数存放路径为启动文件 startup stm32f10x hd 1 常用的中断服务函数 外部中断服务函数 EXTI0 IRQHandler EXTI0 IRQn EXTI1 IRQHandler EXTI1 IRQn EXTI2
  • jenkins默认会存放目录

    jenkins默认会存放在用户主目录下的 jenkins文件夹中 如 Linux root用户 root jenkins 注意 这是linux版本的 windows系统请自行更改 这个值在Jenkins运行时是不能更改的 请先将Jenkin
  • 自定义coco数据集

    1 环境 anaconda环境安装配置 2 工具 安装labelme工具 3 安装软件 3 1 打开anaconda控制台 3 2 创建虚拟环境 conda create n labelme python 3 7 3 3 激活环境 cond
  • 函数调用栈

    函数调用栈 我们在编程中写的函数 会被编译器编译为机器指令 写入可执行文件 程序执行的时候 会把这个可执行文件加载到内存 在虚拟地址空间中的代码段存放 如果在一个函数中调用另一个函数 编译器就会对应生成一条call指令 当程序执行到这条ca
  • 不使用mybatis的@Param有的报错有的却不报错问题

    前几天更换电脑重新安装新的idea发现在dao层 有的同事没有使用 Param注解 导致系统报错 错误如下 org mybatis spring MyBatisSystemException nested exception is org
  • 显示实例化和显示具体化

    struct man int age double salary 显示具体化 指定模板函数中类型 意思是不要使用swap模板来生成函数定义 而是要使用专门为job类型显示定义的函数定义 因为job是一个结构体 所以swap不可能是直接的利用
  • Flutter的Stepper

    文章目录 Flutter的Stepper的简介 Stepper的详细介绍 使用方法 导入flutter material dart包 创建状态变量 创建Stepper 创建一个Step widget列表 典型用法 Step对象的创建 例子
  • 2023 1.2 Scala变量与数据类型

    学习目标 学会变量声明 掌握数据类型 初学Scala时 建议读者在Scala命令行模式中操作 最终程序的编写可以在IDE中进行 在Windows的CMD窗口中或CentOS的Shell命令中执行scala命令 即可进入Scala的命令行操作
  • uni-app列表组件 list组件,简单好用通用

    随着技术的发展 开发的复杂度也越来越高 传统开发方式将一个系统做成了整块应用 经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改 造成牵一发而动全身 通过组件化开发 可以有效实现单独开发 单独维护 而且他们之间可以
  • Dockerfile 中 配置安装 php 扩展

    我的个人博客 逐步前行STEP 以下配置实现了 在docker环境中安装scwl中文分词的php扩展 scwl RUN curl http www xunsearch com scws down scws 1 2 3 tar bz2 o s
  • 管理回收站+启用/禁用回收站+查看回收站信息+清空回收站对象

    管理回收站 1启用 禁用回收站 1 关闭回收站 alter session set recyclebin off show parameter recyclebin 2 启用回收站 alter session set recyclebin
  • Mockito 的 MockMvc:零基础教程

    Mockito 的 MockMvc 零基础教程 大家好 今天 我们将一起学习 Mockito 的 MockMvc 在这篇零基础教程中 我们将介绍 MockMvc 的概念 应用场景 快速上手方法 常用特性 注意事项以及原理概述 让我们以轻松幽
  • 【手把手教你用Matlab做双目摄像头标定】Ubuntu环境

    手把手教你用Matlab做双目摄像头标定 Ubuntu20 04环境 准备工作 你需要一个标定板 你需要一个双目摄像头 获取双目摄像头的设备号 跑起来看看 分割图像并完成拍照 使用Matlab进行标定 准备工作 你需要一个标定板 一个高精度

随机推荐