unit-testing
Testy jednostkowe pętli (Java)
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.