For the following pseudo-code determine number of tests required for 100% statement coverage IF Gender = Boy If Age > 3 AND Age < 5 Shoe Size = 1 ELSE IF Age >=5 AND Age < 7 Shoe Size = 2 ENDIF ELSE IF Age > 3 AND Age < 5 Shoe Size = 0 ELSE IF Age >=5 AND Age < 7 Shoe Size = 1 ENDIF ENDIF
Correct Answer: B
To achieve 100% statement coverage, we need to design test cases that ensure every statement in the given pseudo-code is executed at least once. Analyzing the pseudo-code, we notice that there are conditions based on two variables: Gender and Age. To cover all statements, we need to consider the paths that lead to each assignment of the Shoe Size variable.
* Gender = Boy, Age <= 3 (Shoe Size assignment is not reached, but the condition is evaluated)
* Gender = Boy, Age > 3 AND Age < 5 (Shoe Size = 1)
* Gender = Boy, Age >= 5 AND Age < 7 (Shoe Size = 2)
* Gender != Boy, Age <= 3 (Again, Shoe Size assignment is not reached, but the condition is evaluated)
* Gender != Boy, Age > 3 AND Age < 5 (Shoe Size = 0)
* Gender != Boy, Age >= 5 AND Age < 7 (Shoe Size = 1)
However, upon closer inspection, we see that tests 1 and 4 do not contribute to statement coverage as they do not lead to a Shoe Size assignment. Therefore, we only need 4 test cases to achieve 100% statement coverage, making option B the correct answer.