【软件测试基础 】等价类分析法
软件测试基础,软件测试用例分析方法中,等价类是最常用最基本的方法,以下整理出一些参考资料(整理自互联网),希望对大家测试设计有帮助
等价类分析法
等价类测试分析
等价类
定义: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软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..关注下方公众号免费获取~
相关文章
- Java基础__Integer类型中的自动装箱
- C基础--函数指针的使用
- Java实现 蓝桥杯VIP 基础练习 龟兔赛跑预测
- Testing - 软件测试知识梳理 - 基础概念
- 大数据基础之Drill(1)简介、安装及使用
- Linux基础之redhat6升级glibc-2.12到2.14
- vue框架-基础6-vue-调用后端接口,axios使用,跨域问题
- C/C++基础讲解(五十四)之图形篇(VGA256色模式编程)
- Webpack基础应用篇 - [6]搭建开发环境
- 经验分享:我是怎样从一个0基础小白转行软件测试,拿到20k的高薪?
- Python编程系列---初始Python编程基础
- 会计基础—003
- 热力学4大定律的综合思考(心理学的基础:生命的节能模式)
- [C/C++标准库]_[0基础]_[交集和补集]
- 零基础小白学习软件测试需要多久?
- 我都40了,零基础转行到软件测试还有前途吗?
- 软件测试基础①——面试题分析【笔记】
- 0基础转行软件测试,3个月真的能学会吗?分享一波我的真实经验.....
- 0基础学习,软件测试到月薪20k(心得分享)
- 0基础如何转行软件测试?一文2000字从4个方面带你成功转行....
- 【软件测试基础】Web测试基础中输入框测试
- 【软件测试】让0基础纯小白也能上手写Python,保姆级教程(一)
- 软件测试工程师必备技能之Java基础
- python基础===拆分字符串,和拼接字符串
- python基础===修改属性的值
- 史上最简SLAM零基础解读(10.4) - g2o(图优化)→示例代码讲解(slam十四讲第二版为例)
- 【知识产权基础之专利权】第十章 专利侵权判断与法律责任
- UVM基础-Sequence、Sequencer(一)
- 0基础如何学习软件测试?熬夜7天整理出这一份3000字超全学习指南