Szukaj…


Wprowadzenie

Pętle uważane za jedną z ważnych struktur kontrolnych w dowolnym języku programowania. Istnieją różne sposoby uzyskania zasięgu pętli.

Metody te różnią się w zależności od rodzaju pętli.

Pojedyncze pętle

Pętle zagnieżdżone

Połączone pętle

Test pojedynczej pętli

Są to pętle, w których ich ciało nie zawiera innych pętli (najbardziej wewnętrzna pętla w przypadku zagnieżdżenia).

Aby uzyskać zasięg pętli, testerzy powinni wykonać testy podane poniżej.

Test 1: Zaprojektuj test, w którym ciało pętli nie powinno się wcale wykonywać (tzn. Iteracje zerowe)

Test 2: Zaprojektuj test, w którym zmienna sterująca pętlą będzie ujemna (ujemna liczba iteracji)

Test 3: Zaprojektuj test, w którym pętla iteruje tylko raz

Test 4: Zaprojektuj test, w którym pętla iteruje dwukrotnie

Test 5: Zaprojektuj test, w którym pętla iteruje określoną liczbę razy, powiedz m, gdzie m <maksymalna możliwa liczba iteracji

Test 6: Zaprojektuj test, w którym pętla iteruje o jeden mniej niż maksymalna liczba iteracji

Test 7: Zaprojektuj test, w którym pętla iteruje maksymalną liczbę iteracji

Test 8: Zaprojektuj test, w którym pętla iteruje o jeden więcej niż maksymalna liczba iteracji

Rozważ poniższy przykład kodu, który stosuje wszystkie określone warunki.

klasa publiczna SimpleLoopTest {

prywatne int [] liczby = {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 klasy publicznej rozszerza 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
}

}

Test zagnieżdżonych pętli

Zagnieżdżona pętla to pętla wewnątrz pętli.

Pętla zewnętrzna zmienia się dopiero po całkowitym zakończeniu / przerwaniu pętli wewnętrznej.

W takim przypadku przypadki testowe powinny być zaprojektowane w taki sposób, aby

Zacznij od najbardziej wewnętrznej pętli. Ustaw wszystkie zewnętrzne pętle na ich minimalne wartości. Wykonaj proste testowanie pętli w najbardziej wewnętrznej pętli (Test3 / Test4 / Test5 / Test6 / Test7). Kontynuuj, aż wszystkie przetestowane pętle

Test połączonych pętli

Dwie pętle są połączone, jeśli można dotrzeć do jednej po wyjściu z drugiej na tej samej ścieżce od wejścia do wyjścia. Czasami te dwie pętle są od siebie niezależne. W takich przypadkach możemy zastosować techniki projektowania określone w ramach testów pojedynczej pętli.

Ale jeśli wartości iteracji w jednej pętli są bezpośrednio lub pośrednio powiązane z wartościami iteracji innej pętli i mogą wystąpić na tej samej ścieżce, wówczas możemy uznać je za pętle zagnieżdżone.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow