实验121.用因果图法测试一下程序。程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。解题步骤:1)分析程序的规格说明,列出原因和结果。2)找出原因和结果之间的因果关系、原因与原因之间的关系,画出因果图。3)将因果图转换成决策表。4)根据3)中的决策表,设计测试用例的输入数据和预期输出。a)答:分析程序规格说明中的原因和结果:原因结果c1:第一个字符是#e1:给出信息Nc2:第一个字符是*e2:修改文件c3:第二个字符是一个数字e3:给出信息M(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):(3)将因果图转换成如下所示的决策表:选项规则12345678条件:C1C2C310111110101110010111010100100000动作:E1E2E3不可能√√√√√√√√√测试用例#3#A*6*BA1GT(4)根据决策表中的每一列设计测试用例:c1c2c3e110e2e3~∨E~∧测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M2.找零钱最佳组合假设商店货品价格(R)都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5),1元(N1)四种。请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。答:边界:一、分析输入的情形。1.R无效:R>100R<=02.R有效:0100(钱给多)2_2.P无效:P100R<=001000