一:三角形问题(等价类划分法)
例:输入三个整数为三角形的三条边的长度值,程序打印输出这个三角形为不等边的,
等腰的,或是等边三角形。
分析:
设三边分别为A,B,C,如能构成三角形的三边,须: ●A>O,B>0,C>0,且A+B>C,B+C>A,A+C>B; ●如是等腰三角形,则要判断A=B||A=C;
●如是等边三角形,须判断是否A=B,且B=C,且A=C; 由此可得三角形等价类设计表: 输入条件 是否为三角形的三边 有效等价类 A>0 (1) B>0 (2) C>0 (3) A+B>C (4) B+C>A (5) A+C>B (6) 是否为等腰三角形 A=B (13) B=C (14) A=C (15) 是否为等边三角形 A=B且B=C且C=A (17) A≠B (18) B≠C (19) C≠A (20)
无效等价类 A<=0 (7) B<=0 (8) C<=0 (9) A+B<=C (10) B+C<=A (11) A+C<=B (12) A≠B且B≠C且C≠A(16) 设计测试用例,输入顺序为A,B,C 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 “A ,B ,C” 覆盖等价类 “3,4,5” “0,1,2” “1,0,2” “1,2,0” “1,2,3” “1,3,2” “3,1,2” “3,3,4” “3,4,4” “3,4,3” “3,4,5” “3,3,3” “3,4,4” “3,4,3” “3,3,4” (1),(2),(3),(4),(5),(6) (7) (8) (9) (10) (12) (11) (1),(2),(3),(4),(5),(6),(13) (1),(2),(3),(4),(5),(6),(14) (1),(2),(3),(4),(5),(6),(15) (1),(2),(3),(4),(5),(6),(16) (1),(2),(3),(4),(5),(6),(17) (1),(2),(3),(4),(5),(6),(18) (1),(2),(3),(4),(5),(6),(19) (1),(2),(3),(4),(5),(6),(20) 非等腰三角形 等边三角形 非等边三角形 等腰三角形 输出 一般三角形 不能构成三角形 二:找零钱最佳组合(边界值分析法)
例:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求
找给顾客最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种); 1:分析输入的情形
R:商店货品价格(R=<100且R为整数) P:顾客付款金额(0
100 (无效输出)(1) ●R <= 0 (无效输出)(2)
(1)(2)为R的无效输入 ●P > 100(多付) (无效输出)(3) ●0 < R < = 100
P < R (少给) (无效输出)(4)
(3)(4)为P的无效输入 ●R<= P <= 100 (5) 0 < R < = 100 (6)
(5)(6)同时满足,交易才能进行 2:分 析 输 出 情 形
设PR=P-R(即PR为找给顾客的余额)
●N50 N50 = 1 (PR>=50) (7) N50 = 0 (PR<50) (8) ●N10 4>=N10>=1 (40>=PR>=10) (9) N10 = 0 (PR<10) (10) ●N5 N5=1 (11)
N5 = 0 (PR减去个位上钱数能被10整除)(如14-4=10) (12) ●N1 4>=N1>=1 (13) N1 = 0 (PR为5的倍数) (14) 3:由上述输入/输出条件组合出可能的情形 。 ●R > 100 (1) ●R <= 0 (2) ●0 < R <= 100, P > 100 (3) ●0 < R <= 100, P < R (4) ●0 < R <= 100, R <= P <= 100, RR = 50 (5)(6)(7)
●0 < R <= 100, R <= P <= 100, RR = 49 (5)(6)(8)(9)(11)
●0 < R <= 100, R <= P <= 100, RR = 10 (5)(6)(9)
●0 < R <= 100, R <= P <= 100, RR = 9 (5)(6)(10)(11)(13) ●0 < R <= 100, R <= P <= 100, RR = 5 (5)(6)(11) ●0 < R <= 100, R <= P <= 100, RR = 4 (5)(6)(13) ●0 < R <= 100, R <= P <= 100, RR = 1 (5)(6)(13) ●0 < R <= 100, R <= P <= 100, RR = 0 (5)(6)(14) 4、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 : 1). 货品价格 = 101 2). 货品价格 = 0 3). 货品价格 = -1
4). 货品价格 = 100, 付款金额 = 101 5). 货品价格 = 100, 付款金额 = 99 6). 货品价格 = 50, 付款金额 = 100 7). 货品价格 = 51, 付款金额 = 100 8). 货品价格 = 90, 付款金额 = 100 9). 货品价格 = 91, 付款金额 = 100 10). 货品价格 = 95, 付款金额 = 100 11). 货品价格 = 96, 付款金额 = 100 12). 货品价格 = 99, 付款金额 = 100 13). 货品价格 = 100, 付款金额 = 100
三: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:年增1
C1:月 C2:日 C3:年 A1:不可能 A2:日期+1 A3:日期复位 (置1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 M1 M1 M1 M1 M1 M2 M2 M2 M2 M2 M3 M3 M3 M3 M3 M4 M4 M4 M4 M4 D1 D2 D3 D4 D5 D1 D2 D3 D4 D5 D1 D2 D3 D4 D5 D1 D2 D2 D3 D3 Y1 Y2 Y1 Y2 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ A4:月份+1 A5:月份复位 (置1 ) √ √ A6:年+1 21 21 M4 M4 D4 D5 √ √ 2)由决策表设计测试用例,得测试用例表
用例编号 1--3 4 5 6--9 10 11-14 15 16 17 18 19 20 21,22
月 4 4 4 1 1 12 12 2 2 2 2 2 2 日 12/28/29 30 31 15/28/29/30 31 15/28/29/30 31 15 28 28 29 29 30/31 年 2001 2001 2001 2001 2001 2001 2001 2001 2004 2001 2005 2001 2001 预期输出 2001年4月13/29/30日 2001年5月1日 不可能 2001年1月16/29/30/31日 2001年2月1日 2001年12月16/29/30/31日 2002年1月1日 2001年2月16日 2004年2月29日 2001年3月1日 2005年3月1日 不可能 不可能 四:工资发放问题(因果图)
例:某厂工资发放,分析测试需求,列出输入和输出条件,情况描述如下: ●工资分年薪制a1,月薪制a2; ●错误程度分普通a3,严重a4;
●工资为a1的员工范普通错误时扣工资1%(b1),犯严重错误时扣工资2%(b2);
●工资为a2的员工范普通错误时扣工资2%(b3),犯严重错误时扣工资4%(b4); 其中a1与a2互斥,b1,b2与b3,b4互斥;a3和a4可同时兼备。 分析:(因果图)-转化成->(判定表)-转换成->(测试用例表) 判定表: 输入 a1 a2 a3 a4 输出 b1 b2 b3 b4 T F T F × T F F T × T F T T × × T F F F F T T F × F T F T × F T T T × × F T F F 可得测试用例表如下: 测试用例编号 1 2 3 输入数值 工资为a1的员工,犯普通错误 工资为a1的员工,犯严重错误 工资为a1的员工,同时犯严重错误和普通错误 4 5 6 工资为a1的员工,没犯错误 工资为a2的员工,犯普通错误 工资为a2的员工,犯严重错误 0 b3 b4 预期输出 b1 b2 b1+b2 7 工资为a2的员工,同时犯严重错误和普通错误 b3+b4 8
工资为a2的员工,没犯错误 0
因篇幅问题不能全部显示,请点此查看更多更全内容