Software Testing HW03

Question a(control flow graph):

 

 

Question b:  令MAXPRIMES=4,这样t2会测试出越界错误,t1不会。

Question c:  n=1;

Question d:

  1. node coverage:

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

  1. edge coverage

{1,2},{2,3},{2,11},{3,4},{4,5},{5,6},{5,9},{6,7},{6,8},{7,9},{8,5},{9,10},{9,2},{10,2},{11,12},{12,13},{12,14},{13,14}。

  1. prime path coverage:

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

 

实现主路径覆盖的例子:

Triangle.java

package triangletest;

public class Triangle {
 
    private int a=0; 
    private int b=0; 
    private int c=0; 
    private String s;
    public Triangle()
    {
        this.a=0;
        this.b=0;
        this.c=0;
    }
    
    public Triangle(int x, int y, int z )
    {
        this.a=x;
        this.b=y;
        this.c=z;
    }
    
    public void calculate()
    {
        if ((a+b>c)&(a+c>b)&(b+c>a)) {
        if ((a==b)&(b==c)) {s="equilateral";}
        else if ((a==b)|(b==c)|(a==c)) {s="isosceles";}
        else {s="scalene";}  }
        
        else {
                 s="not a triangle";
             }

    }
    
    public String getresult()
    {
       return s;    
    }
}
View Code

TriangleTest.java

package test;

import triangletest.*;
import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;



public class TriangleTest {
    
    public Triangle t;

    @Before
    public void setUp() throws Exception {
        System.out.println("start!");
        t=new Triangle();
    }

    @After
    public void tearDown() throws Exception {
        System.out.println("end!");
    }


    @Test
    public void testCalculate() {
        t = new Triangle(1,1,1);
        t.calculate();
        assertEquals("equilateral",t.getresult());
        
        t = new Triangle(1,2,2);
        t.calculate();
        assertEquals("isosceles",t.getresult());
        
        t = new Triangle(2,1,2);
        t.calculate();
        assertEquals("isosceles",t.getresult());
        
        t = new Triangle(2,2,1);
        t.calculate();
        assertEquals("isosceles",t.getresult());
        
        t = new Triangle(3,2,1);
        t.calculate();
        assertEquals("not a triangle",t.getresult());
        
        t = new Triangle(2,3,1);
        t.calculate();
        assertEquals("not a triangle",t.getresult());
        
        t = new Triangle(1,2,3);
        t.calculate();
        assertEquals("not a triangle",t.getresult());
        
        
        t = new Triangle(3,4,5);
        t.calculate();
        assertEquals("scalene",t.getresult());
    }



}
View Code

 运行结果截图:

 

posted @ 2017-03-13 19:13  Dongpaopao  阅读(132)  评论(0编辑  收藏  举报