黑盒测试用例设计方法一(等价类划分、边界值分析)

黑盒测试用例设计方法一(等价类划分、边界值分析)文章目录黑盒测试用例设计方法黑盒测试用例设计方法概述等价类划分法边界值分析法黑盒测试用例设计方法黑盒测试用例设计方法概述测试数据选择等价类划分法边界值分析法测试步骤设计因果图法判定表法正交实验法功能图法场景法等价类划分法等价类划分法原理把程序的输入域划分成若干份,然后从每个部分中选取少数代表性数据作为测试用例每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。反之,如果某一类中的一个例子没有

大家好,又见面了,我是你们的朋友全栈君。

一、黑盒测试用例设计方法

1、黑盒测试用例设计方法概述

  • 测试数据选择
    等价类划分法
    边界值分析法
  • 测试步骤设计
    因果图法
    判定表法
    正交实验法
    功能图法
    场景法

2、等价类划分法

2.1等价类划分法原理

  • 把程序的输入域划分成若干份,然后从每个部分中选取少数代表性数据作为测试用例
  • 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
  • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

2.2等价类划分法设计步骤

2.2.1确定等价类的原则

  • 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类

例如:一个文本框规定,输入字符个数为6~18位
一个有效等价类:范围内个数
两个无效等价类:小于6;大于18个

  • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类

例如:请输入11位的手机号
11位就是有效的
不是11位,就是无效的

  • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类

布尔量:表示“真”或者“假”

  • 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

例如:登陆中要输入用户名和密码

  • 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

例如:用户名要求6~18,由字母、数字、下划线组成;字母区分大小写;以大写字母开头

  • 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类

以百度的注册页面为例
用户名:设置后不可更改;中英文均可;最多14个英文或7个数字;(用户名不可重复;不可为空;)

有效等价类 数据 无效等价类 数据
中文、英文混合 杨kaikai 数字、特殊符号 12345
14英文 yangkaikai 英文超过14/中文超过7 dsffgbcdfgfsrere
不能为空 y
不能重复 杨凯 使用重复的数据进行测试
7个中文 羊羊羊

2.2.2等价类划分法

  • 划分等价类和列出等价类表
    有效等价类
    无效等价类
  • 确定测试用例
    为每个等价类规定一个唯一的编号
    设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例覆盖
    设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖
    在这里插入图片描述

3、边界值分析法

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 分析规格说明,找出其他可能的边界条件

边界值只是一个特定的数据。例如,文本框需要输入6到18位字符。边界值有: (1)6个字符 (2)18个字符
次边界。边界附近的值,按照系统规定的单位或者计算方式,一个数据的差异。
例如:字符就是,一个字符,没有半个字符的说法;人民币金额,最小单位是0.01;

3.1边界值的选用原则

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 根据规格说明的每个输出条件,使用前面的原则①
  • 根据规格说明的每个输出条件,应用前面的原则②
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

二、用例设计中存在的问题

  • 用例按照测试分类:功能(Function)、界面(UI)、性能Performance)、安全(Security)、接口(Interface)
  • 测试项 必须是确定的。测试项中可以不写目的产生的结果,写了不算错
  • 身份证号业务知识,最后一位是校验码(机密)(0~9,Ⅹ),身份证号(新版和旧版),数字和Ⅹ,并没有字母。例如非法的身份证号:310112198902301542
  • 测试项一般只写一个测试目的。测试目的必须是明确的,不能一次测试多个点。测试中,一个反向的(无效等价类)测试数据,只要违反一个需求。例如非法的身份证号310112198922301542
  • 依赖用例。下游的用例依赖上游的用例(已经存在的测试用例),用例依赖可以跨越模块(A设计员可能会依赖B设计员的测试用例)
  • 测试步骤。表明操作的对象和方式,数据
  • 测试数据。没有数据:空着不写;例如输入要求不为空,不输入就不写(须在测试项中标注某一个内容为空)。如果要对空格进行测试,( 数据 )(建议不要将空格放在数据的最前面或者最后面)。(123 456)
  • 测试结果。不执行 就不填
  • 用例中要不要显示正向或者反向:不需要
  • 等价类划分。不要出现重复的情况,也不要出现缺失的输入部分。

三、实战案例

案例

  • 一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。
  • 这个程序会给出弹窗提示信息,说明这个三角形是普通的、是等腰的、是直角的、还是等边的,以及相应的错误提示信息。
    在这里插入图片描述
    测试用例
测试用例编号 测试项 依赖用例 测试步骤 输入数据 预期结果 测试结果
Test Case_DBXPD_open_0001 打开多边形判断程序 1、使用谷歌浏览器打开判断程序页面 打开判断程序首页,并且显示选择多边形的形状
Test Case_DBXPD_xuanze_0001 打开三边形判断页面 1、在首页中点击 单选按钮 【三边形】 大砍三边形的判断页面,有三边形的示例图,还有三个文本框供输入数据
Test Case_DBXPD_panduan_0003 两边之和小于第三边 1、第一条边长输入:1;2、第二条变长输入:2;第三条边长输入:4;4、点击【提交】按钮 1 2 4 弹窗提示:不能构成三角形。
Test Case_DBXPD_panduan_0004 两边之和等于第三边 1、第一条边长输入:1;2、第二条边长输入:2;第三条边长输入:3;4、点击【提交】按钮 1 2 3 弹窗提示:不能构成三角形。
Test Case_DBXPD_panduan_0005 三条边组成直角三角形 1、第一条边长输入:3;2、第二条边长输入:4;第三条边长输入:5;4、点击【提交】按钮 3 4 5 弹窗提示:直角三角形。
Test Case_DBXPD_panduan_0006 边长输入为0 1、第一条边长输入:0;2、第二条边长输入:4;第三条边长输入:5;4、点击【提交】按钮 0 4 5 弹窗提示:边长输入错误
Test Case_DBXPD_panduan_0007

作业
写出四边形和五边形的测试用例

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

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

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


相关推荐

  • Kettle工具入门[通俗易懂]

    Kettle工具入门[通俗易懂]Kettle工具入门Kettle工具入门 Kettle是什么? 为什么要用Kettle? 怎么用Kettle? 下载运行 简单应用 表到表转换 json到表的操作 参考 Kettle是什么?Kettle是水壶。“多喝热水”是我们对女朋友美好的祝福。因为未经处理的生水(原始数据),含有各种杂质(脏数据),无法直接饮用(入…

    2022年10月17日
    2
  • 风云私服架设教程_风云端游

    风云私服架设教程_风云端游需要软件:SQLsever2005pro本站提供下载将服务器端解压缩到D:盘D:\Sagasevr下有6个文件夹1:databaseSQL数据库文件夹2:LoginServer帐号登陆管理器3:WorldServer服务器数据管理器4:GameServer1游戏数据管理器4:GameServer2游戏数据管理器5:GameServer3游戏数据管理器6:GameS…

    2022年10月6日
    3
  • shell脚本基本语法详解

    shell脚本基本语法详解编写shell脚本的时候,最前面要加上一行:#!/bin/bash,因为linux里面不仅仅只有bash一个解析器,还有其它的,它们之间的语法会有一些不同,所以最好加上这一句话,告诉系统要用这个解析器。一.shell变量shell变量和一些编程语言不同,一般shell的变量赋值的时候不用带“$”,而使用或者输出的时候要带“$”。加减乘除的时候要加两层小括号。括号外面要有一个“$”,括号里面的变量可以

    2022年7月26日
    4
  • Navicat15 注册激活码【最新永久激活】「建议收藏」

    (Navicat15 注册激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    2.0K
  • FileUpload1上传控件

    FileUpload1上传控件stringfn=System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);//获取文件的名字stringfilname=F

    2022年7月3日
    23
  • C语言之数组(数组赋值的三种形式)

    C语言之数组(数组赋值的三种形式)在C语言中,对数组进行赋值的三种形式1、通过循环的形式    即:数组名[下标]    对数组的元素进行依次赋值 #include<stdio.h>intmain(){inti;inta[10]={0};for(i=0;i<10;i++){scanf("%d",&a[…

    2022年7月11日
    21

发表回复

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

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