Sök…


Introduktion

Loops betraktas som en av de viktiga kontrollstrukturerna i alla programmeringsspråk. Det finns olika sätt på vilka vi kan uppnå slingtäckning.

Dessa metoder skiljer sig beroende på typ av slinga.

Enda öglor

Kapslade slingor

Samlade slingor

Test med en slinga

Dessa är öglor där deras slingkropp inte innehåller några andra slingor (den innersta slingan i händelse av kapslade).

För att ha slingtäckning bör testare utöva testen nedan.

Test 1: Utforma ett test där slingkroppen inte ska utföra alls (dvs. noll-iterationer)

Test 2: Utforma ett test där variabeln för loopkontroll är negativ (negativt antal iterationer)

Test 3: Utforma ett test där slingan upprepas bara en gång

Test 4: Utforma ett test där slingan upprepas två gånger

Test 5: Utforma ett test där slinga itererar ett visst antal gånger, säg m där m <maximalt antal iterationer möjligt

Test 6: Utforma ett test där slingan itererar en mindre än det maximala antalet iterationer

Test 7: Utforma ett test där loopen itererar det maximala antalet iterationer

Test 8: Utforma ett test där slingan itererar en mer än det maximala antalet iterationer

Tänk på nedanstående kodexempel som gäller alla specificerade villkor.

offentlig klass SimpleLoopTest {

privat int [] antal = {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;
}

}

Testklass för allmän klass utvidgar 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
}

}

Nested Loops Test

En kapslad slinga är en slinga i en slinga.

Den yttre slingan ändras först efter att den inre slingan är helt klar / avbruten.

I detta fall bör testfall utformas på ett sådant sätt att

Börja vid den innersta slingan. Ställ in alla yttre slingor på deras minimivärden. Utför enkel slingtestning på den innersta slingan (Test3 / Test4 / Test5 / Test6 / Test7). Fortsätt tills alla testade öglor

Sammanhängande slingor Test

Två slingor slås samman om det är möjligt att nå en efter att ha lämnat den andra på samma väg från ingången till utgången. Ibland är dessa två slingor oberoende av varandra. I dessa fall kan vi tillämpa de konstruktionstekniker som anges som en del av testet med en slinga.

Men om iterationsvärdena i en slinga är direkt eller indirekt relaterade till iterationsvärdena i en annan slinga och de kan uppstå på samma väg, kan vi betrakta dem som kapslade slingor.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow