搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
菜鸟追梦旅行
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
postman导入请求到jmeter进行简单压测,开发同学一学就会_postman能调通jmeter
2
docker export、import、save、load 区别_docker load -i指定镜像名
3
今日arXiv最热NLP大模型论文:微软重磅:AgentAI,下一代人工智能的关键_csdn。人工智能论文
4
Stable Diffusion教程|Controlnet插件详解和实战_sd插件 controlnet
5
Data truncation: Incorrect datetime value: '' for column 'start' at row 1的解决方法_data truncation: incorrect datetime value: 'system
6
【Python进阶】主流电商平台数据分析||数据采集返回商品详情主题链接主图SKU数据
7
python美化图形化界面设计,pythontkinter界面美化_python界面设计
8
oracle数据每小时同步一次
9
ChatGPT最强?文心一言与ChatGPT对比_文心一言会员比gpt-3.5 前端代码解答强吗
10
190.【华为OD机试】员工派遣(二分查找—Java&Python&C++&JS实现)_c++ 员工派遣 二分法
当前位置:
article
> 正文
测试用例的几种常见设计方法_对一个测试点用3种不同方法写用例
作者:菜鸟追梦旅行 | 2024-05-24 18:01:07
赞
踩
对一个测试点用3种不同方法写用例
测试用例的几种常见设计方法
测试
用例
常见的设计方法有:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
一.等价类划分法
顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个
有代表性
的值作为测试用例。
例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。
然后从每个子集选出
若干个
有代表性的值:
空用户名:“”
(无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
1-7位数字:"234"
(无效等价类实例)
8位数字:"00000000"
(有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
9位或以上数字:"1234567890"
(无效等价类实例)
非数字:"abc&!!!"
(无效等价类实例)
他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
等价类的划分,最关键的是子集的划分。实际上,非数字还可以继续划分子集:字母,特殊字符。
究竟要划分到何种程度才合适呢?我请教过做测试的朋友,他的意见是,看你有多少资源和时间,还有,看是否值得。
对此,我表示赞同,毕竟无论你怎么测试,总会有未发现的缺陷存在,所以,先解决容易被发现的问题再说。
二.边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。
三.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。
四.判定表法
又称为策略表,基于策略表的测试,是
功能测试
中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
例如,某公司的对客户分类标准如下:
顾客每次订货额在 1000元以上(含1000元),信誉好的,订单设“优先”标志;
信誉不好,但是老客户的,订单设“优先”标志;
信誉不好,但是新客户的,订单设“正常”标志;
每次订货额在 1000元以下,订单设“正常”标志。
绘制的决策表如下:
此表分两大行,两大列,分别用不同的颜色区别。
浅蓝:列出所有条件(或称为输入)
浅灰:列出所有结果(或称为输出,行动或决策)
浅黄:穷举所有条件的组合
浅绿:根据每一列的条件,判断出结果
因为穷举了所有条件,所以可以说这个判断是100%正确的。下一步是对这个表进行合并优化。
例如,从编号为1,2的列可以看出,顾客订单>=1000,信誉好,不管是新顾客还是老顾客,都设为优先,于是上面的表合并整理后,得到下表
这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
从上面的表格,我们就可以写出更简洁的判断语句。
五.正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
例如:
某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
按照传统的方式,我们将会穷举所有的组合,来编写测试用例,组合个数是2*2*2=8。
排列组合参见下表
当组合条件不多的时候,穷举暂时没问题,但是,一旦条件多了,组合个数就会以指数形式增长。
这个时候,就要用到正交表了,通过选出有代表性的测试实例,达到以少数代替全面的效果。
正交表如何设计呢,这个问题实际很复杂,涉及到组合统计的数学知识,有的正交表甚至到目前为止,还未得出算法。
我们只能通过已知的模型套上去。
例如,Dr. Genichi Taguchi 设计的正交表
https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
Technical Support ( support.sas.com ) com 提供的
http://support.sas.com/techsup/technote/ts723_Designs.txt
首先,我们来看看基本的概念。
因素:被测的元素称为因素,例如上面的性别,班级,成绩,均为因素,因素的个数我们记为k,此处k=3
水平:因素的可能值,称为水平。例如班级的可能值为1或2。水平的个数我们记为m,此处正好每个因素的水平都是2,此处m=2。
那么正交表的行数n的计算公式为,n=k*(m-1)+1,此处为n=3*(2-1)+1=4。即共有4行。
我们通常用L表示这个正交表,完整的表示为Ln(mk)
如果每个因素的水平数相等,我们称之为单一水平正交表,例如本例子就是,L4(23)
各列水平数不完全相同的正交表称为混合水平正交表。如L8(4124),表示有一个因素的水平为4,有4个因素的水平为2。
按照这个表达式,我们可以去套用已知的正交表。例如本例子是L4(23),从上面提供的两个链接均可以查到例子,虽然表达方式略有不同,但实际是一样的,我们从http://support.sas.com/techsup/technote/ts723_Designs.txt 查到,其正交表的格式为:
23 n=4
000
011
101
110
此处0,1是对可能值的编号,例如,我们可以将(0,1)分别映射为(女,男)(1班,2班)(及格,不及格)
按照上面的格式,
000:女 1班 及格
011:女 2班 不及格
101:男 1班 不及格
110:男 2班 及格
这就是我们所得到的正交表。
六.总结
功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
转自:http://www.51testing.com/html/30/n-3719130.html
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/618552
推荐阅读
article
MySQL
驱动
下载,
JaveIDEA2022
如何导入
mysql
数据库
驱动
_
2022idea
数据库
m...
mysal
驱动
下载以及
JaveIDEA2022
如何导入
mysql
数据库
驱动
_
2022idea
数据库
mysql
的
驱动
下载...
赞
踩
article
3.2
-常见
NLP
技术
_
nlp
箭头向下
技术
...
目录通用的处理
技术
基础
技术
复杂
技术
通用的处理
技术
基础
技术
停用词(Stopword)和同义词(synonym)TF-IDF...
赞
踩
article
作为
程序员
,
你
应该知道
的
职场
晋升
之
路 ...
编者按:职业规划非常重要
的
一点是要学会角色分析能力。大部分人在长期
的
工作中趋于麻木,对自己
的
角色并不清晰。但是,在职者必...
赞
踩
article
MidTool
-
毕业
论文
降重
工具
:
毕业
季的救星...
MidTool
-
毕业
论文
降重
工具
的出现,为广大即将
毕业
的学生们解决了论文
降重
的烦恼,让他们可以更加专注于论文的内容和质量...
赞
踩
article
视频
监控
ai
垃圾箱
满溢监测
算法
系统...
视频
监控
AI
垃圾箱
满溢监测
算法
系统基于先进的AI智能
算法
,
视频
监控
ai
垃圾箱
满溢监测
算法
系统在垃圾投放点安装了AI
监控
摄...
赞
踩
article
.
gitignore
文件
的位置
_
gitignore
在哪...
这篇博客就放几行Git命令。1、关于忽略
文件
的配置。git rm -r --cached .git add .git c...
赞
踩
article
运维36讲第25课:
容器
监控
实践:
Prometheus
、
Grafana
方案
介绍
_prometheu...
首先来
介绍
Prometheus
,可能你对它的了解相比 Zabbix 会更陌生一些,
Prometheus
是一套由 GO...
赞
踩
article
Linux
——
信号量
...
Linux
——
信号量
Linux
——
信号量
Linux
...
赞
踩
article
智能
革命:揭秘AI
如何
重塑创新与
效率
的
未来_
ai
如何
带来更高
效率
的
技术
迭代...
智能
革命:揭秘AI
如何
重塑创新与
效率
的
未来_
ai
如何
带来更高
效率
的
技术
迭代
ai
如何
带来更高
效率
的
技术
迭代 ...
赞
踩
article
Sicar
-从基于TIA
Potal
的
汽车行业
自动化
标准
看数字化制造...
写在前面众所周知,
汽车行业
是一个高度
自动化
和
标准
化
的
行业(相比较于普通行业),很多汽车公司都有着自己
的
自动化
标准
,下面列...
赞
踩
article
suno
AI
接口
申请-
AI
音乐
接口
如何
接入
,在哪体验
_
suno
接口
...
毫秒api已经支持了
suno
接口
,大家可以去使用了,另外毫秒用的是付费账号,所以创作的歌曲是有版权的。跟“即屁替”的
接口
...
赞
踩
article
校园
霸凌
行为监测AI
预警系统
...
校园
霸凌
行为监测AI
预警系统
基于AI视觉智能分析算法,
校园
霸凌
行为监测AI
预警系统
通过已安装的监控摄像头对
校园
现场画面进...
赞
踩
article
字符串
二进制
数字
转换
java
_如何将
二进制
数据
转换
为
字符串
并返回到
Java
中?...
String(byte[])将数据视为默认字符编码。因此,如何将字节从8位值
转换
为16位
Java
Unicode字符将不...
赞
踩
article
.
gitignore
文件
无效问题
Git
命令
解决方案
_
没有
gitignore
文件
...
目录
解决方案
解决方案
依次输入下面命令:1、清除缓存记录git rm -r --cached .2、添加修改
文件
git a...
赞
踩
article
【
CVHub
】《
万
字长
文带
你
解读
AIGC
》系列之
入门篇
...
随着ChatGPT的病毒式传播,生成式人工智能(
AIGC
, a.k.a AI-generated content)因其分...
赞
踩
article
注意力
机制篇 |
MSFE
:
即插即用
的多
尺度
滑窗
注意力
(附源码实现)...
多
尺度
滑窗
注意力
(Multi-Scale Sliding Window Attention,
MSFE
)是一种用于处理图像...
赞
踩
article
变电站
设备
状态
识别
无人值守巡检系统...
变电站
设备
状态
识别
无人值守巡检系统基于智能视频分析技术和深度学习技术,
变电站
设备
状态
识别
无人值守巡检系统通过现场已经装好...
赞
踩
article
降重
替换
词大全
ai
写作_
ai
降重
关键字
...
今天,就为大家分享一些实用的
降重
替换
词,并介绍三个论文
降重
工具:小发猫、小狗伪原创和xiaofamao。1️⃣
替换
词大...
赞
踩
article
Java
中
Socket
通信的基本方法_
socket
.
getinputstream
() 接收二进制
数据
...
从
Socket
中读取
数据
创建
Socket
连接到Server
Socket
chat
Socket
= new
Socket
(...
赞
踩
article
ubuntu
环境变量
设置无效_
Ubuntu
16.04
root
环境变量
不生效问题
解决方案
...
在
Ubuntu
16.04
中配置JDK
环境变量
,但是在切换到
root
时不生效 。在/etc/profile中添加如下:e...
赞
踩
相关标签
数据库
mysql
java
intellij-idea
自然语言处理
人工智能
nlp
作为程序员
你应该知道的职场晋升之路
gpt
论文阅读
大数据
YOLO
计算机视觉
算法
运维
prometheus
grafana
linux
ai
fastapi
边缘计算
深度学习
opencv