單迴路測試

這些是迴圈,其迴圈體不包含其他迴圈(在巢狀的情況下最內層迴圈)。

為了獲得迴圈覆蓋,測試人員應該進行下面給出的測試。

測試 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
}

}