软件工程 Homework3

 1 /******************************************************* 
 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 (isDivisible(primes[i], curPrime)) 
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=(n=5)能发现但t1=(n=3)不能发现的错误

如果这个函数的第22行 if (isDivisible(primes[i], curPrime))误写成了if (isDivisible(primes[0], curPrime)),即对以后的每个数是否是素数的检测,只检查它是否能被2整除。当n = 3时,找出的素数为2,3,5 没有出现错误;但是当n = 5时,找出的素数为2,3,5,7,9 出现错误

 

c. 寻找一组不经过while循环的测试用例

n = 1

 

d. 找出点覆盖、边覆盖和主路径覆盖的所有TR(测试需求)

 

  1. 节点覆盖:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14]

 

边覆盖:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14] 

 

[1,2,3,5,10,2,4,12,14]

 

主路径:[1,2,3,5,6,8,10,11]

 

[1,2,3,5,10,11]

 

[1,2,3,5,6,9]

 

[5,6,9,5]

 

[2,3,5,6,8,10,2]

 

[2,3,5,6,8,10,11,2]

 

[2,3,5,10,2]

 

[2,3,5,10,11,2]

 

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

 

[1,2,4,12,14]

 

[3,5,6,8,10,11,2,4,12,13,14]

 

[3,5,6,8,10,2,4,12,13,14]

 

[3,5,10,11,2,4,12,13,14]

 

[3,5,10,2,4,12,13,14]

 

[3,5,6,8,10,11,2,4,12,14]

 

[3,5,6,8,10,2,4,12,14]

 

[3,5,10,11,2,4,12,14]

 

[3,5,10,2,4,12,14]

 

[9,5,6,8,10,11,2,4,12,13,14]

 

[9,5,6,8,10,2,4,12,13,14]

 

[9,5,6,8,10,11,2,4,12,14]

 

[9,5,6,8,10,2,4,12,14]

 

 

 

主路径覆盖:

 

[0,1,2,3,5,6,8,10,11,2,4,12,13,14]

 

[0,1,2,3,5,6,8,10,11,2,4,12,14]

 

[0,1,2,3,5,6,8,10,2,4,12,13,14]

 

[0,1,2,3,5,6,8,10,2,4,12,14]

 

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

 

[0,1,2,3,5,6,9,5,6,8,10,2,4,12,13,14]

 

[0,1,2,3,5,6,9,5,6,8,10,11,2,4,12,14]

 

[0,1,2,3,5,6,9,5,6,8,10,2,4,12,14]

 

[0,1,2,3,5,10,11,2,4,12,13,14]

 

[0,1,2,3,5,10,2,4,12,13,14]

 

[0,1,2,3,5,10,11,2,4,12,14]

 

[0,1,2,3,5,10,2,4,12,14]

 

posted on 2016-03-30 23:01  Zany丶  阅读(161)  评论(0编辑  收藏  举报

导航