SofewareTesting hw3

作业要求:

a.为printPrimes()画控制流图;

b.考虑测试用例t1=(n=3)和t2=(n=5)。即使这些测试用例游历printPrimes()方法中相同的主路径,它们不一定找出相同的错误,设计一个简单的错误,使得t2比t1更容易发现;c.针对printPrimes(),找到一个测试用例,使得响应的测试路径访问连接while语句开始到for语句的边,而不用通过while循环体;

d. 针对printPrimes()的图例列举每个节点覆盖,边覆盖和主路径覆盖的测试需求;

-基于junit和Eclemma实现一个主路径覆盖测试;

  

B.N=5 测试范围要比N=2大,所以程序对N的改动N=5的容错率要大一些。

C.令N=1即可

D.

节点覆盖

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

边覆盖:

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

主路径覆盖:

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

Junit代码:

  

package com.prime;

import static org.junit.Assert.*;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

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

public class PrimeTest {
    Prime prime;
    ByteArrayOutputStream baos;
    
    @Before
    public void start() {
       system.out.println("program begins");
    }

    @Test
    public void test() {
        String outcome = new String("Prime: 2
Prime: 3
Prime: 5
Prime: 7
Prime: 11
");
        prime.printPrimes(5);
        assertEquals(outcome, baos.toString()); 
    }

}

  

原文地址:https://www.cnblogs.com/lishengjun/p/6548433.html