用例设计方法之判定表、因果图、正交表等等
深圳多测师小树原创
日期:2019-12-07
黑盒测试:对程序外部进行测试白盒测试:对代码/逻辑结构(内部)进行测试
术语一:
动态测试(dynamic testing):通过运行软件的组件或系统来测试软件
静态测试(static testing):对组件的规格说明书进行评审,对静态代码进行走查
正式评审(formal review):对评审过程及需求文档的一种特定评审
度量(metric):测量所使用的方法或标准
评审员(reviewer):参与评审的人
记录员(scribe):记录评审会议上的会议纪要
术语二:
复杂性(complexity):系统或组件的设计或内部结构比较复杂,导致难以理解,维护或验证的程度
圈复杂度(Cycloramic complexity):程序中独立路径的数量。可以衡量一个组件模块的判定结构的复杂程度
控制流(Control Flow):执行组件或系统的一系列顺序的路径
数据流(Data Flow):表示数据对象的顺利或状态发生变化的过程
技术评审(Technical Review):同行间对技术进行的评审,目的是技术实现达成共识走查(Walkthrough):由文档作者逐步陈述文档内容,以收集信息并对内容达成一致
主要包括三个方面:
1. 控制流图与圈复杂度
2. 白盒测试技术与黑盒测试技术,基于经验的测试技术
3. 基于WEB的系统测试方法(上一节课已经讲完)
圈复杂度:程序中独立路径的数量,可以衡量一个组件模块的判定结构的复杂程度。
计算对象是结构图或程序图,而程序图又包括控制流图与流程图。
圈复杂度的三个通用公式:
1.V=E-N+2(E:结构图的边数 N是节点数) V(G)=10-7+2=5
2.V=区域数
3.V=P+1(P是判定节点数)
判定节点为:1,2,3,4
上图里有几条路径:
1-4-6
1-2-5-6
1-4-5-6
1-2-3-7-6
1-2-3-2-5-6
黑盒测试方法:等价类,边界值,判定表,因果图,正交表,场景法,状态迁移。 *重点!!
白盒测试方法:语句覆盖,判断覆盖,条件覆盖,判断,条件覆盖,路径覆盖(基本路径法,Z路径法)。 *重点!!
经验测试方法:错误推测法,异常分析法,随机测试。
等价类:指某个输入域的集合,在集合中各个输入的条件都是等效的。 *重点!!
等价类分为:有效等价类:对程序规格说明有意义的、合理的输入数据 。
无效等价类:对程序规格说明无意义的、不合理的输入数据。
例子:
1个有效等价类[1970,2010]
2个无效等价类(-∞,1970),(2010,+∞)
边界值:
边界点定义 *重点!!
上点:边界上的点
离点:离上点最近的点(即上点左右两边最邻近的点)
内点:在域范围内的点
上点:1970,2010
离点:1969,2011
内点:2009
闭区间:[1970,2010] 测四个:1969,1970,2010,2011
开区间:(1970,2010) 测四个:1970,1971,2009,2010
半闭半开:[1970,2010) 测四个:1969,1970,2009,2010
半开半闭:(1970,2010] 测四个:1970,1971,2010,2011
[1970,2010]等价类中的等价是什么?
答:1970,1971,1972,2010都是等价的。
测试用例的模版:
HW的用例模版:
用例ID 用例描述 重要级别 预置条件 测试步骤 输入数据(可选) 预期结果(可能有多个)
等价类:有效等价类
无效等价类
边界值:
上点:边界上的点
离点:离边界最近的点
离点:区间内的点
等价类案例:现有一个档案管理系统,容许用户通过输入年月对档案文件进行检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6位数字字符组成,前4位表示年
后2位表示月,现场编写8个测试用例:
用例数据如下:
有效等价类:
200311
无效等价类:
2000aa
20001
20001212
198808
205808
200000
200013
等价类用例设计思路:
1,并非所有有效等价类一定有效
2,等价类的覆盖可以重复覆盖
接着学习了黑盒测试方法:判定表,因果图,正交表,场景法,状态迁移图。 *重点!!
经验测试方法:错误推测法,异常分析法,随机测试。
一:判定表
判定表定义:分析和表达多逻辑条件下的执行不同操作的情况
结构:由4个部分组成
1)条件桩(condition stub):列出问题的所有条件(通常条件次序无关紧要)
2)条件项(condition entry):列出针对它条件的取值(所有情况下的真假值)
3)动作桩(action stub):列出问题规定可采取的动作(顺序无约束)
4)动作项(action entry):列出条件各种情况的应采取的动作
创建的步骤:
1)确定规则的个数:若有N个条件,每一个条件下有2个值,则有2^n种规则。
2)列出所有条件桩与动作桩。
3)输入条件项。
4)输入动作项得到初始判定表。
5)简化(合并相似规则)。
6)编写测试用例。
例子:以12306登入写出判定表! *重点!!
*每一个条件真假取值的组合
每一个竖向都是一个用例
C21*C21*C21 (阶乘算法) 0的阶乘为“1”
=2*2*
=8种排列组合
C31(1真2假)+C32(2真1假)+C33(全为真)+C33(全为假)
=3+3+1+1
=8
注:也可用Web页面需要填写的信息资料来进行测试[8-10个字段]
如:姓名,出生年月,手机号,QQ号等..
二:因果图
因果图定义:提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件
结果是对输入执行的一系列计算后得到的输出。因果图方法最终生成的就是判定表。
*做题时优先选择因果图
因果图逻辑关系:
或:或者,要么,或许,还有,OR,/,V,||
与:和,且,and, ^ ,& ,&&(地址符)
非:不是,否,no,not,~
等于:=(赋值符),a=a+1(把a+1的值赋值给"a")
不等于:< >,!=
因果图案例:
一个处理单价为5角钱的饮料的自动售货机。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,
则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币
也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
条件桩为:1,售货机有零钱
2,投入1元硬币
3,投入5毛硬币
4,按下橙汁按钮
5,按下啤酒按钮
C55+C51+C52+C53+C54+C55
=1+5+10+10+5+1
=32种排列组合
列子:a.b.c是“与”的关系,但是其中a与b是“异”的关系,d与a.b.c是或的关系,那么a&c/d为真的情况有几种?
C33+C31+C32+C33
=1+3+3+1
=8
因为a与b是“异”的关系,a,b不能同时为“0”或“1”,所以排除111 ,001,110,000
最后剩下5种结果:
10/1
00/1
11/1
01/1
11/0
因果图的4种基本关系:
1)恒等:c1=1 则e1=1 否则e1=0
2) 非:c1=1 则e1=0 否则e1=1
3)或:c1或c2或c3=1 则e1=1 否则e1=0 (7种真)
4)与:c1和c2=1 则e1=1 否则e1=0
E约束(异):a和b中最多有一个可能为1,即a和b不能同时为"1"
I约束(或):a.b.c中至少有一个必须为1,即a.b.c不能同时为“0”
三:正交表
正交表特点:
1)正交表当中必须有一行为全真或全假。
2)整齐可比性:同一个正交表当中,每一个因素每一个水平出现的次数要相同。
3)均衡分散性:在同一张正交表中,任意俩列(俩个因素)的水平搭配(横向形成的数字对)是完全相同的。
4)正交表行数的确定:选取比例数大且最接近的偶数,
a,列数为奇数,则行数=列数+1
b,列数为偶数,则行数=列数+2
5)正交表中的一行为一条用例,必须要增加全真或全假的用例,当我们写用例的时候当表中只有全真那一行的时候,则最后增加全假的那条用例,反之亦然。
例子:
需要了解更多技术和获取更多免费技术视频的可以微信我(15367499889)或者加入我们多测师的技术交流群:
关注我们多测师的微信公众号定期获得福利哦!!!
更多免费软件测试和python、Java开发、大数据和人工智能的学习资料就在多测师官网地址:http://www.duoceshi.cn
加入我们只需要三个月就可以月薪上万!!!
上一篇: 深圳多测师45班
下一篇: 软件测试之手工测试人员如何转测试开发?