-
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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=