51Testing软件测试论坛

标题: 再谈三角形问题 [打印本页]

作者: applejuzi    时间: 2007-7-24 10:49
标题: 再谈三角形问题
我也看到了论坛中有很多关于三角形问题的帖子,我看到了对于该问题有多种答案,所以不知道 哪种更好,更准确。下面我就把我看到的答案帖出来。大家相互讨论。
题:
某程序规定:"输入三个整数 a b c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。

答案一:

分析题目中给出和隐含的对输入条件的要求:
1)整数
2)三个数
3)非零数
4)正数

5)两边之和大于第三边
6)等腰
7)等边

如果 a b c 满足条件( 1 ~ 4 ),则输出下列四种情况之一:

   1)
如果不满足条件(5),则程序输出为 " 非三角形 "
   2)
如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 "
   3)
如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 "
   4)
如果三条边都不相等,则程序输出为 " 一般三角形 "
列出等价类表并编号


作者: applejuzi    时间: 2007-7-24 10:50
覆盖有效等价类的测试用例:
    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)
   覆盖无效等价类的测试用例:
作者: applejuzi    时间: 2007-7-24 10:53
答案二:

n
我们可以设三角形的3条边分别为ABC。如果它们能够构成三角形的3条边,必须满足:
n
A>0B>0C>0,且A+B>CB+C>AA+C>B
n
如果是等腰的,还要判断A=B,或B=C,或A=C
n
如果是等边的,则需判断是否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
A0),

7

B0),      8
C0),      9
A+BC),    10
B+CA),    11
A+CB),    12
是否等腰三角形
A=B),     13
B=C),     14
C=A),     15
ABandBCandCA     16
是否等边三角形
A=BandB=CandC=A
              17
AB),      18
BC),

19

CA),      20

作者: applejuzi    时间: 2007-7-24 10:57
序号
ABC
覆盖等价类
输出
1
345
1),(2),(3),(4),(5),(6
一般三角形
2
012
7
不能构成三角形
3
102
8
4
120
9
5
123
10
6
132
11
7
312
12
8
334
1),(2),(3),(4),(5),(6),(13
等腰三角形
9
344
1),(2),(3),(4),(5),(6),(14
10
343
1),(2),(3),(4),(5),(6),(15
11
345
1),(2),(3),(4),(5),(6),(16
非等腰三角形

作者: applejuzi    时间: 2007-7-24 10:58
12
333
1),(2),(3),(4),(5),(6),(17
是等边三角形
13
344
1),(2),(3),(4),(5),(6),(14),(18
非等边三角形
14
343
1),(2),(3),(4),(5),(6),(15),(19
15
334
1),(2),(3),(4),(5),(6),(13),(20

本人更倾向于答案一。不过,对于其中的那个无效类:非整数,为何不再具体划分为小数、字符等。请各位高手指点。
作者: tianbudong    时间: 2007-7-24 16:51
好,同意
作者: dragon2007    时间: 2007-8-3 16:03
标题: 分析的很详细!!
分析的很详细!!分析的很详细!!分析的很详细!!分析的很详细!!
作者: hyq828    时间: 2007-8-16 16:41
我觉的其实也可以把无效等价类细分成小数和字符了。这主要看你怎么拆分等价类了
作者: lsb5211314    时间: 2007-9-15 14:38
受教了,不错,努力学习,顶一下!
作者: flying-clouds    时间: 2007-9-15 19:24
分析的真好
作者: Suran2004    时间: 2007-9-17 17:00
非常感谢楼主对这道题目做了一个这么好的总结。。。不错!!
作者: zhouzxcv    时间: 2007-9-17 23:17
一、        输入和输出条件
输入:
条件1:1<=a<=200
条件2:1<=b<=200
条件3:1<=c<=200
条件4:a<b+c
条件5:b<a+c
条件6:c<b+a
输出:
输出1:提示输入的数据有误
输出2:等边三角形
输出3:等腰三角形
输出4:不等边三角形
输出5::非三角形
二、判别表

输入                                                                       
条件1        F        T        T        T        T        T        T        T        T
条件2                F        T        T        T        T        T        T        T
条件3                T        F        T        T        T        T        T        T
条件4                                T        T        F        T        T        T
条件5                                T        F        T        T        T        T
条件6                                F        T        T        T        T        T
输出                                                                       
输出1        X        X        X                                               
输出2                                                        X               
输出3                                                                X       
输出4                                                                        X
输出5                                X        X        X
三、用例
输入不合法的情况有:超出[1,200]范围
                                        浮点数
                                        字符
                                        空



我的思路,用例没写

[ 本帖最后由 zhouzxcv 于 2007-9-17 23:19 编辑 ]
作者: zqdl    时间: 2007-10-31 10:59
分析的太详细拉,学习!!!!
作者: kenanmao1983    时间: 2007-10-31 15:43
非常感谢!
作者: aaliujing    时间: 2007-12-24 17:12
呵呵,三角形的问题太经典了~
感觉平时我写的用例分析不全面~
主要是这种设计思想没有~
呵呵~
加油中~
作者: ilovecinema    时间: 2008-5-4 19:33
刚学测试,布置的作业也是这个
作者: 1997goodluck    时间: 2008-5-4 22:14
方法一更好一些,不过我认为非整形能不能在分为小数,字母,特殊字符和汉字
作者: I_hui    时间: 2008-5-5 01:36
写测试用例,思想最重要,我所欠缺的就是这种思想。。。
作者: wanghaiping1111    时间: 2008-5-6 12:04
标题: 回复 5# 的帖子
我个人觉得第二种分析方法也分析的不错,只是判断非等腰三角形和非等边三角形有重复,如果是三角形的话,不是等边三角形或等腰三角形,那应该就是一般三角形。
作者: wanghaiping1111    时间: 2008-5-6 12:05
因为后面的条件前面一般三角形都已经覆盖了
作者: wanghaiping1111    时间: 2008-5-6 12:07
原帖由 hyq828 于 2007-8-16 16:41 发表
我觉的其实也可以把无效等价类细分成小数和字符了。这主要看你怎么拆分等价类了



人家已经说了三个整数,所以我觉得在无效等价类不用考虑小数和字符了
作者: lht248382830    时间: 2008-5-28 08:59
不错,之前也做过
作者: iisgood    时间: 2008-6-6 13:06
第二个,无效等价类划分的是不是不够细?
我觉的负数至少得考虑进去!
作者: mrxangel1986    时间: 2008-6-9 23:42
对于其中的那个无效类:非整数,为何不再具体划分为小数、字符
要看你是否测试的更深了
作者: mrxangel1986    时间: 2008-6-9 23:42
把握测试的度,,,,
作者: 清V闲    时间: 2008-6-10 20:07
借鉴借鉴
作者: ycw    时间: 2011-5-30 19:24
mark一下,谢谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2