软件测试homework3

P64

(a)

(b) when MAXPRIMES = 4, array will out of bound

(c) n = 1

(d) node coverage:

  TR = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

  Test Paths: [1,2,3,4,5,6,7,8,5,9,10,11,12,2,13,14,15,16]

  edge coverage:

  TR = {(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(6,8),(7,8),(8,5),(5,9),(9,10),(10,11),(11,12),(10,12),(12,2),(2,13),(13,14),(14,15),(15,14),(14,16)}

  prime path coverage:

  TR = {[1,2,13,14,16],[1,2,13,14,15],[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,8],[1,2,3,4,5,9,10,11,12],[1,2,3,4,5,9,10,12],[2,

 

最后,设计主路径测试覆盖的用例。以上次的三角形为例:

软件结构如下:

Triangle的内容:

判断三角形的形状的代码如下:

复制代码
public String type(Triangle tri){
        if(isTriangle(tri)){
            
            if(isIsosceles(tri)){
                return "isoscele";
            }
            if(isScalene(tri)){
                return "equilateral";
            }
            return "scalene";
        }
        return "not a triangle";
    }
复制代码

TriangleTest的内容如下:

复制代码
package cn.tjuscs.st;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.assertEquals;


@RunWith(Parameterized.class)
public class TriangleTest {
    
    private Triangle tri;
    private int input1;
    private int input2;
    private int input3;
    private String expected;
    
    public TriangleTest(int input1, int input2, int input3, String expected){
        this.input1 = input1;
        this.input2 = input2;
        this.input3 = input3;
        this.expected = expected;
    }
    
    @Before
    public void setUp(){
        tri = new Triangle(input1, input2, input3);
    }
    
    @Parameterized.Parameters
    public static Collection<Object[]> getData(){
        return Arrays.asList(new Object[][]{
                {2,2,2,"equilateral"},
                {2,4,3,"scalene"},
                {2,3,3,"isoscele"},
                {2,9,2,"not a triangle"}
        });
    }
    
    @Test
    public void testTriangle() throws Exception{
        assertEquals(this.expected, tri.type(tri));
    }
    
}
复制代码

  覆盖率97.6%

  //原来的程序打不开了。。所以用这个代替覆盖率的截图

posted @ 2016-03-29 21:23  一边挖鼻屎一边  阅读(161)  评论(0编辑  收藏  举报