大家好,又见面了,我是你们的朋友全栈君。
黑盒测试用例设计方法
一、等价类划分法
等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。
等价类划分有效等价类和无效等价类
例如:微信红包的例子【0.01-200】
按数据范围划分:
有效的:0.01-200( 1) 无效的:小于0.01( 2)
大于200( 3)
0.01-200区间小数点后超过2位的值 ( 4)
按数据类型组成划分:
有效:数字 ( 5) 无效:非数字类型,英文,中文,特殊字符,html标签…( 6)
按是否为空
有效:不为空( 7) 无效:为空( 8)
等价类划分法用例设计原则
1)划分有效及无效等价类,为每一个等价类规定一个唯一的编号
2)设计一个新的测试用例数据,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止
3)设计一个新的测试用例数据,使其仅覆盖一个尚未覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止
二、边界值分析法
边界值最有可能出错
1、定义:边界值分析法是对等价类划分法的补充,边界值一般都是从等价类的边缘去寻找。边界值分析的基本思路:正好等于、刚刚大于、刚刚小于边界值作为测试数据。0.01、200
注意:0是一个特殊值,我们在考虑边界值的时候同时也要考虑这个特殊值。负数
2、边界值的作用:人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误!
3、举例子:
eg:比如我们生活中大家所熟悉的微信红包:最小金额0.01,最大金额200元
边界值: 0,0.01,0.02,199.99,200,200.01
特殊值:负数
测试点 | 测试数据 | 测试覆盖 | 边界值 |
---|---|---|---|
输入正确的红包金额【0.01,200】 | 10 | (1)(5)(7) | 0.01,0.02,199.99,200 |
红包输入小于0.01的金额 | 0 | (2) | 0 |
红包金额输入大于200的金额 | 201 | (3) | 200.01 |
0.01-200区间小数点后超出2位的值 | 150.0001 | (4) | |
非数字类型、英文、中文、特殊字符、html标签 | ¥5,$5,5元 | (6) | |
为空 | (8) |
eg:一个输入文件应包括2-255条记录
特殊值:1,2,3,254,255,256 2-255(有效区间、无效区间)
特殊值:0
等价类划分法和边界值分析法常见运用场景
1)输入规定的取值范围或值的个数的情况(类似min<x<max、min<x、max>x);
比如用户名长度、红包金额数值输入范围
2)在输入条件是true和false两种状态的情况: 比如勾选、开关设置
单选按钮:选择、默认选择、切换选项
多选按钮:单选、全选、全不选
3)在拉列表包含多个选项的情况:比如城市下拉选项
4)在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度匹配规则);比如要求用户实名认证、非黑名单、账户资金1000元以上
以上除了等价类之外同时会涉及边界值的分析。边界值还包括以下:
1)报表的第一行、最后一行、中间一行
2)屏幕上光标在最左上、最右下位置
上课练习
注册163邮箱
*邮件地址 输入框 @163.com
6~18个字符,可使用字母、数字、下划线、需以字母开头
第一步 分类
设计输入数据
三、场景法
1)什么是场景法
通过场景描述的 业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景(路径),验证软件系统功能的正确性。
2)如何使用场景法
2.1 画出 流程图
矩形:表示步骤(操作、结果)
菱形:判断—是、否
注意:场景法的重点是测试流程,因此每个流程一个用例验证即可,流程测试没有问题并不能说明系统功能没有问题了,还需要针对 单步的功能进行测试
只有单个功能点和流程测试,才算是充分的测试
ATM取款经常遇到的场景:(一共9种)
1、成功取款(插入银行卡)
2、借记卡不合法
3、取消输入密码
4、密码错误(还有输入的机会)
5、密码错误超过3次(被吞卡)【1,3】 0,1,2,3,4
6、金额不合法(0、负数、非数值类型输入*#)
7、账户余额不足
8、ATM内现金不足
…
工具:在线画流程图工具
思路:
1、正常路径
2、再去根据每一个判断,找 另一个出口的路径
3、确定出错之后还能否正常,再多走一个步骤
四、错误推测法(反推法)
基于经验和直觉推测程序中所有可能存在的各种错误,从而针对性的设计测试用例的方法。它的要素共有三点,分别为: 经验、知识、直觉。
(二八原则)
如何使用?
1、列举出程序中所有可能有的错误和容易发生错误的特殊情况;
2、根据他们选择测试用例
有可能已经想到的测试点,利用等价类和边界值已经覆盖到了
登录
等价类划分和边界值分析
1、正确用户名、正确密码、点击登录按钮 —-登录成功
2、错误密码
3、用户名不存在(不存在)
4、用户名错误
5、空用户名、空密码、包含空格情况
错误推断,无法通过上述方法覆盖到
6、多次输入错误密码,是否安全提示
7、修改密码后输入原密码是否支持登录
8、单点登录、多点登录、异地登录
9、网络情况测试
单点登录:一个账号只能在一个地方登录
多点登录:多个人可以登录同一账号、多个平台可以登录同一个账号;会出现重复提交
案例详解:
某平台登录页面
既然是用错误推测法,那么我们首先列出所有可能导致结果出错的情况,如下:
1、用户名跟密码的对应关系校验
2、账号或密码为空
3、用户名和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
满足格式要求但不是正确的
4、用户名和密码中有特殊字符(比如空格),和其他非英文的情况(是否做了校验)
5、用户名和密码前后有空格的处理(过滤)
6、错误登录的次数限制
7、提交登录时,网络异常
8、多次点击提交操作,只能执行一次
…
后台服务器与系统已存在的用户信息做匹配校验!
登录密码【6-16,字母数字常用字符组合】(格式是否满足 满足格式是否与已存在信息一致)
lanxin12345 正确密码 lanxin1234
正交法和因果图分析法(这两种方法暂时不讲,很少用到,金融类可能后比较多,有了一定的经验后)
五、测试用例方法的选择
使用各种测试方法的综合策略
1)首先,进行等价类划分,主要是输入条件的划分,这是提高测试效率的最有效的方法,在任何情况下都必须使用边界值分析法,这种方法设计出的测试用例发现程序错误的能力最强。
切记不要穷举测试
2)用错误推测法追加测试用例,这需要测试工程师的经验总结
3)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到覆盖标准,应当再补充足够的
测试用例(场景法)
具体如何设计,可以结合项目要求或自己的标准来做,灵活运用
笔试面试题整理
1、编写测试用例会用到什么方法
接着问,你觉得你在写用例的时候用到了吗?(结合项目来答)
2、给出一个登录/购物车/支付页面,直接让你设计尽可能多的用例
作业
输入边A、B、C三个值,判断是否构成三角形,如果是等腰三角形(直角、等边)就输出等腰(直角、等边)三角形
分析思路:
首先要考虑a、b、c是否为正数:a>0,b>0,c>0
三角形判断依据:三角形任意两边之和大于第三边 a<b c;b<a c;c<a b
直角三角形判断依据:勾股定理:a的平方 b的平方=c的平方
等腰三角形判断依据:两边相等 a=b不等于c,a=c不等于b,b=c不等于a
等边三角形判断依据:三边相等:a=b=c
1、场景法:画出流程图,并整理测试点(等价类边界值进行用例补充)
2、等价类划分法,整理出测试点
二选一来完成
输入 | 有效等价类 | 无效等价类 |
---|---|---|
是否为三角形的三条边 | a>0 (1) | a<=0 (7) |
b>0 (2) | b<=0 (8) | |
c>0 (3) | c<=0 (9) | |
a b>c (4) | a b<=c (10) | |
a c>b (5) | a c<=b (11) | |
b c>a (6) | b c<=a (12) | |
是否为等腰三角形的三条边 | a=b(13) | a≠b且b≠c且a≠b(16) |
b=c(14) | ||
a=c(15) | ||
是否为等边三角形的三条边 | a=b=c(17) | a≠b(18) |
a≠c(19) | ||
b≠c(20) | ||
是否为直角三角形的三条边 | a² b²=c²(21) | a² b²≠c²(22) |
a,b,c | 覆盖等价类 | 输出 |
7,8,10 | (1)(2)(3)(4)(5)(6) | 一般三角形 |
0,3,2 | (7) | 非三角形 |
3,0,2 | (8) | 非三角形 |
1,2,0 | (9) | 非三角形 |
1,2,3 | (10) | 非三角形 |
1,3,2 | (11) | 非三角形 |
3,2,1 | (12) | 非三角形 |
3,3,7 | (1)(2)(3)(4)(5)(6)(13) | 等腰三角形 |
7,3,3 | (1)(2)(3)(4)(5)(6)(14) | 等腰三角形 |
3,7,3 | (1)(2)(3)(4)(5)(6)(15) | 等腰三角形 |
7,8,9 | (1)(2)(3)(4)(5)(6)(16) | 非等腰三角形 |
8,8,8 | (1)(2)(3)(4)(5)(6)(17) | 等边三角形 |
3,4,4 | (1)(2)(3)(4)(5)(6)(18) | 非等边三角形 |
3,4,4 | (1)(2)(3)(4)(5)(6)(19) | 非等边三角形 |
4,3,3 | (1)(2)(3)(4)(5)(6)(20) | 非等边三角形 |
3,4,5 | (1)(2)(3)(4)(5)(6)(21) | 直角三角形 |
3,4,6 | (1)(2)(3)(4)(5)(6)(22) | 非直角三角形 |
注意:没有办法证明测试点是否覆盖全面,要理解知识点,不要去背,理解了才是你的
按照方法去整理出来的测试点
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131395.html原文链接:https://javaforall.cn