Zoeken…


Invoering

Lussen beschouwd als een van de belangrijke besturingsstructuren in elke programmeertaal. Er zijn verschillende manieren waarop we lusdekking kunnen bereiken.

Deze methoden verschillen op basis van het type lus.

Enkele lussen

Geneste lussen

Aaneengeschakelde lussen

Enkele lus test

Dit zijn lussen waarin hun luslichaam geen andere lussen bevat (de binnenste lus in het geval van genest).

Om lusdekking te krijgen, moeten testers de onderstaande testen uitvoeren.

Test 1: Ontwerp een test waarbij de body van de lus helemaal niet moet worden uitgevoerd (dwz nul iteraties)

Test 2: ontwerp een test waarbij lus-regelvariabele negatief is (negatief aantal iteraties)

Test 3: Ontwerp een test waarin de lus slechts één keer wordt herhaald

Test 4: Ontwerp een test waarin de lus tweemaal herhaalt

Test 5: Ontwerp een test waarin de lus een bepaald aantal keren itereert, bijvoorbeeld m waarbij m <maximaal aantal iteraties mogelijk

Test 6: Ontwerp een test waarbij de lus één keer kleiner is dan het maximale aantal iteraties

Test 7: Ontwerp een test waarin de lus het maximale aantal iteraties herhaalt

Test 8: Ontwerp een test waarbij de lus één meer herhaalt dan het maximale aantal iteraties

Beschouw het onderstaande codevoorbeeld dat alle gespecificeerde voorwaarden toepast.

openbare klasse SimpleLoopTest {

private int [] nummers = {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;
}

}

public class TestPass breidt TestCase uit {

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

Een geneste lus is een lus binnen een lus.

De buitenste lus verandert pas nadat de binnenste lus volledig is voltooid / onderbroken.

In dit geval moeten testgevallen zodanig worden ontworpen dat

Begin bij de binnenste lus. Stel alle buitenste lussen in op hun minimumwaarden. Voer eenvoudige lustests uit op de binnenste lus (Test3 / Test4 / Test5 / Test6 / Test7). Ga door tot alle geteste lussen

Samengevoegde lustentest

Twee lussen worden aaneengeschakeld als het mogelijk is om de ene te bereiken na het verlaten van de andere op hetzelfde pad van ingang naar uitgang. Soms zijn deze twee lussen onafhankelijk van elkaar. In die gevallen kunnen we de ontwerptechnieken toepassen die zijn gespecificeerd als onderdeel van testen met één lus.

Maar als de iteratiewaarden in een lus direct of indirect gerelateerd zijn aan de iteratiewaarden van een andere lus en ze op hetzelfde pad kunnen voorkomen, kunnen we ze beschouwen als geneste lussen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow