北大测试全套课件和教案 14 第5章 第4讲Word文档下载推荐.docx
- 文档编号:5780015
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:17
- 大小:244.31KB
北大测试全套课件和教案 14 第5章 第4讲Word文档下载推荐.docx
《北大测试全套课件和教案 14 第5章 第4讲Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《北大测试全套课件和教案 14 第5章 第4讲Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
◆错误推测法(5分钟)
◆功能图法(10分钟)
3、课后小结(5分钟)
4、布置作业(2分钟)
教学参考书:
1.软件测试方法和技术朱少民清华大学出版社
2.软件测试PaulC.Jorgensen机械工业出版社
作业:
1.因果图中有哪些关系和约束?
2.简述用因果图法设计测试用例的步骤。
复问题目:
序号
题目
学生
成绩
1
2
3
教学内容与方法步骤
5.4因果图方法
引言:
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。
考虑输入条件之间的相互组合,可能会产生一些新的情况。
但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。
因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。
这就需要利用因果图(逻辑模型)。
因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
5.4.1因果图介绍
1.图例说明
1)4种符号分别表示了规格说明中向4种因果关系。
如图5-3所示。
图5-3因果图关系
2)
因果图中使用了简单的逻辑符号,以直线联接左右结点。
左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
3)
ci表示原因,通常置于图的左部;
ei表示结果,通常在图的右部。
ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
2.因果图概念
1)
关系
①恒等:
若ci是1,则ei也是1;
否则ei为0。
②非:
若ci是1,则ei是0;
否则ei是1。
③或:
若c1或c2或c3是1,则ei是1;
“或”可有任意个输入。
④与:
若c1和c2都是1,则ei为1;
“与”也可有任意个输入。
约束
输入状态相互之间还可能存在某些依赖关系,称为约束。
例如,某些输入条件本身不可能同时出现。
输出状态之间也往往存在约束。
在因果图中,用特定的符号标明这些约束。
如图5-4所示。
图5-4因果图约束
A.输入条件的约束有以下4类:
①E约束(异):
a和b中至多有一个可能为1,即a和b不能同时为1。
②I约束(或):
a、b和c中至少有一个必须是1,即a、b和c不能同时为0。
③O约束(唯一);
a和b必须有一个,且仅有1个为1。
④R约束(要求):
a是1时,b必须是1,即不可能a是1时b是0。
B.输出条件约束类型
输出条件的约束只有M约束(强制):
若结果a是1,则结果b强制为0。
3.利用因果图生成测试用例的基本步骤:
(1)分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
(2)分析软件规格说明描述中的语义。
找出原因与结果之间,原因与原因之间对应的关系。
根据这些关系,画出因果图。
(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现。
为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。
(4)把因果图转换为判定表。
判定表(DecisionTable)是分析和表达多逻辑条件下执行不同操作的情况下的工具。
在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。
由于它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。
因此,利用判定表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:
针对不同逻辑条件的组合值,分别执行不同的操作。
判定表很适合于处理这类问题。
A.判定表通常由四个部分组成,如图5-5所示:
图5-5判定表的组成
●条件桩(ConditionStub):
列出了问题得所有条件.通常认为列出得条件的次序无关紧要。
●动作桩(ActionStub):
列出了问题规定可能采取的操作.这些操作的排列顺序没有约束。
●条件项(ConditionEntry):
列出针对它左列条件的取值.在所有可能情况下的真假值。
●动作项(ActionEntry):
列出在条件项的各种取值情况下应该采取的动作。
B.规则及规则合并
规则:
任何一个条件组合的特定取值及其相应要执行的操作。
在判定表中贯穿条件项和动作项的一列就是一条规则。
显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。
化简:
就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。
C.判定表的建立步骤:
(根据软件规格说明)
①确定规则的个数。
假如有n个条件.每个条件有两个取值(0,1),故有2n种规则。
②列出所有的条件桩和动作桩。
③填入条件项。
④填入动作项.等到初始判定表。
⑤简化、合并相似规则(相同动作)。
如图5-6(a)左端,两规则动作项一样,条件项类似,在1、2条件项分别取Y、N时,无论条件3取何值,都执行同一操作。
即要执行的动作与条件3无关。
于是可合并。
“-”表示与取值无关。
与(a)类似,(b)图中,无关条件项“-”可包含其他条件项取值,具有相同动作的规则可合并。
(a)(b)
图5-6判定表合并规则举例
(5)把判定表的每一列拿出来作为依据,设计测试用例。
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
B.Beizer指出了适合使用判定表设计测试用例的条件:
①规格说明以判定表形式给出,或很容易转换成判定表。
②条件的排列顺序不会也不影响执行哪些操作。
③规则的排列顺序不会也不影响执行哪些操作。
④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
5.4.2因果图举例
例1:
某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;
如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一数字。
结果:
21——修改文件;
22——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;
考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束,如图5-7所示。
图5-7例1的因果图
3)根据因果图建立判定表。
4
5
6
7
8
原因(条件)
11
动作(结果)
22
21
23
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。
4)把判定表的每一列拿出来作为依据,设计测试用例
测试用例
A6
Aa
B9
BP
C5
HY
A0
A@
B1
B*
H4
E%
续上表,我们把表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。
例2:
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;
若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
分析这一段说明,列出原因和结果
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图5-8所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:
11.投入1元硬币且押下饮料按钮
12.押下〖橙汁〗或〖啤酒〗的按钮
13.应当找5角零钱并且售货机有零钱找
14.钱已付清
图5-8售货机因果图
3)转换成判定表:
4)
在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
例3:
NextData函数的精简决策表
M1={月份:
每月有30天}
M2={月份:
每月有31天,12月除外}
M4={月份:
12月}
M3={月份:
2月}
D1={日期:
1<
=日期<
=27}
D2={日期:
28}
D3={日期:
29}
D4={日期:
30}
D5={日期:
31}
Y1={年:
年是闰年}
Y2={年:
年不是闰年}
输入变量间存在大量逻辑关系的NextData决策表
例4:
问题要求:
”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。
这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。
请建立判定表。
①确定规则的个数:
这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。
②列出所有的条件茬和动作桩:
可从最后1行条件项开始,逐行向上填满。
如第三行是:
YNYNYNYN,第二行是:
YYNNYYNN等等。
④填入动作桩和动作顶。
这样便得到形如图的初始判定表。
条
件
功率大于50马力吗?
Y
N
维修记录不全吗?
运行超过10年吗?
动
作
进行优先处理
X
作其他处理
⑤化简。
合并相似规则后得到下表。
-
5.5错误推测法
1.
定义:
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
2.
错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
例如,输入数据和输出数据为0的情况;
输入表格为空格或输入表格只有一行。
这些都是容易发生错误的情况。
可选择这些情况下的例子作为测试用例。
再如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:
●输入的线性表为空表;
●表中只含有一个元素;
●输入表中所有元素已排好序;
●输入表已按逆序排好;
●输入表中部分或全部元素相同。
5.6功能图分析方法
一个程序的功能说明通常由动态说明和静态说明组成。
动态说明描述了输入数据的次序或转移的次序.静态说明描述了输入条件与输出条件之间的对应关系。
对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的。
必须用动态说明来补充功能说明。
功能图方法是用功能图FD形式化地表示程序的功能说明,并机械地生成功能图的测试用例。
功能图模型由状态迁移图和逻辑功能模型构成。
状态迁移图用于表示输入数据序列以及相应的输出数据,在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。
逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。
逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。
测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。
功能图方法其实是是一种黑盒白盒混合用例设计方法。
1.功能图
功能图由状态迁移图和布尔函数组成。
状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表或因果图表示的逻辑功能。
2.测试用例生成方法
从功能图生成测试用例,得到的测试用例数是可接受的。
问题的关键的是如何从状态迁移图中选取测试用例,若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式。
问题就转化为程序的路径测试问题(如白盒测试)问题了。
3.测试用例生成规则
为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则:
在一个结构化的状态迁移(SST)中,定义三种形式的循环:
顺序,选择和重复。
.但分辨一个状态迁移中的所有循环是有困难的。
4.从功能图生成测试用例的过程
1)生成局部测试用例:
在每个状态中,从因果图生成局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。
2)测试路径生成:
利用上面的规则(三种)生成从初始状态到最后状态的测试路径。
3)测试用例合成:
合成测试路径与功能图中每个状态中的局部测试用例。
结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。
小结
●本节课讲述了因果图法相关的概念,包括关系和约束。
关系①恒等②非③或④与
2)输入条件的约束有以下4类:
①E约束(异)
②I约束(或)
③O约束(唯一)
④R约束(要求)
3)输出条件约束类型
输出条件的约束只有M约束(强制)
●利用因果图生成测试用例的基本步骤:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北大测试全套课件和教案 14 第5章 第4讲 北大 测试 全套 课件 教案