http://www.cnblogs.com/Linkabox/p/3360105.html
问题:输入三角形三边长,判断是否能构成一个三角形(不考虑退化三角形)。
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个才有价值且必要
http://blog.csdn.net/erorr/article/details/5901216
对于扩展问题2,主要应该是考虑另存文件名的问题吧,包含以下几个方面:
1. 判断当前的目录是否有权限可以写,是否有足够的空间
2. 文件名为空,文件名过长,以及包含有各种非法字符
3. 文件名已经存在,是否覆盖
4. 针对单字符和Unicode设计不同case
5. 带绝对路径和相对路径的的另存为