测试用例--等价类划分、边界值法

2023-11-18

一、测试用例/案例(test case/test instance)   1、定义:是在测试执行之前,由测试人员编写的指导测试过程的重要文档,主要包括:用例编号、测试目的、测试步骤(用例描述),预期结果   2、介绍编写测试用例的7种方法:     1)等价类划分法(*)     2)边界值法(*)     3)因果图法     4)判定表法     5)正交排列法     6)测试大纲法     7)场景法(*)   至少要掌握每种方法的适用场合(用在哪)和使用步骤(怎么用)   编写测试用例可以参考什么?     (1)需求文档     (2)被测系统(已开发出来的被测系统)       一边对照程序,一边编写用例。很多企业都是这样测试,如果只对照需求文档可能只能完成测试设计的30-40%。     (3)开发(设计)文档(有可能拿不到,比如测试和开发不是同一家公司,就不一定提供设计文档)     (4)与开发、产品、客户等进行沟通

二、等价类划分法   1、应用场合     有数据输入的地方,可以使用等价类划分法。     从大量数据中挑选少量代表数据进行测试   2、测试思想     穷举测试:把所有可能的数据全部测试一遍叫穷举测试。     穷举测试是最全面的测试,但是在实际工作中不能采用,因为测试效率太低(数据量巨大,根本测不过来)     理想的测试思想:使用最少的测试数据,达到最好的测试质量(最高性价比)       因为毕竟没有做穷举测试,所以会有遗漏缺陷的风险,如果时间允许,尽可能的做补充测试(不用纠结,觉得有风险的有问题的补充测就好)     等价类划分法的测试思想:       从大量数据里划分范围(每个范围内的数据测试效果是等价的所以每个范围是一个等价类),然后从每个范围中挑选代表数据,这些代表数据能反应这个范围内数据的测试结果。     基本概念

找相同分类后分为:

      有效等价类:对程序来说,有意义的、合理的输入数据集合—用来测试功能是否正确实现       无效等价类:对程序来说,无意义的、不合理的输入数据集合—用来测试程序是否有强大的异常处理能力(健壮性)

三、等价类划分法的实现步骤:

案例实战---新浪邮箱登录

新浪邮箱登录,要求输入(邮箱名)@sina.cn和密码进行登录

邮箱名要求:4-16位字符,支持英文,数字,下划线(不能全是数字或下划线)

密码:6-18位字符

步骤1:分析需求,分别将姓名和年龄控件的等价类和边界值进行分析,填入《数据分析表》

有效等价类 有效数据 无效等价类 无效数据
4-16位英文 abcd 小于4位英文 abc
4-16位英文数字组合 abc1 大于16位英文 Abcdefghigklmnobghd
4-16位英文下划线组合 abc_ 4-16位纯数字 1234
4-16位数字下划线组合 123_ 4-16位纯下划线 __
4-16位英文数字下划线组合 ab1_ 4-16位汉字 你好中国
4-16位符号 @#¥
不输入邮箱
输入未注册正确邮箱 abcd0820@sina.com
有效等价类 有效数据 无效等价类 无效数据
6-18位字符 adcdefg 小于6位字符 abcde
大于18位字符 Abcdefghijklmnqwert
6-18位非字符——符号 !@#$%@
6-18位非字符——汉字 你好我的祖国
不输入密码

步骤2:根据数据分析结果,形成测试方案,编写测试用例。

ID 模块 优先级 用例标题 预置条件 测试步骤 测试数据 预期结果 测试结果
XL-登录-001 登录 p1 邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abcd@sina.cn密码:abcdefg 登录成功,跳转到首页
XL-登录-002 登录 p1 邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abc1@sina.cn密码:abcdefg 登录成功,跳转到首页
XL-登录-003 登录 p1 邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abc_@sina.cn密码:abcdefg 登录成功,跳转到首页
XL-登录-004 登录 p1 邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:123_@sina.cn密码:abcdefg 登录成功,跳转到首页
XL-登录-005 登录 p1 邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:ab1_@sina.cn密码:abcdefg 登录成功,跳转到首页
XL-登录-006 登录 p1 邮箱小于4位英文。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abc@sina.cn密码:abcdefg 登录失败,输入邮箱有误,不能小于四位
XL-登录-007 登录 p1 邮箱大于16位英文。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abcqwertyuiopasdfghh@sina.cn密码:abcdefg 登录失败,输入邮箱有误,不能大于16位
XL-登录-008 登录 p1 邮箱4-16位纯数字。密码6-18位字符,密码正确 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:1234@sina.cn密码:abcdefg 登录失败,输入邮箱有误,不能为4-16位纯数字
XL-登录-009 登录 p1 邮箱4-16位英文,邮箱正确。密码小于6位字符 网络正常 1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 邮箱:abc1@sina.cn密码:abcde 登录失败,密码不能小于6位

边界值

1.定义(What?)

边界值属于等价类方法的特定输入域,包含在有效等价类或无效等价类中,根据等价类推断理论, 边界值方法产生的测试效果与等价类方法相同,只是边界值方法选择测试数据时更有针对性,通常 选择输入域的边界值。 等价类划分法+边界值法

边界值分析是一种常用的黑盒测试方法,是对等价类划分方法的补充;所谓边界值,是指相对于输入等价类和输出等价类而言,稍高于其最高值或稍低于最低值的一些特定情况。

2.为什么使用该方法?(Why)

  • 等价类划分忽略掉了某些特定类型的高效测试用例,而边界值分析可以弥补其中的很多不足;

  • 根据大量的测试统计数据,编程的很多错误是发生在输入定义域或输出值域的边界上,而不是发生在输入/输出范围的中间区域。因此针对输入和输出等价类的边界情况设计测试用例,可以查出更多的错误,具有更高的测试回报率;

  • 边界值数据本质上是属于某个等价类的范围,测试时确实是一种冗余(重复),但是为了更好的测试质量(边界值特别容易出bug),边界值必须要单独测,适当的冗余是可以接受的。

3.如何选定边界值?(How)

很难提供一份如何进行边界值分析的“详细说明”,因为这种方法需要一定程度的创造性,以及对问题采取一定程度的特殊处理办法。

但是可以提供一些通用指南:

  • 如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例。举例,如果输入值的有效范围是-1.0至+1.0,那么应针对-1.0、1.0、-1.001和1.001的情况设计测试用例。

  • 如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。举例,如果某个输入文件可容纳1~255条记录,那么应根据0、1、256和255条记录的情况设计测试用例。

  • 对每个输出条件应用指南1。举例,如果某个程序按月计算FICA的扣除额,且最小金额是0,最大金额是1165.25,那么应该设计测试用例来测试扣除0和1165.25的情况。此外,还应观察是否可能设计出导致扣除金额为负数或超过1165.25的测试用例。

  • (Tips:检查结果空间的边界很重要,因为输入范围的边界并不总是能代表输出范围的边界情况(例如三角正弦函数sin)。但是总是产生超过输出范围的结果也是不大可能的,但无论如何,应该考虑这种可能性。)

  • 对每个输出条件应用指南2。如果某个信息检索系统根据输入请求显示关联程度最高的信息摘要,而摘要的数量从未超过4条,则应编写测试用例,使程序显示0条、1条和4条摘要,还应设计测试用例,导致程序错误地显示5条摘要。

  • 如果程序的输入或输出是一个有序序列(例如顺序的文件、线性列表或表格),则应特别注意该序列的第一个和最后一个元素。

  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

  • 此外,发挥聪明才智找出其他的边界条件。

Tips:边界值分析方法和等价类划分之间的重要区别是,边界值分析考察正处于等价划分边界或在边界附近的状态

4. 设计测试用例

A.确定边界值

在尝试针对划分好的等价类进行边界值取值的时候,一定要有适当的范围,不是根据我们的端点值往左右两侧随意选择测试值,而是也有科学的方法进行选择。

边界值点的定义: 上点:边界上的点,闭内开外(“闭”是指域的边界是封闭的,即闭区间;“开”是指域的边界是开放的,即开区间)。 离点:离上点最近的点称为离点。开内闭外。 内点:域范围内的任意一点。

三点分析法:结合等价类划分的具体情况,针对边界值的选择就包括开区间、闭区间以及半开半闭区间

  • 闭区间:闭区间中的情况,上点为可以取值的点,在上点之间任取一点就是内点。而紧邻上点范围之外的第一对点被称为离点(也称为外点)

 

 

  • 半开半闭区间:半开半闭区间中,上点与内点的定义不变。离点是开区间一侧上点内部范围内紧邻的点,而在闭区间一侧是上点外部范围内紧邻的点。

  • 开区间:开区间中,上点与内点的定义仍然不变。而离点就是上点内部范围内紧邻的一对点。

总结为,上点就是区间的端点值,而内点就是上点之间任意一点。对于离点,要分具体情况,如果开区间的离点,就是开区间中上点内侧紧邻的点;如果是闭区间的离点,就是闭区间中上点外侧紧邻的点。

 

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

测试用例--等价类划分、边界值法 的相关文章

随机推荐

  • RabbitMQ --- SpringAMQP

    一 简介 SpringAMQP是基于RabbitMQ封装的一套模板 并且还利用SpringBoot对其实现了自动装配 使用起来非常方便 SpringAmqp的官方地址 Spring AMQP SpringAMQP提供了三个功能 自动声明队列
  • gitlab down: redis: 0s, normally up, want up; run:log

    突然发现gitlab不能访问了 报错505 1 查看gitlab的状态 发现redis的状态是down gitlab ctl status down redis 0s normally up want up run log 解决 启动red
  • matlab中global的用法

    Matlab 中子函数不传参直接调用主函数global变量方法 在一个m文件里要调用一个函数 自定义的 但是我希望这个函数能利用并修改workspace中的变量 m文件中的 可是函数的变量全是局部的 无法修改工作区的变量 该怎么办 同时在
  • KMP算法最浅显理解——一看就明白

    说明 KMP算法看懂了觉得特别简单 思路很简单 看不懂之前 查各种资料 看的稀里糊涂 即使网上最简单的解释 依然看的稀里糊涂 我花了半天时间 争取用最短的篇幅大致搞明白这玩意到底是啥 这里不扯概念 只讲算法过程和代码理解 KMP算法求解什么
  • Artec独立三维(3D)扫描软件

    最新版本 Artec Studio 9 1 中文界面 您是否想将自己的Kinect作为 3D 三维扫描仪来使用呢 ArtecStudio9 1为您提供解决方案 它可以和微软的Kinect 华硕的 Xtion XtionProLive以及其他
  • Uncaught SyntaxError: Unexpected end of input

    Uncaught SyntaxError Unexpected end of input 最近做项目遇到这样一个问题Uncaught SyntaxError Unexpected end of input Unexpected end of
  • mysql有没有flashback_Flashback for MySQL 5.7

    实现原理 flashback的概念最早出现于Oracle数据库 用于快速恢复用户的误操作 flashback for MySQL用于恢复由DML语句引起的误操作 目前不支持DDL语句 例如下面的语句 DELETE FROM XXX UPDA
  • xsync 集群同步工具

    前言 在配置集群时 往往需要将文件拷贝到各个机器 一来二去就很麻烦 我们可以使用 xsync 工具同时进行多台机器同步数据 环境准备 我们准备三台虚拟机 他们的 IP 分别为 192 168 56 2 192 168 56 3 192 16
  • python 日期和时间处理(time,datetime模块讲解)

    在现实生活中 我们常常遇到时间序列任务 所以今天讲解下日期和时间处理 Python 日期时间 datetime 1 获取当前时间 import datetime datetime object datetime datetime now p
  • 颜色的 HSL 表示

  • 【vue】图片加载动画效果

    加载后 一种是图片由浅到深 一种是闪光加载效果消失
  • tmux使用

    tmux使用 需求 ssh链接不稳定 若直接在ssh终端中运行某个长时间的程序 会被中断 使用tmux 即使ssh服务中断 tmux中的程序依旧运行着 常用命令汇总 开启一个tmux页面 tmux 开启一个tmux页面 自定义名字 tmux
  • Flutter Divider

    不设置高度 会在线的top和bottom占据一点空间 Divider thickness 1 h color Color 0xFF3D3D3E 设置height之后就正常了 上下没有间距了 Divider thickness 1 h hei
  • Docker未授权访问漏洞(www.hetianlab.com)

    什么是Docker Docker是一个开源的引擎 可以轻松的为任何应用创建一个轻量级的 可移植的 自给自足的容器 开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署 包括VMs 虚拟机 bare metal OpenStack 集
  • Uncaught TypeError: Cannot Read Property

    这是 JavaScript 开发人员最常遇到的错误 当你读取一个属性或调用一个未定义对象的方法时 Chrome 中就会报出这样的错误 导致这个错误发生的原因有很多 常见的一种情况是在渲染 UI 组件时 不正确地初始化状态 我们来看一个真实的
  • getifaddrs, freeifaddrs manual

    GETIFADDRS 3 Linux Programmer s Manual GETIFADDRS 3 NAME top getifaddrs freeifaddrs get interface addresses SYNOPSIS top
  • Java 结构化数据处理开源库 SPL

    现代Java应用架构越来越强调数据存储和处理分离 以获得更好的可维护性 可扩展性以及可移植性 比如火热的微服务就是一种典型 这种架构通常要求业务逻辑要在Java程序中实现 而不是像传统应用架构中放在数据库中 应用中的业务逻辑大都会涉及结构化
  • 专栏推介:《Hi3861网络编程实验》

    引言 本文是鸿蒙专栏 Hi3861网络编程实验 中的第一篇 从这个专栏的名称不难看出 这里面有三个关键词 鸿蒙 即 鸿蒙操作系统 Hi3861 海思生产的一款处理器 网络编程 也就是说 这个专栏就是带着大家做一些网络编程实验 实验代码是基于
  • FPGA零基础学习之Vivado-UART驱动教程

    FPGA零基础学习之Vivado UART驱动教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者
  • 测试用例--等价类划分、边界值法

    一 测试用例 案例 test case test instance 1 定义 是在测试执行之前 由测试人员编写的指导测试过程的重要文档 主要包括 用例编号 测试目的 测试步骤 用例描述 预期结果 2 介绍编写测试用例的7种方法 1 等价类划