软件测试基础,软件测试用例分析方法中,等价类是最常用最基本的方法,以下整理出一些参考资料(整理自互联网),希望对大家测试设计有帮助
等价类分析法
等价类测试分析
等价类
定义:1、等价:如果多个输入在程序中处理方式(路径)相同,则认为这些输入是等价的,测试一个即可。(前提:测试不能穷举)
2、输入:分为两类,有效输入(可以保存)、无效输入(不可保存)
3、结合:有效等价类、无效等价类
满足规则:只需寻找一个全部满足规则的(有效等价类)
不满足规则:需分开,每条不满足条件的举出一个,方便定位错误(无效等价类)
规则的几种情况:
1若规则是布尔式的
有效、无效分别取一个 一个真,一个假
2.若规则是区
有效的取一个 无效的,在小于区间的取一个,大于区间的取一个,空或零取一个
3.规则是集合:
有效取一个 无效的在集合外取一个
4.规则是必须满足的一个条件:
对无效,要细分无效(先试试其他有效等价类,再试试全部等价类全都不满足)
例:邮箱注册,注册名只能以小写字母开头,设计无效等价类时,先试试其他有效等价类,如大写字母、数字等,再试试其他有效全部都不满足的情况
有效等价类:程序规格说明有意义,合理的输入数据
无效等价类:程序规格说明无意义,不合理的输入数据
ASCII码
7位 表示27=128个字符 每个字符存储占用1个字节
分类:不可见字符
控制字符:LF(换行)、CR(回车)
通信字符
NULL(空)
可见字符
空格
数字
字母(大写、小写)
符号
练习
1.1年龄注册
注册页面要求输入年龄,限制:1到150期间的正整数
1、需求分析—找出全部的输入条件
1)、正整数
2)、[1,150]
注意:分解的过程中,条件之间不用组合(完全独立),在设计有效用例输入的时候再考虑组合(一对多)
2、绘制等价类表格
条件 | 有效等价类 | 有效编号 | 无效等价类 | 无效编号 | |
正整数 | >1 | A01 | 数字 | 小数 | B01 |
负数 | B02 | ||||
0 | B03 | ||||
非数字 | 空(NULL) | B04 | |||
空格 | B05 | ||||
字母 | B06 | ||||
符号 | B07 | ||||
[1,150] | [1,150] | A02 | <1 | B08 | |
>150 | B09 |
3、设计测试用例输入
原则:有效输入—尽可能多去覆盖有效等价类 (一对多)
无效输入---只能覆盖一个无效等价类 (一对一)
目的:A、出现问题可以更好的去定位
B、有可能第一个无效处理后,后续无效值被漏测
输入序号 | 有效输入值 | 覆盖有效等价类 | 输入序号 | 无效输入值 | 覆盖无效等价类 |
1 | 100 | A01、A02 | 2 | 1.8 | B01 |
3 | -9 | B02 | |||
4 | 0 | B03、B08 | |||
5 | 空(NULL) | B04 | |||
6 | 空格 | B05 | |||
7 | W | B06 | |||
8 | @ | B07 | |||
9 | 200 | B09 |
1.2.年龄注册
某保险公司注册页面要求输入年龄,限制:1到150期间的正整数,其中:
[1,10] 适用的费率 10%
[11,50] 适用的费率 30%
[51,150] 适用的费率 80%
条件 | 有效等价类 | 有效编号 | 无效等价类 | 无效编号 | |
正整数 | >1 | A01 | 数字 | 小数 | B01 |
负数 | B02 | ||||
0 | B03 | ||||
非数字 | 空(NULL) | B04 | |||
空格 | B05 | ||||
字母 | B06 | ||||
符号 | B07 | ||||
[1,150] | [1,10] | A02 | <1 | B08 | |
[11,50] | A03 | >150 | |||
[51,150] | A04 |
输入序号 | 有效输入值 | 覆盖有效等价类 | 输入序号 | 无效输入值 | 覆盖无效等价类 |
1 | 5 | A01、A02 | 4 | 1.8 | B01 |
2 | 30 | A01、A03 | 5 | -9 | B02 |
3 | 100 | A01、A04 | 6 | 0 | B03、B08 |
7 | 空(NULL) | B04 | |||
8 | 空格 | B05 | |||
9 | W | B06 | |||
10 | @ | B07 | |||
11 | 200 | B09 |
1.3.扩充
考虑全角和半角问题(GB231)
其中,半角占1个字节
全角占2个字节
字符集
1、ASCII
2、GB2312 -> GB18030 一个汉字占2个字节
BIG5(繁体)
3、ISO Unicode (UTF-16) -> UTF-8(变长存储) 一个汉字可能占3个字节
条件 | 有效等价类 | 有效编号 | 无效等价类 | 无效编号 | |
正整数 | >1(半角) | A01 | |||
0 | B03 | ||||
>1(全角) | A02 | 半角字符 | 空(NULL) | B04 | |
空格 | B05 | ||||
字母 | B06 | ||||
符号 | B07 | ||||
全角字符 | 空格 | B08 | |||
字母 | B09 | ||||
符号 | B10 | ||||
汉字 (字符集) | GB-2312 | B11 | |||
BIG-5 | B12 | ||||
[1,150] | [1,150] | A03 | <1 | B13 | |
>150 | B14 |
分解粒度:根据功能的重要性决定(用例图----执行者角色,考虑用户的关注功能)
根据成本、时间决定
取消负数、小数的原因:
1、前提:在编辑框内输入年龄,程序在接收编辑框的内容时,一般以字符(或字符串)的形式接收,再根据需要进行类型转换,如年龄,需要转换为整型
2、小数中的“小数点”和负数中的“负号”都认为是符号,不允许保存
———— e n d ————
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
在此特意为大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面,涵盖功能测试、Python编程语言,接口测试、UI自动化测试、性能测试......包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2022软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..关注下方公众号免费获取~