unit-testing
Enhetstestning av Loops (Java)
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.