软件测试—功能性测试1软件测试软件测试—功能性测试2功能性测试边界值测试等价类测试基于决策表的测试功能性测试的回顾软件测试—功能性测试34决策表原因基本组成决策表的生成决策表的化简测试用例的设计讨论软件测试—功能性测试44.1产生的原因四决策表决策表方法是功能性测试方法中最严格的。决策表的完备性保证一种完备的测试决策表方法可适用各种情况,不必要求数据的独立性软件测试—功能性测试54决策表原因基本组成决策表的化简决策表的生成测试用例的设计讨论软件测试—功能性测试64.2基本组成决策表的各个部分四决策表条件桩条件项行动桩行动项ConditionStub:列出问题的所有条件ConditionEntry:针对左列条件取值,给出真假值ActionStub:列出问题规定可能采取的行动ActionEntry:在条件组合下应采取的行动规则软件测试—功能性测试74.2基本组成决策表的各个部分例四决策表桩r1r2r3-4r5r6r7-8条件c1YYYNNNc2YYNYYNc3YN-YN-行动a1×××a2××a3××a4××ConditionStub:列出问题的所有条件ConditionEntry:针对左列条件取值,给出真假值ActionStub:列出问题规定可能采取的行动ActionEntry:在条件组合下应采取的行动规则ifthen软件测试—功能性测试84.2基本组成读书指南决策表四决策表12345678问题你觉得疲倦吗?YYYYNNNN你对内容感兴趣吗?YYNNYYNN书中的内容使你糊涂?YNYNYNYN建议请回到本章开头重读××继续读下去××跳到下一章去读××停止阅读,请休息××ConditionStub:列出问题的所有条件ConditionEntry:针对左列条件取值,给出真假值ActionStub:列出问题规定可能采取的行动ActionEntry:在条件组合下应采取的行动规则Ifthen软件测试—功能性测试94.2基本组成如果条件条目具有二值逻辑,则决策表的条件部分是旋转了90度的真值表保证覆盖所有可能的条件值组合四决策表决策表的完备性保证一种完备的测试决策表的特点软件测试—功能性测试10决策表的各种表示方法C1:a,b,c构成三角形?NYYYYYYYYC2:a=b吗?-YYYYNNNNC3:a=c吗?-YYNNYYNNC4:b=c吗?-YNYNYNYNA1:非三角形×A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××增加行动--通过增加行动,可显示何时规则在逻辑上不可能满足四决策表软件测试—功能性测试11决策表的各种表示方法细化条件C1:ab+c?NYYYYYYYYYYC2:ba+c?-NYYYYYYYYYC3:ca+b?--NYYYYYYYYC4:a=b吗?---YYYYNNNNC5:a=c吗?---YYNNYYNNC6:b=c吗?---YNYNYNYNA1:非三角形×××A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××四决策表软件测试—功能性测试12决策表的各种表示方法增加一行规则条数统计C1:ab+c?NYYYYYYYYYYC2:ba+c?-NYYYYYYYYYC3:ca+b?--NYYYYYYYYC4:a=b吗?---YYYYNNNNC5:a=c吗?---YYNNYYNNC6:b=c吗?---YNYNYNYN规则条数统计A1:非三角形×××A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××规则条数统计3216811111111四决策表软件测试—功能性测试13决策表的各种表示方法四决策表有限条目决策表——所有条件都是二叉条件条件的顺序没有要求若有n个条件,必须有(2n)条规则,每条规则对应一个测试用例。若存在不关心项,则规则中每出现一个不关心项,规则数乘一次2。通过条件选择,可大大扩展决策表的规模扩展条目决策表——条件可以有多个值若条件引用了等价类,则“—”的实际含义为:“必须失败”软件测试—功能性测试144.5测试用例的设计NextDate问题四决策表若条件引用了等价类,则“—”的实际含义为:“必须失败”输入条件的等价类M1={月份|每月31天}M2={月份|每月30天}M3={月份|此月为2月}……条件规则1规则2规则3C1:月份在M1中吗?Y--C2:月份在M2中吗?-Y-C3:月份在M3中吗?--Y规则条数444A1:A2:……规则总数:8个软件测试—功能性测试154.3决策表的化简原因基本组成决策表的化简决策表的生成测试用例的设计讨论软件测试—功能性测试164.3决策表的化简设法合并具有相同动作、且条件项相似的规则四决策表12345678问题你觉得疲倦吗?YYYYNNNN你对内容感兴趣吗?YYNNYYNN书中的内容使你糊涂吗?YNYNYNYN建议请回到本章开头重读××继续读下去××跳到下一章去读××停止阅读,请休息××YN-×NN-×不关心条目软件测试—功能性测试174决策表原因基本组成决策表的化简决策表的生成测试用例的设计讨论软件测试—功能性测试184.4决策表的生成根据软件规格说明,确定规则个数列出所有条件桩填入条件项ConditionEntry填入动作项ActionEntry产生决策表并化简四决策表决策表的产生可能需要迭代进行注意完备性、无冗余性和一致性。软件测试—功能性测试194.4决策表的生成若问题要求:“…对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理…”条件:1.功率大于50马力2.维修记录不全3.运行10年以上四决策表采取的措施:1.进行优先的维修处理2.做其它处理12345678问题功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行10年以上吗?YNYNYNYN建议进行优先的维修处理×××××做其它处理×××软件测试—功能性测试204.4决策表的生成检查发货单If(发货单金额超过$500)If(欠款超过60天)在偿还欠款前不予批准Else发批准书及发货单EndifElseIf(欠款超过60天)发批准书、发货单及赊欠报告Else发批准书及发货单EndifEndif1234条件发货单金额500500=500=500赊欠情况60=6060=60操作不发批准书×发出批准书×××发出发货单×××发出赊欠报告×四决策表检查发货单金额500金额=500欠款=60欠款60欠款=60欠款60发批准书、发货单不发批准书发批准书、发货单发批准书、发货单和赊欠报告软件测试—功能性测试214决策表原因基本组成决策表的化简决策表的生成测试用例的设计讨论软件测试—功能性测试224.5测试用例的设计用决策表表示测试用例,则输入即为条件,输出即为行动,有时,条件最终引用输入的等价类,行动则引用软件的主要功能处理部分决策表可机械地强制为完备的,故可得到测试用例的完整集合四决策表软件测试—功能性测试234.5测试用例的设计三角形问题四决策表输出的等价类R1={a,b,c|有三条边a,b,c的等边三角形}R2={a,b,c|有三条边a,b,c的等腰三角形}R3={a,b,c|有三条边a,b,c的不等边三角形}R4={a,b,c|三条边a,b,c不构成三角形}能构成三角形?三角形类型?软件测试—功能性测试244.5测试用例的设计三角形问题的决策表四决策表C1:a,b,c构成三角形?NYYYYYYYYC2:a=b吗?-YYYYNNNNC3:a=c吗?-YYNNYYNNC4:b=c吗?-YNYNYNYNA1:非三角形×A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××通过增加行动,显示何时规则在逻辑上不可能满足通过条件选择,扩展决策表的规模输入条件的等价类D1={a,b,c|a=b+c}D2={a,b,c|b=a+c}D3={a,b,c|c=a+b}软件测试—功能性测试254.5测试用例的设计改进的三角形问题的决策表四决策表C1:ab+c?NYYYYYYYYYYC2:ba+c?-NYYYYYYYYYC3:ca+b?--NYYYYYYYYC4:a=b吗?---YYYYNNNNC5:a=c吗?---YYNNYYNNC6:b=c吗?---YNYNYNYNA1:非三角形×××A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××不关心条目对完整决策树的识别有微妙影响。软件测试—功能性测试264.5测试用例的设计改进的三角形问题的决策表四决策表对于有限条目决策表:若有n个条件,须有(2n)条规则。若存在不关心项,则规则中每出现一个不关心项,规则数乘1次2。C1:ab+c?NYYYYYYYYYYC2:ba+c?-NYYYYYYYYYC3:ca+b?--NYYYYYYYYC4:a=b吗?---YYYYNNNNC5:a=c吗?---YYNNYYNNC6:b=c吗?---YNYNYNYN规则条数统计A1:非三角形×××A2:不等边三角形×A3:等腰三角形×××A4:等边三角形×A5:不可能×××规则总数:64个规则条数统计3216811111111软件测试—功能性测试274.5测试用例的设计改进的三角形问题的测试用例用例IDabc预期输出1412非三角形2142非三角形3124非三角形4555等边三角形5???不可能6???不可能7232等腰三角形8???不可能9322等腰三角形10223等腰三角形11345不等边三角形四决策表软件测试—功能性测试284.5测试用例的设计NextDate问题四决策表若条件引用了等价类,则“—”的实际含义为:“必须失败”输入条件的等价类M1={月份|每月31天}M2={月份|每月30天}M3={月份|此月为2月}……条件规则1规则2规则3C1:月份在M1中吗?Y--C2:月份在M2中吗?-Y-C3:月份在M3中吗?--Y规则条数444A1:A2:……规则总数:8个不关心条目对完整决策的识别有微妙影响。软件测试—功能性测试294.5测试用例的设计NextDate问题条件1.11.21.31.42.12.22.32.43.13.23.33.4C1:月份在M1中吗?YYYYYYNNYYNNC2:月份在M2中吗?YYNNYYYYYNYNC3:月份在M3中吗?YNYNYNYNYYYY规则条数111111111111A1:A2:……1234567四决策表规则总数:8个软件测试—功能性测试304.5测试用例的设计NextDate问题条件1.11.21.31.42.32.43.4C1:月份在M1中吗?YYYYNNNNC2:月份在M2中吗?YYNNYYNNC3:月份在M3中吗?YNYNYNYN规则条数11111111A1:不可能×××××A2:……识别和(开发)完备决策表的能力,使我们在解决冗余性和不一致性方面处于有利地位。四决策表软件测试—功能性测试314.5测试用例的设计冗余决策表条件1-456789C1:月份在M1中吗?YNNNNYC2:月份在M2中吗?-YYNNNC3:月份在M3中吗?-YNYNNA1:×××--×A2:-+××--A3:×-××××9YNN×-×规则1-4和9是冗余的。四决策表决策表是确定的。软件测试—功能性测试324.5测试用例的设计不一致决策表条件1-456789C1:月份在M1中吗?YNNNNYC2:月份在M2中吗?-YYNNNC3:月份在M3中吗?-YNYNNA1:×××--×A2:-+××--A3:×-××××9YNN-×-规则4和9不一致。在决策表中应小心使用不关心条目“-”四决策表决策表是不确定的。软件测试—功能性测试33四决策表4.5测试用例的设计NextDate问题输入条件的等价类M1={月份|每月30天}M2={月份|每月31天}M3={月份|此月为2月}D1={日期|1=日期=28}D2={日期|日期=29}D3={日期|日期=30}D4={日期|日期=31}Y1={年|年是闰年}Y2