Testy jednostkowe metod rekurencyjnych

Artykuł przeznaczony jest dla osób związanych z testowaniem, programowaniem, jakością oraz wytwarzaniem oprogramowania, wymaga jednak znajomości podstaw programowania obiektowego.

Testy jednostkowe przeprowadzane są na poziomie kodu podczas procesu wytwarzania oprogramowania. Na ich temat można znaleźć wiele publikacji, książek i artykułów naukowych. Również w Internecie jest sporo wiadomości na ten temat. Nieczęsto jednak znajdziemy informacje o testowaniu metod wywoływanych rekurencyjnie. Okazuje się, że testy jednostkowe dla takich metod nie są proste i dodatkowo wymagają twórczego podejścia od autora.

1. Zjawisko rekurencji w naukach ścisłych

Definicja 1.1 [1] Rekurencjajest techniką programowania, dzięki której procedura, funkcja lub podprogram jest w stanie w swoim ciele wywołać sam siebie. Dzięki rekurencji łatwo można „wykonać” zadanie, w którym potrzebne są wyniki cząstkowe do obliczenia całości. Rekurencja składa się z podania wartości brzegowych (początkowych) i z równania wyrażającego ogólną wartość za pomocą wartości wcześniejszych wyrazów. Klasycznym przykładem w zagadnieniu rekurencji jest liczenie silni dla dowolnej liczby naturalnej n czyli (n!)

Rekurencja może być z dobrym skutkiem stosowana w najefektywniejszych algorytmach sortowania. Rekurencyjny opis obliczeń (funkcji czy metod) jest na ogół bardziej zwarty (krótszy, przejrzysty) niż opis tych samych obliczeń bez użycia rekurencji. Taki opis jest stosowany np. przy opisie fraktali, które są definiowane, jako obiekty podobne do swoich części (obiekty samopodobne). Zwartość opisu rekurencyjnego nie zawsze idzie w parze z efektywnością realizacji algorytmów. Dlatego algorytmy rekurencyjne powinny być stosowane rozsądnie. Istnieje także pewna klasa funkcji rekurencyjnych, które można przedstawić jawnym wzorem typu f(n), gdzie n є N. Nie zawsze jednak jest to możliwe. (...)

Zapraszamy do lektury artykułu autorstwa Marka Żukowicza.

 

Pełen artykuł można pobrać tutaj >>

 

Marek Żukowicz jest absolwentem matematyki na Uniwersytecie Rzeszowskim. Obecnie pracuje jako tester. Jego zainteresowania skupiają się wokół testowania, matematyki, zastosowania algorytmów ewolucyjnych oraz zastosowania matematyki w procesie testowania. Interesuje się również muzyką, grą na akordeonie oraz perkusji.

 

[AKTUALIZACJA 13.01.2017] Artykuł został zaktualizowany ponieważ jedna z naszych czytelniczek znalazła błąd popełniony przez autora podczas przepisywania wzorów z kartki.

 

 

Wakacyjne terminy szkoleń

 

19-21.07.17 - Wisła

ISTQB Poziom Podstawowy (Foundation Level)


24-27.07.17 - Kazimierz Dolny

Zawód Tester


7.08.17 - Wrocław

Testerskie umiejętności miękkie


8-10.08.17 - Jasło

ISTQB Poziom Podstawowy (Foundation Level)

 

Partnerzy

Narzędzia testerskie