單迴路測試
這些是迴圈,其迴圈體不包含其他迴圈(在巢狀的情況下最內層迴圈)。
為了獲得迴圈覆蓋,測試人員應該進行下面給出的測試。
測試 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
}
}