问:某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)
解:
分析题目中给出和隐含的对输入条件的要求:
(1)整数
(2)三个数
(3)非零数
(4)正数
(5)两边之和大于第三边
(6)等腰
(7)等边
如果 a、 b 、 c满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:
1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号
覆盖有效等价类的:
a b c 覆盖等价类号码
3 4 5 (1)--(7)
4 4 5 (1)--(7),(8)
4 5 5 (1)--(7),(9)
5 4 5 (1)--(7),(10)
4 4 4 (1)--(7),(11)
覆盖无效等价类的用例:
二、边界值分析法
NextDate函数的边界值分析用例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
mouth |
dy |
yr |
预期输出 | |
Tst1
Tst2
Tst3
Tst4
Tst5
Tst6
Tst7 |
6
6
6
6
6
6
6 |
15
15
15
15
15
15
15 |
1911
1912
1913
1975
2049
2050
2051 |
1911.6.16
1912.6.16
1913.6.16
1975.6.16
2049.6.16
2050.6.16
2051.6.16 |
Test8
Test9
Test10
Test11
Test12
Test13 |
6
6
6
6
6
6 |
-1
1
2
30
31
32 |
2001
2001
2001
2001
2001
2001 |
dy超出[1…31]
2001.6.2
2001.6.3
2001.7.1
输入日期超界
dy超出[1…31] |
Test14
Test15
Test16
Test17
Test18
Test19 |
-1
1
2
11
12
13 |
15
15
15
15
15
15 |
2001
2001
2001
2001
2001
2001 |
Mouth超出[1…12]
2001.1.16
2001.2.16
2001.11.16
2001.12.16
Mouth超出[1…12] |
、错误推测法
一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别的情况:


解答:
①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。
②列出所有的条件茬和动作桩:
③填入条件项。可从最后1行条件项开始,逐行向上填满。如第三行是:Y N Y N Y N Y N,第二行是:Y Y N N Y Y N N等等。
④填入动作桩和动作顶。这样便得到形如图的初始判定表。
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | |
条 件 |
功率大于50马力吗? |
Y |
Y |
Y |
Y |
N |
N |
N |
N |
维修记录不全吗? |
Y |
Y |
N |
N |
Y |
Y |
N |
N | |
运行超过10年吗? |
Y |
N |
Y |
N |
Y |
N |
Y |
N | |
动 作 |
进行优先处理 |
x |
x |
X |
|
X |
|
X |
|
作其他处理 |
|
|
|
X |
|
x |
|
x |
初始判定表
⑤化简。合并相似规则后得到图。
|
1 |
2 |
3 |
4 |
5 | |
条 件 |
功率大于50马力吗? |
Y |
Y |
Y |
N |
N |
维修记录不全吗? |
Y |
N |
N |
- |
- | |
运行超过10年吗? |
- |
Y |
N |
Y |
N | |
动 作 |
进行优先处理 |
x |
x |
|
X |
|
作其他处理 |
|
|
x |
|
x |