一、有一个C程序读入3个整数A、B、C,把这3个整数作为一个三角形的3条边的长度值。这个程序要打印出信息,说明这3个整数是否能组成三角形,如果能组成三角形,说明这个三角形是不等边、等腰或等边三角形。
针对上述需求分析,先编写这个C程序,然后按照等价类划分法为这个程序设计测试用例,最后运行设计的测试用例(弱健壮覆盖标准)。
按照输入进行等价类划分模板如下:
条件
有效等价类
编号
无效等价类
编号
按照输出进行等价类划分模板如下:
条件
有效等价类
编号
测试用例模板如下:
用例编号
A
B
C
预期输出
覆盖等价类
解答:
输入等价类划分:
条件
有效等价类
编号
等边三角形
构成三角形且三边皆相等
1
等腰三角形
构成三角形且三边中有两边相等
2
不等边三角形
构成三角形且三边皆不相等
3
不是三角形
三边不满足三角形判定
4
输出等价类划分:
条件
有效等价类
编号
等边三角形
构成三角形且三边皆相等
1
等腰三角形
构成三角形且三边中有两边相等
2
不等边三角形
构成三角形且三边皆不相等
3
不是三角形
三边不满足三角形判定
4
测试用例:
用例编号
A
B
C
预期输出
覆盖等价类
1
6
6
6
等边三角形
1
2
9
9
8
等腰三角形
2
3
3
4
5
不等边三角形
3
4
6
8
15
不是三角形
4
二、NextDate函数是一个有三个变量month(月份)、day(日期)和year(年)的函数。输出为输入日期后一天的日期。要求输入变量month、day和year都是整数值,并且满足下条件:1≤month≤12、1≤day≤31、1912≤year≤2050。
针对上述需求分析,先编写一个包含NextDate函数以及对日期合法性检查的C程序,然后按照强一般等价类为该函数设计测试用例(提示:因为是强一般等价类,所以只考虑有效等价类的组合。划分等价类的时候,要考虑31天的月份、30天的月份、闰年的2月等多种情况)。
等价类划分模板如下:
等价类划分(只考虑有效等价类)
输入条件
有效等价类
编号
测试用例模板如下:
测试用例(强一般等价类)
用例编号
年
月
日
预期输出
覆盖等价类
解答:
等价类划分(有效等价类):
输入条件
有效等价类
编号
月份的类型及长度
月份为[1,3,5,7,8,10,12]
1
月份为[3,6,9,11]
2
月份为[2]
3
日期的类型及长度
日期为1-27
4
日期为28
5
日期为29
6
日期为30
7
日期为31
8
年的类型及长度
年份为平年
9
年份为闰年
10
测试用例(强一般等价类):
用例编号
月
日
年
预期输出
覆盖等价类
1
2
29
2024
3/1/2024
3,6,10
2
2
28
2023
3/1/2023
3,5,9
3
2
21
2024
2/22/2024
3,4,10
4
2
28
2024
2/29/2024
3,5,10
5
2
21
2023
2/22/2023
3,4,9
6
1
22
2021
1/23/2021
1,4,9
7
3
28
2021
3/29/2021
1,5,9
8
5
29
2021
5/30/2021
1,6,9
9
7
30
2021
7/31/2021
1,7,9
10
8
31
2021
9/1/2021
1,8,9
11
1
22
2028
1/23/2028
1,4,10
12
3
28
2028
3/29/2028
1,5,10
13
5
29
2028
5/30/2028
1,6,10
14
7
30
2028
7/31/2028
1,7,10
15
8
31
2028
9/1/2028
1,8,10
16
3
9
2021
3/10/2021
2,4,9
17
6
28
2021
6/29/2021
2,5,9
18
9
29
2021
9/30/2021
2,6,9
19
11
30
2021
12/1/2021
2,7,9
20
3
9
2028
3/10/2028
2,4,10
21
6
28
2028
6/29/2028
2,5,10
22
9
29
2028
9/30/2028
2,6,10
23
11
30
2028
12/1/2028
2,7,10