等价类划分法设计测试用例

摘要:
等价类划分是一种典型的黑盒测试用例设计方法。当使用等价类划分方法时,根本不考虑程序的内部结构,设计测试用例的唯一依据是软件需求规范。当使用等价类划分方法设计用例时,有效的等价类和无效的等价类是必要的,因为如果被测试的程序是正确的,它应该能够接受有效输入和无效输入。

等价类划分法是一种典型的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。

等价类

所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的。等价类又分为有效等价类和无效等价类。有效等价类代表对程序有效的输入,而无效等价类则是其他任何可能的输入(即不正确的输入值)。有效等价类和无效等价类都是使用等价类划分法设计用例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输入,也能接受无效输入的考验。

划分等价类的标准:

1.完备测试、避免冗余;

2.划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;

3.并是整个集合:完备性;

4.子集互不相交:保证一种形式的无冗余性;

5.同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

等价类划分的方法:

1.如果输入条件规定了一个取值范围,那么就应该确定一个有效等价类以及两个无效等价类。

如月份取值在1~12之间,由此可确定一个有效等价类即月份在1~12之间,和两个无效等价类,即月份取值小于1及月份取值大于12.

2.规定了输入条件必须如何的情况下可以确定一个有效等价类和一个无效等价类。

如输入值必须大于0,则有效等价类为输入值大于0 ,无效等价类为输入值小于或者等于0.

3.在输入数据是一个bool常量的情况下,可以确定一个有效等价类和一个无效等价类。

4.在规定了输入数据由n个值构成的情况下,并要求定其中的每个值进行测试时,可以确定n个有效等价类和一个无效等价类。

如交通工具类型为公共汽车、卡车、出租车、火车或者摩托车,那么就应该为每一个输入值确定一个有效等价类和一个无效等价类例如拖车。

5.在规定了输入数据冰箱最受的规则的情况下,可以确定一个有效等价类和若干个无效等价类(从不同角度违反规则)。

如输入值必须是数字类型的字符,则可确定一个有效等价类,及输入值为数字类型得字符,和多个无效等价类,即输入值为字母、为专用字符(如+、*、@等)以及为非打印字符(如回车、空格等)。

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

划分等价类之后,应建立等价类表,列出与每一个输入条件对于的有效等价类和无效等价类。

设计测试用例

1.为每一个等价类规定一个唯一的编号;

2.设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

3.设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

举例

注册邮箱时邮箱名要求6~18个字符,可使用字母、数字、下划线,需以字母开头。

等价类划分法设计测试用例第1张

等价类表

输入条件有效等价类无效等价类
邮箱名6~18个字符(1)

少于6个字符(2)
多余18个字符(3)
空(4)

包含字母、数字、下划线(5)

除字母、数字、下划线的特殊字符(6)
非打印字符(7)
中文字符 (8)

以字母开头(9)以数字或下划线开头(10)

测试用例

编号输入数据覆盖等价类预期输出
1test_123(1)(5)(9)合法输入
2test(2)(5)(9)非法输入
3test_1234567890_1234567890(3)(5)(9)非法输入
4NULL(4)非法输入
5test&&123(1)(6)(9)非法输入
6test 123(1)(7)(9)非法输入
7test测试123(1)(8)(9)非法输入
8123_test(1)(5)(10)非法输入

免责声明:文章转载自《等价类划分法设计测试用例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅谈Web缓存UI组件库Kendo UI for jQuery R3 2021下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell-基础2-字符串文本处理${}

一、为什么使用${}引用变量   1、$a和${a}的效果与区别     因为个别特殊字符会影响正常引用,所以需要使用${}引用变量,加花括号是为了帮助解释器识别变量的边界     $a和${a}效果一样,当变量后面连接其他字符的时候必须给变量加上大括号${a}_bc [root@master ~]# VAR=111 [root@master ~]# ec...

那些年java MD5加密字符编码的坑

相信做过MD5加密的童鞋都遇到过字符编码的坑,一般加密出来的结果和其他人不一样都是字符编码不一致导致的,比如类文件的字符编码、浏览器的字符编码等和对方不一致,所以就需要转码统一字符。 以下是笔者转码过程中遇到的坑: 不要new String("XXXX".getBytes("UTF-8")),之后将转码后的字串传入MD5去加密,会遇到意想不到的效果,有的字...

eslint 错误提示

“Missing semicolon.” : “缺少分号.”, “Use the function form of ”use strict”.” : “使用标准化定义function.”, “Unexpected space after ‘-’.” : “在’-'后面不应出现空格.”, “Expected a JSON value.” : “请传入一个js...

中国石油大学(华东)计算机复试C语言参考题库

目录 复试c语言 【研究创新型】8.1 谁能出线 【设计型】8.2 统计素数的个数 【设计型】8.3 数组逆序输出 【设计型】8.4 在屏幕上显示杨辉三角形 【设计型】8.5 求最大值 【设计型】8.6 二维数组 【设计型】8.11 存储并输出一个矩阵 【设计型】8.7 给数组中的元素按顺序编号 【设计型】8.8 求各位数字组成的最大数 【设计型】8...

linux文本处理常用指令(序列二)

概览 本文主体:介绍4个linux文本处理命令:grep、sed、printf、awk。 基本正则表达式 正则表达式字符 含义 ^word 查找以word开头的文本 word$ 查找以word结尾的文本 . 代表一个任意字符 转义符 * 0到多个字符 [abc] 代表一个字符,这个字符是a或b或c [a-z];[0-9]...

Mysql字符集设置

最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法。 基本概念 • 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给...