ST-Graph Coverage 2.3 第七题

     /******************************************************* 
 2      * Finds and prints n prime integers 
 3      * Jeff Offutt, Spring 2003 
 4      ******************************************************/ 
 5     public static void printPrimes (int n) 
 6     { 
 7         int curPrime; // Value currently considered for primeness 
 8         int numPrimes; // Number of primes found so far. 
 9         boolean isPrime; // Is curPrime prime? 
10         int [] primes = new int [MAXPRIMES]; // The list of prime numbers. 
11         
12         // Initialize 2 into the list of primes. 
13         primes [0] = 2; 
14         numPrimes = 1; 
15         curPrime = 2; 
16         while (numPrimes < n) 
17         { 
18             curPrime++; // next number to consider ... 
19             isPrime = true; 
20             for (int i = 0; i <= numPrimes-1; i++) 
21             { // for each previous prime. 
22                 if (curPrime%primes[i]==0) 
23                 { // Found a divisor, curPrime is not prime. 
24                     isPrime = false; 
25                     break; // out of loop through primes. 
26                 } 
27             } 
28             if (isPrime) 
29             { // save it! 
30                 primes[numPrimes] = curPrime; 
31                 numPrimes++; 
32             } 
33         } // End while 
34         
35         // Print all the primes out. 
36         for (int i = 0; i <= numPrimes-1; i++) 
37         { 
38             System.out.println ("Prime: " + primes[i]); 
39         } 
40     } // end printPrimes

a).画出控制流图

(b) 设计一个测试用例t2比t1更有可能找到的错误

  只要将数组primes的MAXPRIMES 设置为4, 那么t2 就会比t1 更能找到错误

(c) 不会进入while的内部语句块直接到for循环的测试用例:

  测试用例:t3= (n = 1).

(d) TR for 

  Node coverage: TR= {Z, A, B, C, E, F, G, H, I, J, K, L}

  Test path: [Z, A, B, C, D, B, C, H, E, F, G, A, I, J, K, J, ]

  

  Edge coverage: TR= {(Z,A), (A,B), (B,C), (C,D), (C,H), (D,B), (B,E), (H,E), (E,F), (E,G), (F,G), (G,A), (A,I), (I,J), (J,K), (K,J), (J,L)}

  Test path: [Z,A,B,C,D,B,C,H,E,G,A,B,C,D,B,E,F,G,A,I,J,K,J,L]

  

  prime path coverage: TR={[Z,A,B,C,D]

  [Z,A,B,C,H,E,G]

  [Z,A,B,C,H,E,F,G]

  [Z,A,B,E,G]

  [Z,A,B,E,F,G]

  [Z,A,I,J,K]

  [Z,A,I,J,L]

  [J,K,J]

  [K,J,K]

  [K,J,L]

  [B,C,D,B]

  [D,B,C,D]

  [A,B,E,G,A]

  [A,B,C,H,E,G,A]

  [A,B,C,H,E,F,G,A]

  [A,B,E,F,G,A]

  [G,A,B,E,G]

  [G,A,B,C,H,E,G]

  [G,A,B,C,H,E,F,G]

  [G,A,B,E,F,G]

  [D,B,E,G]

  [D,B,E,F,G]

  [D,B,C,H,E,G]

  [D,B,C,H,E,F,G]

  [G,A,I,J,L]

  [G,A,I,J,K]}

 

2.基于Junit及Eclemma(jacoco)实现一个主路径覆盖的测试。 

 采用软件测试Lab1(判断三角形的函数)的测试用例,如下测试用例可以满足主路径覆盖。

  {3,4,7,"Not Triangle"};

  {5,5,5,"equilateral"};

  {7,4,4,"Not Triangle"};

  {2,3,4,"isosceles"}.

  这五个测试用例满足了主路径覆盖

  

 

posted on 2016-03-30 20:23  程昌锋  阅读(374)  评论(0编辑  收藏  举报

导航