编程之美 4.8三角形测试用例

问题:输入三角形三边长,判断是否能构成一个三角形(不考虑退化三角形)。

1.如何用一个byte来表示各种输出结果?

2.如果你是一名测试工程师,如何编写测试用例?

问题1解法:非常简单,参照IP数据报那样,每一位代表一种属性,如下表所示:

7 6 5 4 3 2 1 0
是否为三角形     直角 锐角 钝角 等边 等腰

问题2解法:

作为测试工程师通常测试要分为以下三方面:

①在正常输入下的功能测试

用例id 输入 预期输出 结果描述
1 (4,1,2) 00000000 非三角形
2 (5,5,5) 10001011 等边锐角三角形
3 (2,2,3) 10000001 等腰三角形
4 (3,4,5) 10010000 直角三角形
5 (2,3,4) 10000100 钝角三角形
6 (100,99,2) 10001000 锐角三角形

注:不止要测试(4,1,2),交换其三边顺序的例子也要测试,如(1,2,4)

②在非法输入时的表现

用例id 输入 预期输出 结果描述
8 (0,1,2) 00000000 0值
9 (-1,1,2) 00000000 负值
10 (a,1,2) 00000000 类型错误

③测试程序对边界值附近输入的处理(假设1<=a,b,c<=100)

用例id 输入 预期输出 结果描述
11 (50,50,1) 10000001 等腰三角形
12 (50,50,2) 10000001 等腰三角形
13 (100,100,99) 10000001 等腰三角形
14 (100,100,100) 10001011 等边三角形
15 (50,50,100) 00000000 非三角形
16 (1,1,1) 10001011 等边三角形
17 (1,1,2) 00000000 非三角形
18 (1,1,99) 00000000 非三角形
19 (1,1,100) 00000000 非三角形

tips:中间值通常应该确保能被正确处理,而边界值则往往因为判断语句使用<、>还是<=、>=而引起错误。

一般来讲,测试用例至少有15~20个才有价值且必要。

posted @ 2013-10-09 20:55  Linka  阅读(764)  评论(0编辑  收藏  举报