掌握基于覆盖理论与基本路径的基本白盒测试方法和实践
运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。
根据各位同学自己的被测程序,分别作出各类白盒测试技术的用例设计和相应的Junit脚本。
所有的覆盖的技术:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,基本路径测试方法。
包括的内容有:
1) 被测原代码
2)依据覆盖技术,测试用例列表:
3)相应Junit测试脚本、执行结果
4)给出测试参数化和打包测试的脚本,并生成执行结果
Input (a,b,c)
String result;
IF (a < 1 or a > 100 or b < 1 or b > 100 or c < 1 or c > 100)
result <- "边的值不在范围内!";
ELSE IF(a >= b + c or b >= a + c or c >= a + b)
result <- "不构成三角形!";
ELSE IF (a == b && b == c)
result <- "等边三角形";
ELSE IF ((a - b) * (a - c) * (b - c) == 0)
result <- "等腰三角形";
ELSE IF (a * a + b * b == c * c or a * a + c * c == b * b or c * c + b * b == a * a)
result <- "直角三角形";
ELSE
result <- "一般三角形";
END IF;
return result;
Output(result)
2)依据覆盖技术的测试用例:
程序图 :

DD-路径图:

DD-路径(只压缩链路经)

(I)语句覆盖:

(II)分支覆盖(判断覆盖):

(III)路径覆盖:

(IV)条件覆盖:各个条件取真或假的可能至少执行一次


3)相应Junit测试脚本:
1 import static org.junit.Assert.assertEquals; 2 3 import org.junit.Test; 4 5 public class JudgeTriangleTest { 6 7 @Test 8 public void testTriangle() { 9 String result=null;//实际结果 10 result=JudgeTriangle.triangle(0, 0, 0) ; 11 assertEquals("边的值不在范围内!", result); 12 result=JudgeTriangle.triangle(101,101, 101) ; 13 assertEquals("边的值不在范围内!", result); 14 result=JudgeTriangle.triangle(3, 1,1) ; 15 assertEquals("不构成三角形!", result); 16 result=JudgeTriangle.triangle(1, 3, 1) ; 17 assertEquals("不构成三角形!", result); 18 result=JudgeTriangle.triangle(1,1, 3) ; 19 assertEquals("不构成三角形!", result); 20 result=JudgeTriangle.triangle(3, 4, 5) ; 21 assertEquals("直角三角形", result); 22 result=JudgeTriangle.triangle(3, 5, 4) ; 23 assertEquals("直角三角形", result); 24 result=JudgeTriangle.triangle(5, 3, 4) ; 25 assertEquals("直角三角形", result); 26 result=JudgeTriangle.triangle(2, 3, 4) ; 27 assertEquals("一般三角形", result); 28 //fail("Not yet implemented"); 29 } 30 31 }

1.测试找到的缺陷清单:无
2.对源代码的修改建议:无
3.测试总结与心得体会:各种覆盖方式容易重合,可以先写条件覆盖,其他覆盖从里面挑取
原文:http://www.cnblogs.com/chenyp1996/p/6708539.html