07-决策表测试
7第七章基于决策表的测试
• 条目部分中的一列就是一条规则。 条目部分中的一列就是一条规则。 • 规则指示在规则的条件部分中指示的条件环境下要采取什么 行动。 行动。 • “—”叫“不关心”:条件无关或条件不适用。 不关心” 条件无关或条件不适用。
表示方法
• 使用决策表标识测试用例,则把条件 解释为输入,行动解释为输出。 • 有时条件最终引用输入的等价类,行 为引用被测试软件的主要功能处理部 分,规则则解释为测试用例。
NextDate函数的精简决策表(7-15) 函数的精简决策表( 函数的精简决策表 )
c 1 : 月份在 c 2 : 日期在 c 3 : 年在 行为 a 1 : 不可能 日期增1 a 2 : 日期增 1 a 3 : 日期复位 月份增1 a 4 : 月份增 1 a 5 : 月份复位 年增1 a 6 : 年增 1 1~3 6~9 4 5 10 M1 M1 M1 M2 M2 D1,D2,D3 D4 D5 D1,D2,D3,D4 D5 — — — — — X X X X X X X
3 M1 D3 —
4 M1 D4 —
5 M1 D5 — X
6 M2 D1 —
7 M2 D2 —
8 M2 D3 —
9 M2 D4 —
10 M2 D5 —
X
X X X
X
X
X
X X X
续……
此月是12月 此月是 月 此月是2月 此月是 月 年是闰年
c 1 : 月份在 c 2 : 日期在 c 3 : 年在 行为 a 1 : 不可能 日期增1 a 2 : 日期增 1 a 3 : 日期复位 月份增1 a 4 : 月份增 1 a 5 : 月份复位 年增1 a 6 : 年增 1
第二次尝试
• 第二次尝试使用的条件
测试理论笔试题及答案
测试理论笔试题及答案一、选择题1.测试的目的是什么?– A. 验证软件是否满足需求– B. 提高软件的可靠性和稳定性– C. 发现软件中的错误和缺陷– D. 以上皆是答案:D2.以下哪项不是测试活动的一部分?– A. 用例设计– B. 编码实现– C. 缺陷跟踪– D. 缺陷修复答案:B3.下面哪种测试用于评估系统的功能完整性以及系统与外部组件之间的交互是否正常?– A. 单元测试– B. 集成测试– C. 系统测试– D. 验收测试答案:C4.以下哪项不属于测试用例编写的原则?– A. 测试用例应该覆盖所有的场景和情况– B. 测试用例应该易于理解和执行– C. 测试用例应该遵循固定的格式– D. 测试用例应该具有独立性和可重复性答案:C5.什么是回归测试?– A. 重新执行已经通过的测试用例– B. 执行一组特定的测试用例来检查修改是否引入了新的错误– C. 重复执行已经失败的测试用例– D. 执行全面的测试以验证软件是否完全符合要求答案:B二、填空题1.测试用例应包括测试的________,输入数据和预期的________。
答案:步骤,结果2.________导致了软件发生错误或不符合规格要求的行为,被称为缺陷。
答案:程序或设计的错误3.为了有效跟踪缺陷,通常使用________系统来记录和管理缺陷。
答案:缺陷跟踪4.接口测试是一种测试类型,用于检查不同组件之间的________是否正常。
答案:交互5.________测试是一种测试方法,通过模拟用户的操作和输入来评估软件的易用性和用户体验。
答案:用户界面三、简答题1.请说明测试驱动开发(Test-Driven Development,TDD)的基本原则及流程。
答案:测试驱动开发是一种软件开发方法论,其基本原则是在编写功能代码之前先编写测试代码。
流程如下:–编写测试:根据需求编写测试,定义输入、预期输出和测试方法。
–运行测试:运行测试代码,确认测试失败。
决策树决策表练习题与参考答案
1.某厂对一部分职工重新分配工作,分配原则是:
⑴年龄不满20岁,文化程度是小学者脱产学习,文化程度是中学者当电工;
⑵年龄满20岁但不足50岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大专者,当技术员。
⑶年龄满50岁及50岁以上,文化程度是小学或中学者当材料员,文化程度是大专者当技术员。
优化后的决策表如下:
2、试画出某企业库存量监控处理的判断树。
若库存量≤0,按缺货处理;若库存量≤库存下限,按下限报警处理;若库存量>库存下限,而又≤储备定额,则按订货处理;若库存量>库存下限,而又>储备定额,则按正常处理;若库存量≥库存上限,又>储备定额,则按上限报警处理。
3某货运站收费标准如下:
若收件地点在本省,则快件6元/公斤,慢件4元/公斤;
若收件地点在外省,则在25公斤以内(包括25公斤),快件8元/公斤,慢件6元/公斤;而超过25公斤时,快件10元/公斤,慢件8元/公斤;
画出决策表和决策树:
决策表:
优化后的结果如下所示:决策树:
收费
本省
外省快件
慢件
快件
慢件
≤25斤
>25斤
≤25斤
>25斤
6元
4元
8元
10元
6元
8元
地点规格重量收费金额
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。
决策表
0
0
━
1
0
━
━
0
P
P
P
练习
根据输入3条边(a,b,c)边长的值来判 断是否构成一个构成一个三角形,如果 是三角形,继续判断是一般三角形、等 腰三角形还是等边三角形。假定a、b、c 只能输入大于零的数,不考虑a、b、c为 负数和取零的情况。
试构造其决策表
NextDate函数的决策表测试用例设计
根据所执行的操作,可列出NextDate函数的动 作桩:
a1: 不可能; a2: day加1; a3: day复位; a4: month加1; a5: month复位; a6: year加1
考虑到决策表的规模,条件使用month、day、 year变量的等价类,在以下等价类集合上建立决策 表: 对于month变量的取值:
解法如下:
确定规则的个数。对于本题有2个条件(销售、库存),每 个条件可以有两个取值,故有22=4种规则。
列出所有的条件桩和动作桩。
填入条件项。
填入动作项,得到初始决策表
规则
选项
1
2
3
4
条件:
C1:销售好?
T
T
F
F
C2:库存低?
T
F
T
F
动作:
a1:增加生产
√
a2:继续生产
√
√
a3:停止生产
适用于使用决策表设计测试用例的条件
规格说明以决策表形式给出,或较容易转换为决 策表。
条件的排列顺序不会也不应影响执行的操作。 规则的排列顺序不会也不应影响执行的操作。
当某一规则的条件已经满足,并确定要执行的操 作后,不必检验别的规则。
7(1) 基于决策表的测试
—
— — —
—
F
T
T T T
T
T T F
T
T F T
T
T F F
T
F T T
T
F T F
T
F F T
T
F F F X
— — — — — —
A1:非三角形
A2:不等边 A3:等腰 A4:等边 A5:不可能
X
X
X
X X X X X X X
安徽工程大学——计算机与信息学院
条件 C1:月份在M1中? C2:月份在M2中? C3:月份在M3中? 规则1 T — — 规则2 — T — 规则3 — — T
规则条数统计
A1
4
4
4
安徽工程大学——计算机与信息学院
13
第七章
基于决策表的测试
决策表使用技巧
在如下决策表中,有 3个条件,则应该有 8条规则。而实际上 有 12 条规则,显然有问题。为了找出问题所在,我们扩展三 条规则,用T或F代替“—”。
7
第七章
基于决策表的测试
练习:
以下列问题为例给出构造决策表的具体过程。
如果某产品销售好,且库存低,则增加该产品的生产; 如果该产品销售好,但库存量不低,则继续生产; 若该产品销售不好,但库存量低,则继续生产; 若该产品销售不好,且库存量不低,则
安徽工程大学——计算机与信息学院
14
第七章
基于决策表的测试
决策表使用技巧
在上图的所有条目中,所有条目都是T的规则有三条:规则1.1、 2.1和3.1;条目是T、T、F的规则有两条:规则1.2和2.2;类似 地,规则 1.3 和 3.2、规则 2.3和 3.3也是一样的。如果去掉这种 重复,最后可得到7条规则, 缺少所有条件都是假的规则。
软件测试(14)--黑盒测试案例设计技术--基于决策表的测试
软件测试(14)--黑盒测试案例设计技术--基于决策表的测试决策表,也叫判定表。
在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
人们使用两种密切关联的方法:因果图法和决策表格法。
与决策表相比,这两种方法使用起来更麻烦,并且全冗余。
决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。
在程序设计发展的初期,决策表就已被用作编写程序的辅助工具了。
它可以把复杂的逻辑关系和多种条件组合的情况表达得比较明确。
1、决策表的组成决策表通常由4个部分组成,如下图:●条件桩(condition stub):列出了问题的所有条件。
通常认为列出的条件的次序无关紧要。
●动作桩(action stub):列出了问题规定可能采取的操作。
这些操作的排列顺序没有约束。
●条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
●动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
●规则:任何一个条件组合的特定取值及其相应要执行的操作。
在决策表中贯穿条件项和动作项的一列就是一条规则。
显然,决策表中列出多少组条件取值,也就有多少规则,条件项和动作项就有多少列。
2、决策表建立决策表的建立应该根据软件规格说明,步骤如下:①确定规则的个数。
假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
②列出所有的条件桩和动作桩。
③输入条件项。
④填入动作项。
制定初始决策表。
⑤简化。
合并相似规则或者相同动作。
Beizer(《Software Testing Techniques》的作者)指出了适合使用决策表设计测试用例的条件:①规格说明以决策表的形式给出,或很容易转换成决策表。
②条件的排列顺序不影响执行哪些操作。
③规则的排列顺序不影响执行哪些操作。
④当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。
软件测试中的决策表技术
软件测试中的决策表技术在软件测试中,决策表技术是一种被广泛应用的测试方法。
决策表是一种以表格形式呈现的测试设计工具,能够清晰地表达系统的规则和条件,并帮助测试人员针对不同情况进行测试。
决策表技术的基本原理是,将系统的输入条件、输出结果以及各种规则和约束整理成一张表格,每一行代表一个测试用例,利用这些测试用例来检查系统的正确性。
以下是决策表技术的一般步骤:1. 确定系统的输入条件和输出结果:在进行软件测试之前,首先需要明确系统的输入条件和输出结果。
这些输入条件和输出结果可以是系统的功能需求、运行环境、用户需求等。
2. 列举所有可能的情况:根据系统的输入条件,列出所有可能的情况,并将它们归类。
每一列代表一种情况,每一行代表一种组合。
3. 确定规则和约束:在决策表中,每一列代表一种情况,每一行代表一种组合。
在表格中,可以使用逻辑运算符如AND、OR等来表示各种条件之间的关系,并用“是”和“否”来表示每一种情况下的输出结果。
4. 生成测试用例:根据决策表中的各种组合,生成相应的测试用例。
每一个测试用例都可以通过对应的行和列确定,并包含了系统的输入条件和预期的输出结果。
5. 执行测试用例:根据生成的测试用例,执行测试过程,并记录实际的输出结果。
6. 比较实际结果和预期结果:对于每一种情况,比较实际的输出结果和预期的输出结果。
如果两者一致,则说明系统在这种情况下的行为是正确的;如果不一致,则说明系统在这种情况下存在问题。
通过使用决策表技术,可以减少测试用例的数量,并覆盖系统中的各种情况。
同时,决策表技术还能够提高测试的可读性和可维护性,便于测试人员对测试用例的管理和维护。
然而,决策表技术也存在一些限制。
首先,对于复杂的系统,决策表可能会变得非常庞大,导致难以管理和维护。
其次,决策表技术只能检查系统是否符合规则,但不能检查是否存在其他不可预测的问题。
此外,决策表技术还需要测试人员具备一定的领域知识和逻辑思维能力,以确保生成的决策表正确和完整。
第7章基于决策表的测试
第7章基于决策表的测试
3rew
演讲完毕,谢谢听讲!
再见,see you again
2020/11/26
第7章基于决策表的测试
• 在决策表中有不关心条目时,规则数的 统计:
n 没有不关心条目的规则数计为1; n 规则中每出现一个不关心条目,规则数乘2。
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
构造决策表的步骤
• 列出所有的条件桩和动作桩 • 确定规则的个数 • 填入条件项 • 填入动作项,得到初始决策表 • 简化决策表,合并相似规则
• 在条件和动作中,不关心条目和不可能规则的 使用。(表7-2)
• 不同的条件选择方法可能会大大扩展决策表的 规模。
• 在条件中引入等价类的决策表。(表7-4) • 决策表中规则数目的统计。
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
第7章基于决策表的测试
规则条数
• 对有限条目决策表,如果有n个条件,则 产生2n条规则。
n 确定原因和结果之间的逻辑关系。分析软件 规格说明描述中的语义。找出原因与结果之 间,原因与原因之间对应的关系。根据这些 关系,画出因果图。
第7章基于决策表的测试
因果图方法
• 利用因果图生成测试用例的基本步骤:
n 确定因果图中的各个约束。由于语法或环境 限制,有些原因与原因之间,原因与结果之 间的组合情况不可能出现。为表明这些特殊 情况,在因果图上用一些记号表明约束或限 制条件。
n 条件无关 n 条件不适用(—或N/A)
• 有限条目决策表:所有条件都是二叉条件(两 个取值,真/假,是/否,0/1)的决策表。
主观决策能力自测表
主观决策能力自测表自我评估请根据以下问题对您的主观决策能力进行自我评估,并在每个问题后面选择一个适合的选项。
根据您的选择,给出相应的得分。
1. 在做决策时,您是否更倾向于依靠自己的直觉而不是过度考虑不同的选择和后果?- a. 是,常常根据直觉做出决策。
得分:2分- b. 有时会根据直觉做出决策。
得分:1分- c. 不倾向于依靠直觉,更多地考虑不同的选择和后果。
得分:0分2. 当面临困难的决策时,您是否倾向于采取冒险的行动,即便风险较大?- a. 是,我倾向于采取冒险的行动。
得分:2分- b. 有时会采取冒险的行动。
得分:1分- c. 不倾向于采取冒险的行动,更加谨慎。
得分:0分3. 在团队合作中,当与他人存在分歧时,您是否更倾向于听从自己的意见,而不太愿意妥协?- a. 是,我倾向于听从自己的意见。
得分:2分- b. 有时会听从自己的意见。
得分:1分- c. 更愿意妥协和与他人达成共识。
得分:0分4. 当做决策时,您是否考虑过去的经验和教训?- a. 是,我重视过去的经验和教训。
得分:0分- b. 有时会考虑过去的经验和教训。
得分:1分- c. 不太关注过去的经验和教训。
得分:2分5. 在决策过程中,您是否善于权衡不同的利弊,并全面评估局势?- a. 是,我能够全面评估局势。
得分:0分- b. 有时会权衡不同的利弊并全面评估局势。
得分:1分- c. 不太善于权衡不同的利弊与全面评估局势。
得分:2分请计算您的得分,并根据得分范围评估您的主观决策能力水平。
- 得分范围为 0-4 分:您拥有很高的主观决策能力,善于进行综合评估和权衡不同的利弊,能够在不同情况下做出明智的决策。
- 得分范围为 5-8 分:您的主观决策能力一般,有时会过于依赖直觉或偏向冒险,需要更多考虑不同选择和后果。
- 得分范围为 9-10 分:您的主观决策能力较弱,需要更加注重权衡不同利弊和综合评估,以提高决策的准确性和质量。
请注意,本测试仅为自我评估工具,结果仅供参考,不代表您的真实能力水平。
决策表
分析
这里隐含的条件是什么? 机 Nhomakorabea功率大小
维修记录 运行时间
——条件桩
对应的可能动作是什么?
优先维修
正常维修
——动作桩
列出条件项
每个条件的值分别取“是(1)”和“否(0)” 组合条件项的值
填上动作项
根据组合条件项的值,填写对应的动作项 形成初步判定表
解法如下:
确定规则的个数。对于本题有2个条件(销售、库存),每 个条件可以有两个取值,故有22=4种规则。
列出所有的条件桩和动作桩。
填入条件项。
填入动作项,得到初始决策表
规则
选项
1
2
3
4
条件:
C1:销售好?
T
T
F
F
C2:库存低?
T
F
T
F
动作:
a1:增加生产
√
a2:继续生产
√
√
a3:停止生产
对于year变量的取值: Y1:{year:year是闰年}; Y2: {year:year不是闰年}
3、决策表的适用范围
决策表测试法适用于具有以下特征的应 用程序:
if-then-else逻辑突出; 输入变量之间存在逻辑关系; 涉及输入变量子集的计算; 输入与输出之间存在因果关系。
且在条件项之间存在极为相似的关系,便可 以合并 合并后的条件项用符号“-”表示,说明执行 的动作与该条件的取值无关,称为无关条件
YY
Y
YY
Y
NN
N
YN
━
YN
━
NN
N
PP
P
PP
P
7(3)-基于决策表的测试
安徽工程大学——计算机与信息学院
7
功能性测试的回顾
指导方针
❖重要启示:测试不大可能存在的缺陷是没有意义的。 很好地了解最有可能发生的缺陷种类,然后选择最 有可能发现这类缺陷的测试方法,这样更为有效。
安徽工程大学——计算机与信息学院
14
功能性测试的回顾
黑盒测试技术回顾
❖节约测试工作工时; ❖可控制生成的测试用例的数量; ❖测试用例具有一定的覆盖率。
安徽工程大学——计算机与信息学院
15
功能性测试的回顾
黑盒测试技术回顾
❖决策表解决了程序函数的逻辑依赖关系。 ❖决策表保证我们考虑了所有可能的条件值组合。 ❖决策表的完备性能够保证一种完备的测试。
▪ 如果变量是独立的,可采用边界值测试和等价类测试。 ▪ 如果变量不是独立的,可采用决策表测试。 ▪ 如果可保证是单缺陷假设,可采用边界值分析和健壮性测试。
安徽工程大学——计算机与信息学院
9
功能性测试的回顾
黑盒测试技术回顾
我们学习了很多测试技术,这些方法的共同之处 就是将程序看作是将输入映射到输出的数学函数。根 据研究输入值的属性演变成基于边界值的方法,等价 类的方法和决策表的方法、因果图。
❖如果变量不是独立的,可以采用决策表测试。
❖如果可保证是单缺陷假设,可以采用边界值分析 和健壮性测试。
安徽工程大学——计算机与信息学院
24
功能性测试的回顾
黑盒测试的选择规则
❖如果可保证是多缺陷假设,可采用最坏情况测试、 健壮最坏测试和决策表测试。
(学生)软件测试实验-决策表
软件测试实验内容任务:针对一个常用的判断三角形类型的软件做黑盒测试,利用所学的黑盒测试方法来设计测试用例,并做相应测试,给出测试方案和测试报告。
判断三角形类型填写测试用例一.简介1.1编写目的本测试项目拟对判断三角形类型的软件进行测试。
1.2项目背景题目:输入整数a、b、c,分别作为三角形的三条边,编写程序判断由三条边构成的三角形的类型为:等边三角形、等腰三角形、一般三角形,以及不能构成三角形。
1.3术语决策表法:决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。
它能够将复杂的问题按照各种可能的情况全部列举出来,简明并可避免遗漏。
因此,利用决策表能够设计出完整的测试用例集合。
1.4参考资料软件测试佟伟光主编人民邮电出版社黑盒测试用例设计示例作者: chinaitlab 来源: chinaitlab二.测试概要2.1测试程序源代码#include<stdio.h>void main(){int a,b,c;printf("请输入三角形的三条边:");scanf("%d%d%d",&a,&b,&c);if(a>0&&b>0&&c>0){if((a+b)>c&&(a+c)>b&&(b+c)>a){printf("输入的数据符合三角形要求,根据输入的数可判断出:\n");if(a==b&&b==c&&a==c){printf("输入的三角形为等边三角形");}else if(a==b||b==c||a==c){printf("输入的三角形为等腰三角形");}else{printf("输入的三角形为一般三角形");}}elseprintf("输入的数据不符合三角行要求");}}2.2测试用例设计利用决策表法设计测试用例2.3测试环境与配置操作系统:windows XPCpu:Intel(R) Core(TM)2 Duo T5470内存:1G2.4测试方法手工利用黑盒测试中的判定表方法进行测试,主要测试目标为检验函数是否符合题目所给要求。
2023年全国软件测试师考试真题
2023年全国软件测试师考试真题考试题目一:基础知识理论部分(共30分)1. 请简述软件测试的定义及其重要性。
(10分)软件测试是一种通过操作和分析软件系统,以检查软件在设计阶段时是否符合需求、是否满足用户期望、是否具备稳定可靠性以及是否存在缺陷的过程。
软件测试是确保软件质量及功能正常运作的重要环节,它能够减少软件缺陷引起的风险,提高软件产品的信任度和用户满意度。
2. 请简要描述黑盒测试和白盒测试的区别。
(10分)黑盒测试和白盒测试是软件测试中常用的两种测试方法,它们的区别主要在于测试者是否关注内部实现细节。
- 黑盒测试:黑盒测试主要关注软件系统的功能,测试者没有了解系统的内部结构和代码实现细节。
测试者通过输入一组数据和操作,观察系统的输出结果,以此来检查系统是否按照需求和预期运行。
黑盒测试可以帮助测试人员发现功能缺陷和用户体验问题。
- 白盒测试:白盒测试则需要了解软件系统的内部实现和代码结构。
测试者通过检查系统的内部逻辑和代码覆盖率,以此来评估系统的稳定性和可靠性。
白盒测试可以发现系统中隐藏的缺陷和安全风险。
3. 请列举至少三种软件缺陷的类型,并简要描述其特点。
(10分)- 功能缺陷:软件功能与需求不符合或者功能无法正常运行。
- 性能缺陷:软件在某些特定场景下运行缓慢、卡顿或者崩溃。
- 安全缺陷:软件存在漏洞、容易受到恶意攻击或者数据泄露的风险。
- 兼容性缺陷:软件不能与其他平台、操作系统或者设备兼容。
- 易用性缺陷:软件操作复杂、界面不友好或者功能难以理解。
考试题目二:测试方法和技术部分(共40分)1. 请简要介绍黑盒测试的常用技术。
(10分)黑盒测试常用的技术包括:- 等价类划分:将输入数据划分为等价类,选择具有代表性的测试用例进行测试。
- 边界值分析:测试边界值情况下的软件功能和性能。
- 决策表测试:根据软件的逻辑规则构建决策表,设计测试用例进行测试。
- 错误推测:基于经验和直觉推测可能存在的错误情况,设计测试用例进行测试。
实验3、黑盒测试:决策表测试方法
20 15 —20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 5 月17 日实验题目实验3、黑盒测试:决策表测试方法实验目的1、掌握决策表的概念2、掌握决策表测试用例设计法。
实验内容1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day 和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
实验步骤:1)构造决策表●M1={月份:30天/月},M2={月份: 31天/月,12月除外},M3={月份: 12月},M4={月份: 2月}●D1={日期:1<=日<=27},D2={日期:日=28},D3={日期:日=29} ,D4={日期:日=30},D5={日期:日=31}●Y1={年:闰年},Y2={年:平年}注:二月:平年28天,闰年29天条件桩:●C1:月份在{M1,M2,M3,M4}中之一●C2:日期在{D1,D2,D3,D4 ,D5}中之一●C3:年在{Y1,Y2}中之一动作桩:●A1:不可能●A2:日期增1●A3:日期复位(置1)●A4:月份增1●A5:月份复位(置1)●A6:年增11 2 3 4 5 6 7 8 9 10C1:月M M M M M1 M M2 M M2 M2cin>>year;}cout<<"请输入月份:"<<endl;cin>>month;while (month>12||month<1){cout<<"月份输入有误,请重新输入"<<endl;cin>>month;}cout<<"请输入日期:"<<endl;cin>>day;while (day>31||day<1){cout<<"日期输入有误,请重新输入"<<endl;cin>>day;}if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年;{int i=0;i=day-29;while(month==2&&i>0){cout<<"本月是闰月,请在1-29之间从新输入日期"<<endl;cin>>day;}if(month==2&&day==28){month=3;day=1;}else if(month==2&&day==29){month=3;day=2;}else day=day+2;}else day=day+2;//月底计算;switch(month){case 1:case 3:case 5:case 7:case 10:if (day==32){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if (day==33){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 2:if(day==29){month=3;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==30){month=3;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 4:case 6:case 9:case 11:if(day==31){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==32){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;if(day==32){year++;month=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;}cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}2、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
第七章-基于决策表的测试
东北大学软件学院
13
NextDate函数测试用例-第一次尝试
M1 = {月份:每月有30天} M2 = {月份:每月有31天} M3 = {月份:此月是2月} D1 = {日期:1≤日期≤28} D2 = {日期:日期=29} D3 = {日期:日期=30} D4 = {日期:日期=31} Y1 = {年:年是闰年} Y2 = {年:年是平年}
?
×
?
a6:年增1
?
2021/5/18
16
第三次尝试
M1 = {月份:每月有30天} M2 = {月份:每月有31天,12月除外} M3 = {月份:此月是12月} M4 = {月份:此月是2月} D1 = {日期:1≤日期≤27} D2 = {日期:日期=28} D3 = {日期:日期=29} D4 = {日期:日期=30} D5 = {日期:日期=31} Y1 = {年:年是闰年} Y2 = {年:年是平年}
2021/5/18
东北大学软件学院
21
指导方针与观察
1.决策表技术适用于具有以下特征的应用程序: if-then-else逻辑很突出。 输入变量之间存在逻辑关系。 涉及输入变量子集的计算。 输入与输出之间存在因果关系。 很高的圈(McCabe)复杂度(请参阅第9章)。
2.决策表不能很好地伸缩(有n个条件的有限条目决策表有 2n个规则)。有多种方法可以解决这个问题——使用扩展条 目决策表、代数简化表,将大表“分解”为小表,查找条件 条目的重复模式。 3.与其他技术一样,迭代会有所帮助。第一次标识的条件 和行动可能不那么令人满意。把第一次得到的结果作为铺路 石,逐渐改进,直到得到满意的决策表。
东北大学软件学院
1
决策表
决策表的四个组成部分:
-决策表部分
软件测试基于决策表的测试小组成员:组长:张作强学号:200741402138组员:曾广强学号:200741402127宋翟东学号:200741402109完成时间:2010-6-2软件测试-基于决策表的测试目录软件测试-基于决策表的测试 (1)第一部分:课程部分 (2)决策表的产生原因 (2)决策表的组成 (2)条件桩 (3)条件项 (3)动作桩 (3)动作项 (3)决策表的特点 (3)决策表的各种表示方法 (3)决策表的生成 (5)测试用例的设计【一】 (6)测试用例的设计【二】 (8)决策表的应用 (15)第二部分:习题与答案部分 (16)第一题 (16)第二题 (17)第三题 (18)第四题 (18)第三部分:实验部分 (20)实验目的 (20)实验任务 (20)实验内容 (20)第一部分:课程部分决策表的产生原因1.在所有功能测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。
2.决策表很适合描述不同条件集合下采取行动的若干组合的情况。
3.决策表的完备性保证一种完备的测试。
决策表的组成1.条件桩列出了问题的所有条件。
2.动作桩列出了问题规定可能采取的操作。
3.条件项列出针对它所列条件的取值,在所有可能情况下的真假值。
4.动作项列出在条件项的各种取值情况下应该采取的动作。
5.规则任何一个条件组合的特定取值及其相应要执行的操作。
在决策表中贯穿条件项和动作项【规则】将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。
在决策表中贯穿条件项和动作项的一列就是一条规则。
决策表的特点1.如果条件条目具有二值逻辑,则决策表的条件部分是旋转了90度的真值表。
2.保证覆盖所有可能的条件值组合。
3.决策表的完备性保证一种完备的测试。
决策表的各种表示方法1.增加行动--通过增加行动,可显示何时规则在逻辑上不可能满足2.细化条件3.增加一行规则条数统计4.有限条目决策表——所有条件都是二叉条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问 题 建 议
功率大于50马力吗? 维修记录不全吗? 运行10年以上吗? 进行优先的维修处理 做其它处理
1 Y Y Y
2 Y Y N
6 N Y N
7 N N Y
8 N N N
× × ×
×
×
×
×
×
19
软件测试—功能性测试
4.4 决策表的生成
检查发货单
If( 发货单金额超过$500 )
四 决 策 表
发货单金额 赊欠情况 不发批准书 操 发出批准书 作 发出发货单 发出赊欠报告 条 件
17
软件测试—功能性测试
4.4 决策表的生成
四 决 策 表
根据软件规格说明,确定规则个数 列出所有条件桩 填入条件项Condition Entry 填入动作项Action Entry 产生决策表并化简
决策表的产生可能需要迭代进行 注意完备性、无冗余性和一致性。
18
软件测试—功能性测试
4.4 决策表的生成
11
N ×
Y N ×
Y Y N ×
Y Y Y Y Y Y
Y Y Y Y Y N
Y Y Y Y N Y
Y Y Y Y N N
Y Y Y N Y Y
Y Y Y N Y N
Y Y Y N N Y
Y Y Y N N N ×
×
×
×
软件测试—功能性测试
决策表的各种表示方法
增加一行规则条数统计
四 决 策 表
C1:a<b+c? C2:b<a+c? C3:c<a+b? C4:a=b吗? C5:a=c吗? C6:b=c吗? 规则条数统计 规则条数统计 A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 N 32 × Y N 16 × Y Y N 8 × Y Y Y Y Y Y 1 Y Y Y Y Y N 1 Y Y Y Y N Y 1 Y Y Y Y N N 1 Y Y Y N Y Y 1 Y Y Y N Y N 1 Y Y Y N N Y 1 Y Y Y N N N 1 × × × ×
条件取值,给出真假值 决策表的各个部分例
桩
四 决 策 表
c1 条
c2 c3 a1
Y Y
Y N
N -
Y Y
Y N
N -
件
行 动
a2
a3
× ×
×
Action a4 Stub :列出问题规
定可能采取的行动
规则 if × then ×
× ×
×
组合下应采取的行动
Action × Entry :在条件 7
软件测试—功能性测试
四 决 策 表
若问题要求:“…对功率大于50马力的机器、维修记录 不全或已运行10年以上的机器,应给予优先的维修处 条件: 1. 功率大于50马力 采取的措施: 理…”
2. 维修记录不全 3. 运行10年以上 1. 进行优先的维修处理 2. 做其它处理 3 Y N Y 4 Y N N 5 N Y Y
14
-
Y -
Y
4
4
4
软件测试—功能性测试
4.3 决策表的化简
原因 基本组成 决策表的化简 决策表的生成 测试用例的设计 讨论
15
软件测试—功能性测试
4.3 决策表的化简
设法合并具有相同动作、且条件项相似的规则
1 2 Y
Y N
3 Y
N Y
4
5 N
Y Y
6 N
Y N
7 N
8
四 决 策 表
你觉得疲倦吗?
26
Y Y Y Y Y Y 1
Y Y Y Y Y N 1
Y Y Y Y N Y 1
Y Y Y Y N N 1
Y Y Y N Y Y 1
Y Y Y N Y N 1
Y Y Y N N Y 1
Y Y Y N N N 1
×
×
软件测试—功能性测试
4.5 测试用例的设计
改进的三角形问题的测试用例
四 决 策 表
Condition Stub:列出问题
的所有条件
4.2 基本组成
读书指南决策表
1 2 Y Y N 3 Y N Y 4 Y N N Y Y Y
Condition Entry :针对左列
5 N Y Y 6 N Y N 7 N N Y 8 N N N
条件取值,给出真假值
四 决 策 表
你觉得疲倦吗? 问 你对内容感兴趣吗? 书中的内容使你糊涂? 请回到本章开头重读 建 议 继续读下去 跳到下一章去读
问 你对内容感兴趣吗?
Y
Y Y
题 书中的内容使你糊涂吗? 请回到本章开头重读 建 继续读下去 跳到下一章去读 停止阅读,请休息
Y N -
Y
N N
NN N NN Y -N
不关心条 目 ×
×
× × ×× × ×××
16
议
软件测试—功能性测试
4 决策表
原因 基本组成 决策表的化简 决策表的生成 测试用例的设计 讨论
软件测试—功能性测试
软件测试
1
软件测试—功能性测试
功能性测试
边界值测试 等价类测试 基于决策表的测试 功能性测试的回顾
2
软件测试—功能性测试
4 决策表
原因 基本组成 决策表的化简 决策表的生成 测试用例的设计 讨论
3
软件测试—功能性测试
4.1 产生的原因
四 决 策 表
决策表方法是功能性测试方法 中最严格的。 决策表方法可以适用各种情况, 不必要求 数据的独立性
4.5 测试用例的设计
A4:等边三角形
A5:不可能
×
× ×
25
软件测试—功能性测试
4.5 测试用例的设计
改进的三角形问题的决策表
规则总数: 64个
四 决 策 表
对于有限条目决策表:若有n个条件,须有( 2n)条规则。若存在 不关心项,则规则中每出现一个不关心项,规则数乘1次 2。
C1:a<b+c? C2:b<a+c? C3:c<a+b? C4:a=b吗? C5:a=c吗? C6:b=c吗? 规则条数统计 A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 N 32 × Y N 16 × Y Y N 8 × × × × × × ×
决策表的完备性保证一种完备的测试
4
软件测试—功能性测试
4 决策表
原因 基本组成 决策表的化简 决策表的生成 测试用例的设计 讨论
5
软件测试—功能性测试
Condition Stub:列出问题
的所有条件
4.2 基本组成
Condition Entry :针对左列
条件取值,给出真假值 决策表的各个部分
四 决 策 表
28
-
Y -Y4源自44软件测试—功能性测试
4.5 测试用例的设计
题
× ×
× × × × 规则 Action × If × Entry :在条件 8 then 组合下应采取的行动
Action 停止阅读,请休息 Stub :列出问题规
定可能采取的行动
软件测试—功能性测试
4.2 基本组成
决策表的特点
四 决 策 表
如果条件条目具有二值逻辑,则决策表 的条件部分是旋转了90度的真值表 保证覆盖所有可能的条件值组合
1 2 3 4 >500 >500 <=500 <=500 >60 <=60 >60 <=60
If ( 欠款超过60天 )
在偿还欠款前不予批准 Else 发批准书及发货单
×
× × × × × × ×
Endif Else If( 欠款超过60天) 发批准书、发货单及赊欠报告
检查 发货单
不发批准书 金额 欠款>60 >500 欠款<=60 发批准书、发货单
用决策表表示测试用例,则输入即为条 件,输出即为行动,有时,条件最终引 用输入的等价类,行动则引用软件的主 要功能处理部分 决策表可机械地强制为完备的,故可得 到测试用例的完整集合
22
软件测试—功能性测试
4.5 测试用例的设计
三角形问题
三角形类型? 四 决 策 表
输出的等价类
R1={<a,b,c>|有三条边a,b,c的等边三角形}
× × × × × × ×
24
× ×
软件测试—功能性测试
不关心条目对完整决策树 的识别有微妙影响。 改进的三角形问题的决策表 四 决 策 表
C1:a<b+c? C2:b<a+c? C3:c<a+b? C4:a=b吗? C5:a=c吗? C6:b=c吗? A1:非三角形 A2:不等边三角形 A3:等腰三角形 × × × × N × Y N × Y Y N × Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y N Y Y Y Y Y N N Y Y Y N Y Y Y Y Y N Y N Y Y Y N N Y Y Y Y N N N ×
12
×
×
× ×
软件测试—功能性测试
决策表的各种表示方法
有限条目决策表——所有条件都是二叉条件 四 决 策 表
若有n个条件,必须有( 2n)条规则,每条规则对应一个测试用例。 若存在不关心项,则规则中每出现一个不关心项,规则数乘一次 2。
扩展条目决策表——条件可以有多个值 条件的顺序没有要求
通过条件选择,可大大扩展决策表的规模
若条件引用了等价类,则“—”的实际含义为:“必须失 败” 13