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 08:58:38
    Temat: Re: Pytanie do fanow Test Driven Design i XP
    Od: Roman W <b...@g...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Wednesday, December 21, 2011 11:13:42 PM UTC, Maciej Sobczak wrote:
    > On Dec 21, 5:18 pm, Roman W <b...@g...pl> wrote:
    >
    > > > Oprócz złożoności liniowej i pogłosu w filharmonii w Koluszkach,
    > > > takich przykładów jest znacznie więcej. Np. mamy napisać generator
    > > > liczb losowych o zadanym rozkładzie - jak to sprawdzić przez TDD?
    > >
    > > To akurat robilem. Losowalem np. 10000 probem i sprawdzalem czy histogram
    sprawdza sie w ramach zadanej tolerancji z zadana dystrybucja,
    >
    > Jasne. Powiedzmy, że chodzi o liczby od 0 do 9 i rozkład jednostajny.
    >
    > Oto mój generator:
    >
    > int getNextValue()
    > {
    > static int x = 0;
    > if (x == 10) x = 0;
    > return x++;
    > }
    >
    > Powyższa funkcja przy odpowiednio wielu wywołaniach daje całkiem dobry
    > "histogram".
    > Można tak zrobić dowolny zadany "rozkład" i go "przetestować" tak jak
    > opisałeś.

    I jezeli moj generator ma sluzyc *wylacznie* do obliczania wartosci oczekiwanych
    E[f(X)], gdzie X ma miec rozklad jednostajny w zbiorze {0,1,2,...,9}, to taki test w
    zupelnosci wystarcza, bo korelacje pomiedzy poszczegolnymi losowaniami mnie nie
    obchodza. Ba, do calkowania Monte Carlo takie generatory moga byc lepsze od
    standardowych (roznica pomiedzy liczbami pseudo- i quasilosowymi).

    Jezeli mnie obchodza, to taki test jest dalece niewystarczajacy.

    W praktyce to ja nie pisalem nigdy swoich wlasnych generatorow, tylko bralem Mersenne
    Twister (np. z boost) i przeksztalcalem dystrybucje z jednostajnej w np. Gaussowska
    albo Levy'ego. I wtedy histogramem + momentami sprawdzalem to co moglem sprawdzic, a
    co do reszty to polegalem na poprawnosci implementacji bibliotecznej.

    >
    > 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?

    Dobrze wiem, jak trudno jest testowac generatory liczb losowych.

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

    Nie, to jest bez sensu. Jezeli nie moge sprawdzic 100% wymagan, to nie znaczy, ze
    powinienem sprawdzac 0%.

    RW

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: