软件测试覆盖作业 第七题

一.

a.控制流图:

b.设置错误在 if(isDivisible(primes[i],curPrime)),即可使t2比t1更容易发现

c.n = 1

d.

Node Coverage Test Paths:

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

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

Edge Coverage Test Paths:

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

[1,2,3,4,5,6,8,9,11,2,12,13,16]

Prime Path Coverage Test Paths:

[5,6,7,5]

[13,14,15,13]

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

[1,2,3,4,5,6,8,9,11,2,12,13,16]

[1,2,3,4,5,6,7,8,9,10,11]

[2,3,4,5,6,7,8,9,10,11,2]

[2,3,4,5,6,8,9,11,2]

[2,3,4,5,6,7]

[2,12,13,14,15]

[2,12,13,16]

[1,2,12,13,14,15]

[1,2,12,13,16]

二.实现一个主路径覆盖:

package junit;

public class triangle 
{
private static int equilateral = 1;
private static int isosceles = 2;
private static int scalene = 3;
private static int error = 4;

public int getEquilateral()
{
    return equilateral;
    
}


public int getIsosceles()
{
    return isosceles;
    
}

public int getScalene()
{
    return scalene;
    
}

public int getError()
{
    return error;
    
}

public int type(int a, int b, int c)
{
    if(a<=0||b<=0||c<=0)
    {
        return error;
    }
    else if(a+b<=c||a+c<=b||b+c<=a)
    {
        return error;
    }
    else if(a!=b&&b!=c&&a!=c)
    {
        return scalene;
    }
    else if(a==b&&b==c)
    {
        return equilateral;
    }
    else
    {
        return isosceles;
    }

}

}

测试类用例:

package junit;
import org.junit.Test;
import static org.junit.Assert.*;

public class triangletest {
	private triangle triangle = new triangle();
	@Test
	public void testNottriangel(){
		assertEquals(triangle.getError(),triangle.type(0, 1, 2));
	}
	@Test
	public void testScalene(){
		assertEquals(triangle.getScalene(),triangle.type(2, 4, 3));
	}
	@Test
	public void testIsosceles(){
		assertEquals(triangle.getIsosceles(),triangle.type(3, 2, 3));
	}
	@Test
	public void testEquilateral(){
		assertEquals(triangle.getEquilateral(),triangle.type(3, 3, 3));
	}

	@Test
	public void testNottriangel1(){
		assertEquals(triangle.getError(),triangle.type(1, 1, 2));}
}

实现的主路径覆盖:

原文地址:https://www.cnblogs.com/hersenxiao/p/5335193.html