-
Data: 2011-12-22 13:47:00
Temat: Re: Pytanie do fanow Test Driven Design i XP
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 12/22/2011 01:45 PM, Paweł Kierski wrote:
> W dniu 2011-12-22 12:28, Edek pisze:
> [...]
>>>> Test oczywiście można zrobić, ale mam pytanie:
>>>> > skąd niby ma być wiadomo, że błąd występuje raz na 1e4 i
>>>> > przy jakich założeniach? Dowód formalny jest adekwatny,
>>>> > a test nic nie wnosi.
>>> Jeśli test nie przechodzi, to sygnał, że trzeba się czemuś przyjrzeć.
>>> I to prawdopodobnie kodowi, który się zmieniał (więc raczej nie kodowi
>>> testu). Nie mówię że test zastępuje dowód. Test może dowodowi *pomóc*.
>>
>> I o to właśnie chodzi. Pomoc owszem jest zawsze wskazana, o ile
>> pochodzi ze źródła, które coś wnosi. Test nic nie wnosi, bo zmieniając
>> taki algorytm - jakkolwiek - dowód możesz wywalić do kosza, czyli
>> zostaje się z testem, który nie zapewnia poprawności, a więc daje -
>> tu jest ta *istotna* część - złudne poczucie bezpieczeństwa i
>> pewności, że wszystko jest cacy, kiedy najczęściej nie jest.
> [...]
>
> Kwestia świadomości, czym jest test. Po zmianie algorytmu wiem, że
> formalny dowód się już nie stosuje, ale zostaję z testem, który sprawdza
> mi przynajmniej jakiś drobny fragment przestrzeni danych. Jeśli muszę
> mieć dowód formalny, to go i tak go będę robił. A dzięki staremu
> testowi już wiem, że nie zrobiłem grubego błędu w implementacji nowego
> algorytmu (oraz że nowy algorytm w ogóle ma szansę być zastosowany).
>
Przesadziłem trochę z tym, że test to coś głęboko w Hudsonie, można
zmienić kod i nic nie wyskoczy na dashboard. Nie wiem, czy wszyscy tak
używają testów, ale ja lubię testy właśnie za szybki feedback.
Tu nie mam nic przeciwko testom jako takim gdzieś jako pomocnicze
narzędzie, bo workflow jest inny: zanim zmienię, przeczytam dowód
i zrozumiem jak to działa, a potem test się przyda podczas robienia
zmian, dokładnie tak jak mówisz.
W algorytmach wątkowych - nie mówię o kilku lockach w dużym
systemie, tylko np. kolejki o danych właściwościach, 30 linii
kodu i publikacja - testów się używa czasami, żeby znaleźć
przykład, kiedy algorytm nie działa. Ale nie znam przykładu,
gdzie to zastępuje dowód. Spotkałem się tylko z "hmm, no
tak, ten dowód, może by tu to zmienić w algorytmie - kurde,
faktycznie testy nie przechodzą po zmianie" i nie są to unit
testy, tylko modele. Modele nie są zapisane kodem źródłowym,
więc nie da się trywialnie zautomatyzować testów zmian kodu.
Bardziej ogólnie, przypuszczam, że są dziedziny, gdzie testy
dają "prawie pewność" w sensie matematycznym, co już może
wystarczyć.
Edek
Następne wpisy z tego wątku
- 22.12.11 14:10 Andrzej Jarzabek
- 22.12.11 14:20 A.L.
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-10 Białystok => iOS Developer (Swift) <=
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=
- 2025-02-10 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-02-10 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-10 Lublin => Programista Delphi <=
- 2025-02-10 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-10 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-10 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-10 Kraków => iOS Developer (Swift experience) <=