黑盒测试用例测试方法

2022-07-01 12:47:04 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

黑盒测试用例设计方法

一、等价类划分法

等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。

等价类划分有效等价类和无效等价类

例如:微信红包的例子【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

0 人点赞