大家好,又见面了,我是你们的朋友全栈君。
测试数据选择:等价类划分法和边界值分析法
一、黑盒测试用例设计方法
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 |
作业
写出四边形和五边形的测试用例
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136310.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...