eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPytanie do fanow Test Driven Design i XPRe: Pytanie do fanow Test Driven Design i XP
  • Data: 2011-12-22 00:31:07
    Temat: Re: Pytanie do fanow Test Driven Design i XP
    Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 21/12/2011 23:13, Maciej Sobczak wrote:
    >
    > Jakoś jednak sądzę, że ta funkcja jest do bani. Ale test przeszła! To
    > może test jest do bani? Pewnie jest - ale jak sprawdzić ten test?

    Daje rozkład jednostajny. Nie daje liczb losowych, ale funkcji, która
    daje liczby losowe nie ma.

    > Łatwiej napisać generator liczb losowych, niż jego test.
    > To znaczy, że przy takim zadaniu w ogóle nie pisałbym unit-testu.

    Testy to nie tylko unit testy.

    Natomiast tak w ogóle w wielu przypadkach dla funkcji pseudo-losowej
    łatwo napisać unit test. Powiedzmy, że funkcja korzysta z algorytmu X,
    który wziąłeś z literatury, lub też w inny sposób stwierdziłeś, że jest
    wystarczająco "losowy". Bierzesz referencyjną implementację algorytmu,
    napisaną przez kogoś innego bądź sam piszesz, i rejestrujesz pierwszą
    zwróconą liczbę dla jakiejś puli przypadkowo wybranych seed-ów. Możesz
    też zarejestrować setną zwróconą liczbę albo tysięczną, albo
    stutysięczną (w zależności jak długo algorytm działa). Zapisujesz te
    dane w teście et voila, masz test sprawdzający, czy funkcja dalej
    korzysta z algorytmu X. Jeśli korzysta, to znaczy, że jest wystarczająco
    "losowa" według przyjętych przez ciebie kryteriów. Jeśli nie, to badamy
    o co kaman i albo naprawiamy funkcję, albo zmieniamy test.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: