三角形测试用例设计

 某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。之前面试了几个地方都问了这个题,网上找了下答案。不懂测试理论,也不知道啥叫等级类,也不知道哪个答案更准确。。。。不知道为什么所有答案给出的用例里没有测试边界值,极大的值,负数,小数等等 答案1:http://hi.baidu.com/godmap/blog/item/12ed690f14cc9c2b6059f3bc.html  三角形等价类列表判定类型 有效等价类 无效等价类
一般三角形 ((a>0) Λ(b>0) Λ(c>0)) Λ (a<=0 V b<=0 V c<=0) Λ
(((a+b)>c) V ((a+c)>b) V ((b+c)>a)) (1) (((a+b)<=c) V ((a+c)<=b) V ((b+c)<=a)) (2)
等腰三角形 (1) Λ (a=b V a=c V b=c) (3) (2) V (a!=b V b!=c V a!=c) (4)
等边三角形 (1) Λ (a=b=c ) (5) (2) V (a!=b!=c) (6)

根据上表组成的测试用例:三角形等价类测试用例ID 输入数据 覆盖测试用例 输出结果a b c 
1 3 4 5 (1) 一般三角形
2 0 4 5 (2) 非(一般)三角形
3 3 0 5 (2) 
4 3 4 0 (2) 
5 1 4 5 (2) 
6 3 8 5 (2) 
7 3 2 1 (2) 
8 3 3 5 (3) 等腰三角形
9 3 4 3 
10 3 4 4 
11 3 4 9 (4) 非等腰三角形
12 3 3 3 (5) 等边三角形
13 -1 0 1 (6) 非等边三角形答案2: http://www.51testing.com/?uid-275201-action-viewspace-itemid-218955分析题目中给出和隐含的对输入条件的要求:
(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)
覆盖无效等价类的测试用例: 答案3:http://www.docin.com/p-52238990.html 答案4:http://softtest.chinaitlab.com/bug/794757.html 三角形设计测试用例的问题在面试的时候经常遇到。  假设输入三个整数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时!要求画出程序的流程图和时序图,并且用自己熟悉的一种语言实现这个功能!我在网上搜索了一下发现已经有好多文章,不过发现很少有写出程序的,其实用java语言也可以实现,流程图和程序图参考的网上的。  第一步:确定测试策略。在本例中,对被测程序的功能有明确的要求,即:  (1)判断能否组成三角形;  (2)识别等边三角形;  (3)识别等腰三角形;  (4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。  第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。  等价分类法:  有效等价类  输入3个正整数:  (1)3数相等  (2)3数中有2个数相等,比如AB相等  (3)3数中有2个数相等,比如BC相等  (4)3数中有2个数相等,比如AC相等  (5)3数均不相等  (6)2数之和不大于第3数,比如最大数是A  (7)2数之和不大于第3数,比如最大数是B  (8)2数之和不大于第3数,比如最大数是C  无效等价类:  (9)含有零数据  (10)含有负整数  (11)少于3个整数  (12)含有非整数  (13)含有非数字符  边界值法:  (14)2数之和等于第3数  猜错法:  (15)输入3个零  (16)输入3个负数  第三步:提出一组初步的测试用例,如下表所示:  第四步:用白盒法验证第三步产生的测试用例的充分性。结果表明,上表中的前8个测试用例,已能满足对被测程序图的完全覆盖,不需要再补充其他的测试用例。    

你可能感兴趣的:(软件工程)