测试设计方法二(全面测试的利剑)

一、判定表法

引言:

在学判定表法之前,有这样一个需求片段:

一款聊天软件,当你手机断网或者由于账号处于风险中,则不能使用聊天功能。

请大家思考,如果对这个需求片段进行测试用例设计,使用等价类方法,该如何设计呢?

输入条件

有效等价类

无效等价类

手机网络情况

断网(1)

没断网(2)

账号安全情况

账号处于风险中(3)

账号未处于风险中(4)

测试用例:

断网并且处于风险中,不能使用(1,3)

没断网并且账号处于风险中,不能使用(2)

断网并且账号未处于风险中,不能使用(4)

以上测试用例等价类覆盖率达到了百分百,但还请大家思考一个问题,以上的测试用例是否缺一些东西?

相信各位思考完后便会发现,账号能够使用的测试用例,通过等价类划分法并不能设计出来,这在等价类划分法优缺点那里也说过了,等价类划分法不测试各种输入条件取值的组合,这就导致他可能遗漏一些重要的测试用例,这时候就需要判定表法了。

1.定义

分析和表达多种输入条件完成不同动作的一种工具方法,这种方法能够将具有复杂逻辑关系的条件进行组合,并且表达清晰和明确。

2.相关术语

条件桩:输入条件

条件项:输入情况的取值情况

动作桩:输出结果

动作项:输出结果的取值情况

3.判定表法的使用步骤

(1)将软件需求规格说明书划分成需求子片段

(2)分析需求子片段,找出条件桩,条件项,动作桩,动作项

(3)将条件项进行组合,得出测试规则组合数

(4)完成测试规则的组合

(5)分析完成的组合,对相似规则进行合并化简(注意:相似化简可以减少测试工作量,但可能会出现内部逻辑测试遗漏问题,所以需要谨慎)(逻辑测试用例,概要测试用例)

(6)分析生成的每条规则,比较时结合等价类和边界值生成最终的测试用例(详细测试用例)

补充:关于以上要说一下,判定表法是设计的逻辑测试用例,也就是概要设计用例,而通过逻辑设计后,仍然要回到等价类划分法以及边界值分析法来进行详细测试用例的设计

4.综合案例

某相亲软件,用户要修改登录密码,要求:输入正确的原密码,输入两次一样的新密码新密码的复杂度要满足8~15位,包含大写字母、小写字母、数字以及特殊字符。

条件桩

条件项

原密码是否正确

是;否

新密码两次是否一样

是;否

新密码复杂度是否符合要求

是;否

注意,判定表法是找出需求片段符合逻辑的所有组合,所以,当你使用判定表法的时候,暂时不用考虑动作桩和动作项,动作桩和动作项是依赖条件桩和条件项组合而出来的结果,这一点其实很好想清楚,但是初学者有时候在没明白的情况下,一直在纠结动作的事情,这里提示一下。

由三个动作项可以得出,组合数一共有8种。一下用1和0代表是和否。

动作桩/动作项

1

2

3

4

5

6

7

8

原密码是否正确

1

1

1

1

0

0

0

0

新密码两次是否一样

1

1

0

0

1

1

0

0

新密码复杂度是否符合要求

1

0

1

0

1

0

1

0

动作:密码修改成功

Y

N

N

N

N

N

N

N

以上便是需求片段能够得出的所有组合,那现在大家再思考一个问题,以上的所有组合,有些是否可以合并呢?

答案当然是肯定的,但是一定要经过思考,再看接下来的内容。

就比如说,如果你的原密码不正确,那接下来不管你两次新密码是否一样或者新密码复杂度是否符合要求,都不影响测试结果了,所以这时候,我们就可以测试任意一种原密码不正确的情况了,也就是5,6,7,8这几种合成一个测试用例即可。

这里留一道思考题,是否还有别的合并方式呢?

注意:(1)经过合并的测试项,不能再参与别的组合的测试合并,这一点一定要记住,就比如一项5,6,7,8你最后选择了5,那么5便不能再参与前面1,2,3,4可合并的项了。

(2)合并能够大大减少我们工作时的工作量,但是要明白一点,我们这里做的是黑盒测试,我们盲目的合并,有时候可能会导致代码的逻辑缺失,所以合并的时候要谨慎小心。

5.特点和适用范围

(1)特点:判定表法测试的是各种输入条件取值的组合,测试比较全面,覆盖较全,测试效果很好,但是全组合就会导致测试规则数量多,从而加大测试用例数量,增加测试的工作量,测试成本较高,同时能够发现需求种描述不够严谨的缺陷,对于很复杂逻辑关系需求无法胜任。

(2)适用范围:功能测试

6.注意事项

(1)条件桩的顺序对生成的规则没有影响

(2)动作桩的顺序对生成规则没有影响

(3)每条规则都是独立的,互相之间没有影响

二、因果图法

引言:

因果图法是为判定表法服务的,一定要先把上面的判定表法弄懂,再来看这一部分。

1.定义

因果图法是将具有特别复杂逻辑关系的需求转化为判定表的一种中间系统化分析方法。

2.相关术语

(1)原因:输入条件(条件桩:布尔量)注意:因果图法就是处理布尔条件的,不符合布尔条件,要转化为布尔条件

(2)结果:输出(动作桩:布尔量)

(3)中间节点:

I当多个原因不是单纯的与和或的关系,利用中间节点存取中间结果,使得因果图更加清晰

II当多个原因都在描述同一件事情,利用中间节点归并逻辑,使得因果图更加清晰

3.逻辑关系

(1)因果逻辑关系

因果逻辑关系

解释说明

举例

图标表示

恒等

满足条件,则给出结果

某电商软件系统,如果你是vip用户(原因),则你可以享受9折优惠(结果)

满足条件,则不给出结果

某电商软件系统,如果你是vip用户(原因),则不能给你9折优惠(结果)

多个原因,并且多个原因要同时满足,则给出结果

某招聘软件,一公司hr招聘时简历筛选,要求本科,计算机专业,35岁以下,工作一年以上,以上要同时满足(原因),结果简历合格(结果)

多个原因,满足其中一条,则给出结果

某招聘软件,一公司hr招聘时简历筛选,要求本科,计算机专业,35岁以下,工作一年以上,以上满足一条即可(原因),结果简历合格(结果)

(2)原因之间的制约关系

原因制约关系

解释说明

举例

互斥(E)

多个原因,至多有一个原因为真,可以同时为假,但不能同时为真

某相亲软件,只可以在异性中选择一位心仪对象进行交流,可以都不选

包含(I)

多个原因,至少有一个原因为真,可以同时为真,但不能同时都为假

某考试试卷中,多选题,至少有一个正确选项

唯一(O)

多个原因,有且只有一个为真,不能同时都为真,不能同时都为假

某考试试卷中,单项选择题,有且只有一个正确选项

要求(R)

两个原因1、2,1为真要求2为真,1为假,对2不做要求

某相亲软件,进行用户登录时,密码正确,要求你账号也要正确才能登录,密码不正确,你账号无所谓正不正确,都无法登录

强制(M)

两个原因1、2,1为真强制2为假,1为假,对2不做要求

这样一个场景,当你用某软件时,你选择某一项功能,就导致你另一项功能不能使用了。

4.因果图法的使用步骤

(1)将软件需求规格说明书划分成需求子片段

(2)分析需求子片段的原因和结果

(3)分析原因和结果之间的关系,画出因果图

(4)分析原因之间是否存在制约关系,做出标识

(5)根据因果图得出判定表

(6)分析判定表根据制约关系,删除不符合逻辑规则的情况

(7)对判定表进行合并化简

(8)必要时结合等价类边界值进行最终测试用例的编写

5.综合案例

例1.一款聊天软件,当你手机断网或者由于账号处于风险中,则不能使用聊天功能。

例2:某相亲软件,用户要修改登录密码,要求:输入正确的原密码,输入两次一样的新密码新密码的复杂度要满足8~15位,包含大写字母、小写字母、数字以及特殊字符。

6.特点和适用范围

(1)特点:测试各种输入条件取值的组合,测试比较全面,覆盖比较多,测试效果很好,全组合导致测试规则数量多,从而加大测试用例数量的增加,工作量加大,有制约关系可以快速删减不符合逻辑的规则提高测试效率,能够发现需求中描述不够严谨的缺陷,对于特别复杂逻辑关系需求能够胜任,对测试人员的逻辑思维能力要求比较高,比较难于绘制。

(2)使用范围:功能测试

链接:等价类划分法和边界值分析法

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值