单回路测试

这些是循环,其循环体不包含其他循环(在嵌套的情况下最内层循环)。

为了获得循环覆盖,测试人员应该进行下面给出的测试。

测试 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
}

}