决策表

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件测试基础第九讲长春工业大学软件学院Email:wenze666@163.com决策表测试法1、决策表在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。决策表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题条件桩—列出问题的所有条件条件项—针对条件桩给出的条件列出所有可能的取值动作桩—列出问题规定的可能采取的操作动作项—指出在条件项的各组取值情况下应采取的动作规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则决策表组成:决策表生成决策表化简简化是以合并相似规则为目标若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件YYNNYNPPYN━PYYYNNNPPY━NP化简后“读者指南”决策表1列出所有的条件桩和动作桩2确定规则的个数3填入条件项4填入动作项构造决策表的5个步骤:5合并相似规则(1)列出所有的条件桩和动作桩。(2)确定规则的个数。有n个条件的决策表有2n个规则(每个条件取真、假值)。(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则。对功率大于100马里的机器、维修记录不全或已经运行10年以上的机器,应给予优先的维修处理.2、决策表应用实例分析这里隐含的条件是什么?机器功率大小维修记录运行时间对应的可能动作是什么?优先维修正常维修——条件桩——动作桩列出条件项每个条件的值分别取“是(1)”和“否(0)”组合条件项的值填上动作项根据组合条件项的值,填写对应的动作项形成初步判定表序号1234568条件功率大于100马力?1111000维修记录不全吗?1100110运行时间超过10年吗?1010100动作优先维修PPPPPP正常维修P序号1-45、68条件功率大于100马力?100维修记录不全吗?━10运行时间超过10年吗?━━0动作优先维修PP正常维修P化简后决策表练习根据输入3条边(a,b,c)边长的值来判断是否构成一个构成一个三角形,如果是三角形,继续判断是一般三角形、等腰三角形还是等边三角形。假定a、b、c只能输入大于零的数,不考虑a、b、c为负数和取零的情况。试构造其决策表NextDate函数的决策表测试用例设计问题分析:NextDate函数的三个变量之间在输入定义域中存在一定的逻辑依赖关系,由于等价类划分和边界值分析测试都假设了变量是独立的,如果采用上述两种方法设计测试用例,那么这些依赖关系在机械的选取输入值时可能会丢失。而采用决策表法则可以通过使用“不可能动作”的概念表示条件的不可能组合,来强调这种依赖关系为了获得下一个日期,NextDate函数执行如下操作如果输入日期不是当月最后一天,则把day变量的值加1;如果输入日期是1~11月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1关于最后一天的判断如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;如果是有30天的月份(4,6,9,11),day变量值为30;如果是有29天的月份(闰年的2月),day变量值为29;如果是有28天的月份(非闰年2月),day变量值为28根据所执行的操作,可列出NextDate函数的动作桩:a1:不可能;a2:day加1;a3:day复位;a4:month加1;a5:month复位;a6:year加1NextDate函数的动作桩和条件桩:考虑到决策表的规模,条件使用month、day、year变量的等价类,在以下等价类集合上建立决策表:对于month变量的取值:M1:{mouth:mouth有30天};M2:{mouth:mouth有31天,12月除外};M3:{mouth:mouth有12月};M4:{mouth:mouth是2月};对于day变量的取值:D1:{day:1≤day≤27};D2:{day:day=28};D3:{day:day=29};D4:{day:day=30};D5:{day:day=31};对于year变量的取值:Y1:{year:year是闰年};Y2:{year:year不是闰年}3、决策表的适用范围决策表测试法适用于具有以下特征的应用程序:if-then-else逻辑突出;输入变量之间存在逻辑关系;涉及输入变量子集的计算;输入与输出之间存在因果关系。适用于使用决策表设计测试用例的条件规格说明以决策表形式给出,或较容易转换为决策表。条件的排列顺序不会也不应影响执行的操作。规则的排列顺序不会也不应影响执行的操作。当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。如果某一规则的条件要执行多个操作,这些操作的执行顺序无关紧要当决策表规模(指规则的数目,n个条件的决策表有2n个规则)较大时,可以通过扩展条目决策表(条件使用等价类)、代数简化表、将大表“分解”为小表等方法。说明:练习用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2005年12月1日。(1)分析各种输入情况,列出输入变量month、day、year划分的有效等价类。(2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。(3)根据(1)和(2),画出简化后的决策表。案例分析:month变量的有效等价类:M1:{month=4,6,9,11}M2:{month=1,3,5,7,8,10}M3:{month=12}M4:{month=2}day变量的有效等价类:D1:{1≤day≤26}D2:{day=27}D3:{day=28}D4:{day=29}D5:{day=30}D6:{day=31}year变量的有效等价类:Y1:{year是闰年}Y2:{year不是闰年}考虑各种有效的输入情况,程序中可能采取的操作有以下六种:a1:day+2a2:day=2a3:day=1a4:month+1a5:month=1a6:year+1如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。解法如下:确定规则的个数。对于本题有2个条件(销售、库存),每个条件可以有两个取值,故有22=4种规则。列出所有的条件桩和动作桩。填入条件项。填入动作项,得到初始决策表规则选项1234条件:C1:销售好?C2:库存低?TTTFFTFF动作:a1:增加生产a2:继续生产a3:停止生产√√√√决策表

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功