单回路测试
这些是循环,其循环体不包含其他循环(在嵌套的情况下最内层循环)。
为了获得循环覆盖,测试人员应该进行下面给出的测试。
测试 1:设计一个测试,其中循环体不应该执行(即零迭代)
测试 2:设计一个测试,其中循环控制变量为负(负迭代次数)
测试 3:设计一个循环只迭代一次的测试
测试 4:设计一个循环迭代两次的测试
测试 5:设计一个测试,其中循环迭代一定次数,比如 m,其中 m <可能的最大迭代次数
测试 6:设计一个测试,其中循环迭代少于最大迭代次数
测试 7:设计一个测试,其中循环迭代最大迭代次数
测试 8:设计一个测试,其中循环迭代的次数超过最大迭代次数
请考虑以下代码示例,该示例应用指定的所有条件。
public class SimpleLoopTest {
private int [] numbers = {5,-77,8,-11,4,1,-20,6,2,10};
/** Compute total of positive numbers in the array
* @param numItems number of items to total.
*/
public int findSum(int numItems)
{
int total = 0;
if (numItems <= 10)
{
for (int count=0; count < numItems; count = count + 1)
{
if (numbers[count] > 0)
{
total = total + numbers[count];
}
}
}
return total;
}
}
公共类 TestPass 扩展 TestCase {
public void testname() throws Exception {
SimpleLoopTest s = new SimpleLoopTest();
assertEquals(0, s.findSum(0)); //Test 1
assertEquals(0, s.findSum(-1)); //Test 2
assertEquals(5, s.findSum(1)); //Test 3
assertEquals(5, s.findSum(2)); //Test 4
assertEquals(17, s.findSum(5)); //Test 5
assertEquals(26, s.findSum(9)); //Test 6
assertEquals(36, s.findSum(10)); //Test 7
assertEquals(0, s.findSum(11)); //Test 8
}
}