第02章_判定表法_第1页
第02章_判定表法_第2页
第02章_判定表法_第3页
第02章_判定表法_第4页
第02章_判定表法_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 黑盒测试技术 判定表法教学要求u 判定表法适用于哪些情况?u 什么是判定表、判定表法?u 判定表的组成、简化与类型u 建立判定表的步骤 在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。 因此,在一些数据处理问题当中,若某些操作的实施依赖于多个逻辑条件的组合,即针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。引入 等价类划分法和边界值分析方法比较适合输入变量输入变量或输入条件相互独立或输入条件相互独立的情况,但是当输入变量或输入输入

2、变量或输入条件相互依赖、相互制约条件相互依赖、相互制约的时候,采用等价类划分法和边界值分析方法是难以描述的,测试效果也很难保障。 例如:有多少种优惠方案?引入什么是判定表驱动法? 判定表驱动法(判定表驱动法(或决策表法决策表法) 是根据需求描述建立判定表后,导出测试用例的方法。v在所有的黑盒测试方法中,基于判定表的测试是最为严格、最具有逻辑性最为严格、最具有逻辑性的测试方法v可以设计出完整的测试用例集合什么是判定表? 判定表(判定表(也称决策表决策表)是一个用来表示条件和行动的二维表,是分析和表达多逻辑条件下执行不同操作的情况的工具。v可以清晰的表达条件、决策规则和应采取的行动之间的逻辑关系。

3、v判定表很适合描述不同条件集合下采取行动的若干组合适合描述不同条件集合下采取行动的若干组合的情况。实例“阅读指南”判定表 规则规则 选项选项12345678问问题题你觉得疲倦吗?你觉得疲倦吗? YYYYNNNN你对内容感兴趣吗?你对内容感兴趣吗? YYNNYYNN书中内容使你胡涂吗?书中内容使你胡涂吗? YNYNYNYN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 判定表的组成1.条件桩列出问题的所有条件。2.条件项针对条件桩给出的条件,列出所有可能的取值。3.动作桩列出问题规定的可能采取的操作。4.动作项指

4、出在条件项的各组取值情况下应采取的动作。u将任何一个条件组合的特定取值及相应要执行的动作称为。u在判定表中贯穿条件项和动作项的一列就是。判定表的组成1.条件桩 Condition Stub2.条件项 Condition Entity3.动作桩 Action Stub 4.动作项 Action Entity5.规 则 Rule判定表的类型有限条目判定表有限条目判定表特点:所有条件都是二值条件(真/假)判定表判定表扩展条目判定表扩展条目判定表特点:条件可以有多个值举例有限条目判定表 规则规则 选项选项12345678问问题题你觉得疲倦吗?你觉得疲倦吗? YYYYNNNN你对内容感兴趣吗?你对内容感

5、兴趣吗? YYNNYYNN书中内容使你胡涂吗?书中内容使你胡涂吗? YNYNYNYN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 等价类M1=航线为国外欧美航线M2=航线为国外非欧美航线M3=航线为国内航线D1=仓位为商务仓D2=仓位为经济仓Y1=飞行时间小于2hY2=飞行时间大于等于2h动作桩:A1:播放电影A2:食物供应条件桩:C1:航线在M1,M2,M3中之一C2:仓位在D1,D2中之一C3:飞行时间在Y1,Y2中之一举例扩展条目判定表 规则规则 桩桩123456789101112C1:航线在航线在M1

6、M1M1M1M2M2M2M2M3M3M3M3C2:仓位在仓位在D1D1D2D2D1D1D2D2D1D1D2D2C3:飞行时间在飞行时间在Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2A1:播放电影播放电影A2:食物供应食物供应举例扩展条目判定表判定表的简化 实际使用决策表时,常常先将它简化,简化是以合并相似规则为目标的。 判定表的简化主要包含:规则合并规则合并与规则包含规则包含(1)规则合并)规则合并 若两条或多条规则的动作项相同,条件项只有一项不同,则可将该项合并,合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件无关条件。(2)规则包含)规则包含无关条件项“-

7、”在逻辑上又可包含其他的条件项取值,具有相同动作的规则还可进一步合并。Y YN NY NX XYN-XY Y- NN NX XY-NX 图图a 两条规则合并成一条 图图b 两条规则的进一步合并 判定表的简化v 如图a表示了两个柜子的动作项一致,条件项中的第三条件的取值不同,这表示在第一、第二条件分别取真值和假值时,第三条件不论取何值,都执行同一动作。就是说要执行的动作与第三条件的取值无关。这样,我们将这两条规则合并,合并后的第三条件取值用“”表示,以示与取值无关。v 类似地,无关条件项“”在逻辑上又可包含其他的条件项取值,具有相同动作的规则还可进一步合并,如图b所示。规则合并实例“阅读指南”

8、规则规则 选项选项12345678问问题题你觉得疲倦吗?你觉得疲倦吗? YYYYNNNN你对内容感兴趣吗?你对内容感兴趣吗? YYNNYYNN书中内容使你胡涂吗?书中内容使你胡涂吗? YNYNYNYN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 规则合并实例“阅读指南” 规则规则 选项选项13567问问题题你觉得疲倦吗?你觉得疲倦吗? YYNNN你对内容感兴趣吗?你对内容感兴趣吗? YNYYN书中内容使你胡涂吗?书中内容使你胡涂吗? YN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到

9、下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 规则规则 选项选项1567问问题题你觉得疲倦吗?你觉得疲倦吗? YNNN你对内容感兴趣吗?你对内容感兴趣吗? YYN书中内容使你胡涂吗?书中内容使你胡涂吗? YN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 规则合并实例“阅读指南”生成测试用例“阅读指南”用例用例ID输入条件输入条件预期输出预期输出1觉得疲倦建议停止阅读,请休息2不觉得疲倦,对内容也感兴趣,但内容使你糊涂建议回到本章开头重读3不觉得疲倦,对内容感兴趣,内容没有使你糊涂建议继续读下去4

10、不觉得疲倦,对内容不感兴趣建议跳到下一章去读判定表的建立步骤 使用判定表设计用例的条件v 规格说明以判定表的形式给出,或很容易转换成判定表v 条件的排列顺序不影响执行哪些操作v 规则的排列顺序不影响执行哪些操作v当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则?v 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要案例1三角形问题 对于三角问题,设计其判定表,然后根据该判定表设计相应的测试用例。 关键:如何得到三角问题的“条件桩”和“行动桩” ?我们可以通过分析三角问题的处理过程(即“业务逻辑”)得到:v当判断出a=b=c时,程序输出“等边三角形”。v当判断出a=b或b=c

11、或a=c时,程序输出“等腰三角形”。v当a!=b且b != c且c !=a时,程序输出“一般三角形”可以看出程序的输出由a,b,c之间是否相等的关系确定,即a=b?, a=c?, b=c?,这样我们可以把a=b?, a=c?, b=c?当作条件桩,把程序的输出当作动作桩。C1:a,b,c构成 三角形?C2:a=b?C3:a=c?C4:b=c?条件桩A1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能行动桩 24=16规则数 规则规则 桩桩12345678910111213141516C1:a,b,c构成三角形构成三角形?FFFFFFFFTTTTTTTTC2:a=b?FFF

12、FTTTTFFFFTTTTC3:a=c?FFTTFFTTFFTTFFTTC4:b=c?FTFTFTFTFTFTFTFTA1:非三角形非三角形A2:一般三角形一般三角形A3:等腰三角形等腰三角形A4:等边三角形等边三角形A5:不可能不可能 规则规则 桩桩12345678910111213141516C1:a,b,c构成三角形构成三角形?FFFFFFFFTTTTTTTTC2:a=b?FFFFTTTTFFFFTTTTC3:a=c?FFTTFFTTFFTTFFTTC4:b=c?FTFTFTFTFTFTFTFTA1:非三角形非三角形A2:一般三角形一般三角形A3:等腰三角形等腰三角形A4:等边三角形等边

13、三角形A5:不可能不可能 规则规则 桩桩123456789C1:a,b,c构成三角形构成三角形?FTTTTTTTTC2:a=b? FFFFTTTTC3:a=c? FFTTFFTTC4:b=c? FTFTFTFTA1:非三角形非三角形A2:一般三角形一般三角形A3:等腰三角形等腰三角形A4:等边三角形等边三角形A5:不可能不可能三角形问题的判定表用例用例a ab bc c预期输出预期输出1 11 12 24 4非三角形非三角形2 23 34 45 5一般三角形一般三角形3 33 34 44 4等腰三角形等腰三角形4 44 43 34 4等腰三角形等腰三角形5 5?6 64 44 43 3等腰三角

14、形等腰三角形7 7?8 8?9 93 33 33 3等边三角形等边三角形 (1)对每一条规则设计一个测试用例:根据判定表设计测试用例用例用例a ab bc c预期输出预期输出1 11 12 24 4非三角形非三角形2 23 34 45 5一般三角形一般三角形3 33 34 44 4等腰三角形等腰三角形4 44 43 34 4等腰三角形等腰三角形5 54 44 43 3等腰三角形等腰三角形6 63 33 33 3等边三角形等边三角形 (2)去掉不存在的情况:根据判定表设计测试用例案例2NextDate问题 对于NextDate问题,设计其判定表, 然后根据该判定表设计相应的测试用例。 如何得到N

15、extDate问题的“条件桩”和“行动桩” ?我们可以通过分析NextDate问题的处理过程(即“业务逻辑”)得到:见下页为了获得下一个日期,NextDate函数执行如下操作:v 如果输入日期不是当月最后一天,则把day变量的值加1;v 如果输入日期是111月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;v 如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1。关于最后一天的判断:v 如果是有31天的月份(1,3,5,7,8,10,12),day=31为最后一天;v 如果是有30天的月份(4,6,9,11), day=30为

16、最后一天;v 如果是有29天的月份(闰年的2月), day=29为最后一天;v 如果是有28天的月份(非闰年的2月), day=28为最后一天。可见程序的动作主要是d,m,y的加1或复位,而这些操作又与d,m,y的特征有关。这样我们可以把d,m,y的加1或复位作为动作桩, d,m,y的特征作为条件桩。条件桩:C1:月份在M1中C2:月份在M2中C3:月份在M3中C4:月份在M3中C5:日期在D1中C6:日期在D2中C7:日期在D3中C8:日期在D4中C9:日期在D4中C10:年是闰年C11:年是平年动作桩:A1:不可能A2:日期增1A3:日期复位(置1)A4:月份增1A5:月份复位(置1)A6

17、:年增1等价类M1=月份:每月有30天M2=月份:每月有31天,12月除外M3=月份:此月是12月M4=月份:此月是2月D1=日期:1=日期=27D2=日期:日期=28D3=日期:日期=29 D4=日期:日期=30D5=日期:日期=31Y1=年:年是闰年Y2=年:年是平年211=2048太大!规则数?等价类M1=月份:每月有30天M2=月份:每月有31天,12月除外M3=月份:此月是12月M4=月份:此月是2月D1=日期:1=日期=27D2=日期:日期=28D3=日期:日期=29 D4=日期:日期=30D5=日期:日期=31Y1=年:年是闰年Y2=年:年是平年动作桩:A1:不可能A2:日期增1

18、A3:日期复位(置1)A4:月份增1A5:月份复位(置1)A6:年增1条件桩:C1:月份在M1,M2,M3,M4中之一C2:日期在D1,D2,D3,D4 ,D5中之一C3:年在Y1,Y2中之一452=40规则数? 规则规则 桩桩12345678910C1:月份在月份在M1M1M1M1M1M2M2M2M2M2C2:日在日在D1D2D3D4D5D1D2D3D4D5C3:年在年在-A1:不可能不可能A2:日增日增1A3:日复位日复位A4:月增月增1A5:月复位月复位A6:年增年增1 规则规则 桩桩111213141516171819202122C1:月份在月份在M3M3M3M3M3M4M4M4M4M

19、4M4M4C2:日在日在D1D2D3D4D5D1D2D2D3D3D4D5C3:年在年在-Y1Y2Y1Y2-A1:不可能不可能A2:日增日增1A3:日复位日复位A4:月增月增1A5:月复位月复位A6:年增年增1续表课堂练习一用例ID月份日期年预期输出123456789根据判定表,请写出NextDate函数的前9个测试用例:用例用例ID月份月份日期日期年年预期输出预期输出1-3412/28/2920012001年4月13/29/30日443020012001年5月1日54312001不可能6-9115/28/29/3020012001年1月16/29/30/31日1013120012001年2月1

20、日11-141215/28/29/3020012001年12月16/29/30/31日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920042005年3月1日202292001不可能21,22230/312001不可能根据判定表设计测试用例课堂练习二 假设一个中国的航空公司规定:v中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。v中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。v中国国内的航班的商务仓有食物供应,但是不可以播放电影v中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。 请用判定表法设计测试用例。条件桩:C1:航线为国外欧美航线C2:航线为国外非欧美航线C3:航线为国内航线C4:仓位为商务仓C5:仓位为经济仓C6:飞行时间小于2hC7:飞行时间大于等于2h动作桩:A1:播放电影A2:食物供应27=128太大!规则数?等价类M1=航线为国外欧美航线M2=航线为国外非欧美航线M3=航线为国内航线D1=仓位为商务仓D2=仓位为经济仓Y1=飞行时间小于2hY2=飞行时间大于等于2h动作桩:A1:播放电影A2:食物供应条件桩:C1:航线在M1,M2,M3中之一C2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论