unit-testing
Unit-Test von Loops (Java)
Suche…
Einführung
Schleifen gelten als eine der wichtigen Kontrollstrukturen in jeder Programmiersprache. Es gibt verschiedene Möglichkeiten, wie wir eine Schleifenabdeckung erreichen können.
Diese Methoden unterscheiden sich je nach Art der Schleife.
Einzelne Schleifen
Verschachtelte Loops
Verkettete Loops
Einzelschleifentest
Dies sind Schleifen, bei denen ihr Schleifenkörper keine anderen Schleifen enthält (die innerste Schleife, falls geschachtelt).
Um eine Schleifenabdeckung zu erzielen, sollten die Tester die unten angegebenen Tests durchführen.
Test 1: Entwerfen Sie einen Test, bei dem der Schleifenkörper überhaupt nicht ausgeführt werden soll (dh keine Iterationen).
Test 2: Entwerfen Sie einen Test, bei dem die Schleifensteuerungsvariable negativ ist (negative Anzahl von Iterationen).
Test 3: Entwerfen Sie einen Test, bei dem die Schleife nur einmal wiederholt wird
Test 4: Entwerfen Sie einen Test, bei dem die Schleife zweimal wiederholt wird
Test 5: Entwerfen Sie einen Test, bei dem die Schleife eine bestimmte Anzahl von Malen durchläuft, beispielsweise m mit m <maximal mögliche Anzahl von Iterationen
Test 6: Entwerfen Sie einen Test, bei dem die Schleife eine weniger als die maximale Anzahl von Iterationen durchläuft
Test 7: Entwerfen Sie einen Test, bei dem die maximale Anzahl der Iterationen durchlaufen wird
Test 8: Entwerfen Sie einen Test, bei dem eine Schleife mehr als die maximale Anzahl von Iterationen durchläuft
Betrachten Sie das folgende Codebeispiel, das alle angegebenen Bedingungen anwendet.
öffentliche Klasse SimpleLoopTest {
private int [] zahlen = {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;
}
}
öffentliche Klasse TestPass erweitert 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 für verschachtelte Schleifen
Eine verschachtelte Schleife ist eine Schleife innerhalb einer Schleife.
Die äußere Schleife ändert sich erst, nachdem die innere Schleife vollständig beendet / unterbrochen wurde.
In diesem Fall sollten Testfälle so gestaltet werden, dass
Beginnen Sie bei der innersten Schleife. Stellen Sie alle äußeren Schleifen auf ihre Mindestwerte ein. Führen Sie einen einfachen Schleifentest für die innerste Schleife durch (Test3 / Test4 / Test5 / Test6 / Test7). Fahren Sie fort, bis alle Loops getestet wurden
Verkettete Schleifen Test
Zwei Schleifen werden verkettet, wenn es möglich ist, eine nach dem Verlassen der anderen auf demselben Weg vom Eingang zum Ausgang zu erreichen. Manchmal sind diese beiden Schleifen unabhängig voneinander. In diesen Fällen können wir die Entwurfstechniken anwenden, die im Rahmen der Einzelschleifenprüfung angegeben wurden.
Wenn die Iterationswerte in einer Schleife direkt oder indirekt mit den Iterationswerten einer anderen Schleife zusammenhängen und auf demselben Pfad vorkommen können, können wir sie als verschachtelte Schleifen betrachten.