This week's homework is the "basic software Testing" textbook ExerciseSection2.3 after-school exercises.
The following method Printprimes () to complete the corresponding problem. The code is as follows:
/******************************************************* * Finds and prints n prime integers * Jeff Offutt, Sp Ring 2003 ******************************************************/ Public Static voidPrintprimes (intN) {intCurprime;//Value currently considered for primeness intNumprimes;//Number of primes found so far.Boolean isprime;//Is curprime prime? int[] primes =New int[Maxprimes];//The list of prime numbers. //Initialize 2 into the list of primes.primes [0] =2; Numprimes=1; Curprime=2; while(Numprimes <N) {curprime++;//next number to consider ...IsPrime =true; for(inti =0; I <= numprimes-1; i++) { //For each previous prime. if(curprime%primes[i]==0) { //Found a divisor, curprime is not prime.IsPrime =false; Break;//Out of loop through primes. } } if(isprime) {//Save It!Primes[numprimes] =Curprime; Numprimes++; } } //End while//Print all the primes out. for(inti =0; I <= numprimes-1; i++) {System. out. println ("Prime:"+Primes[i]); } } //End Printprimes
(a) Draw a control flow graph for the Printprimes () method.
(b) Consider test case t1= (n=3) and t2= (n=5). Even though these test cases travel the same path in the Printprimes () method, they do not necessarily find the same error. Design a simple error that makes T2 easier to spot than T1 .
(c) for Printprimes (), find a test case that allows the corresponding test path access connection while statement to start to the edge of the for statement, instead of passing through the while loop body.
(d) The plot for Printprimes () lists the test requirements for each node overlay, Edge overlay, and master path overlay.
First, solve (a). The control flow graph is made by ProcessOn as follows:
(b) for "Array Out of Bounds" errors, T2 is easier to spot than T1.
(c) Test case: n = 0 or n = 1
(d) Dot overlay: {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
Edge overlay: {(2,3), (2,12), (3,4), (4,5), (5,6), (6,7), (6,8), (7,9), (8,5), (9,10), (9,11), (10,11), (in 11,2), (12,13), (13,14) , (13,15), (14,13)}
Main path overrides: {(1,2,3,4,5,6,7,9,10,11),
(1,2,3,4,5,6,7,9,11),
(1,2,3,4,5,6,8),
(1,2,3,4,5,9,10,11),
(1,2,3,4,5,9,11),
(1,2,12,13,14),
(1,2,12,13,15),
(2,3,4,5,6,7,9,10,11,2),
(2,3,4,5,6,7,9,11,2),
(2,3,4,5,9,10,11,2),
(2,3,4,5,9,11.2),
(3,4,5,6,7,9,10,11,2,12,13,14),
(3,4,5,6,7,9,11,2,12,13,14),
(3,4,5,6,7,9,10,11,2,12,13,15),
(3,4,5,6,7,9,11,2,12,13,15),
(3,4,5,9,10,11,2,12,13,14),
(3,4,5,9,11,2,12,13,14),
(3,4,5,9,10,11,2,12,13,15),
(3,4,5,9,11,2,12,13,15),
(5,6,8,5),
(6,8,5,9,10,11,2,12,13,14),
(6,8,5,9,10,11,2,12,13,15),
(6,8,5,9,11,2,12,13,14),
(6,8,5,9,11,2,12,13,15),
(13,14,13),
(14,13,15)}
Now, analyze the specific code. The code selects the code that last tested the triangle experiment.
In this example, the test case is:
(1.0, 1.0, 4.0), (10.0, 10.0, 10.0), (5.0, 5.0, 6.0), (3.0, 4.0, 5.0)
Code coverage is 100%.
Specific code uploaded by GitHub, Link: https://github.com/CindyZJT/lab1
Software Test HW4