作业8
- [必做题1] 针对附录1给出的三角形判断Java 代码,应用等价类划分法设计测试用例,用表格形式列出设计的测试用例,写到博客中。(10分)
测试用例 | ||
序号 | 测试输入:三条边(a,b,c) | 测试预言(Oracle:直角、等腰、等边三角形) |
1 | 输入(1,1,1) | 等边三角形 |
2 | 输入(****) | *** |
-
[必做题2] 模仿附录2给出的三角形判断Junit测试代码,设计单元测试脚本,测试 [必做题1]设计得到的测试用例。注意测试脚本中测试用例出现顺序与[必做题1]表格所列顺序一致。运行所得的测试脚本,截运行结果图,写到博客中,同时将源代码commit到你自己的github。(20分)
-
[必做题3] 心得体会。写下本次练习你收获的知识点(PS:测试用例设计方法和步骤;测试脚本设计步骤或主要内容)。(10分)
1.
测试用例 | 测试输入:三条边(a,b,c) | 测试预言(Oracle:直角、等腰、等边三角形) |
1 | (0,2,0) | 非法三角形 |
2 | (2,3,5) | 非法三角形 |
3 | (-1,-3,-3) | 非法三角形 |
4 | (7,7,9) | 等腰三角形 |
5 | (3,7,8) | 一般三角形 |
6 | (3,3,3) | 等边三角形 |
2.
import static org.junit.Assert.*; import org.junit.Test; public class TestTriangle { @Test public void testIsTriangle1(){ Triangle t = new Triangle(-1,1,1); assertTrue(t.isTriangle(t)); } @Test public void testIsTriangle2(){ Triangle t = new Triangle(1,2,3); assertTrue(t.isTriangle(t)); } @Test public void testIsTriangle3(){ Triangle t = new Triangle(1,1,1); assertTrue(t.isTriangle(t)); } @Test public void testIsTriangle4(){ Triangle t = new Triangle(2,2,3); assertTrue(t.isTriangle(t)); } @Test public void testIsTriangle5(){ Triangle t = new Triangle(3,4,5); assertTrue(t.isTriangle(t)); } }
3. 通常应该避免依赖先前测试用例的输出,测试用例的执行序列早期发现的错误可能导致其他的错误而减少测试执行时实际测试的代码量; 测试用例设计过程中,包括作为试验执行这些测试用例时,常常可以在软件构建前就发现BUG。还有可能在测试设计阶段比测试执行阶段发现更多的BUG。 在整个单元测试设计中,主要的输入应该是被测单元的设计文档。在某些情况下,需要将试验实际代码作为测试设计过程的输入,测试设计者必须意识到不是在测试代码本身。从代码构建出来的测试说明只能证明代码执行代码完成的工作,而不是代码应该完成的工。