- 
 1. Data: 2011-12-21 10:51:39
 Temat: Pytanie do fanow Test Driven Design i XP
 Od: Roman W <b...@g...pl>
 Na grupie padaly stwierdzenia, ze wymagania wobec programu mozna opisac w formie 
 testow.
 
 Zalozmy, ze mamy zaimplementowac funkcje (na przykladzie C++)
 
 double calculate_stuff(const std::vector<double>& data);
 
 z warunkiem "ma sie wykonywac w czasie liniowym w rozmiarze wektora data".
 
 Jak napisac test, ktory sprawdza czy ten wymog jest spelniony?
 
 RW
 
 
- 
 2. Data: 2011-12-21 11:37:22
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Paweł Kierski <n...@p...net>
 W dniu 2011-12-21 11:51, Roman W pisze: 
 > Na grupie padaly stwierdzenia, ze wymagania wobec programu mozna opisac w formie
 testow.
 >
 > Zalozmy, ze mamy zaimplementowac funkcje (na przykladzie C++)
 >
 > double calculate_stuff(const std::vector<double>& data);
 >
 > z warunkiem "ma sie wykonywac w czasie liniowym w rozmiarze wektora data".
 >
 > Jak napisac test, ktory sprawdza czy ten wymog jest spelniony?
 
 Mierzysz czas dla dwóch-trzech wielkości wektora i sprawdzasz
 (asercją), czy czasy spełniają warunek liniowości. Np. test dla 10
 i 1000 elementów - jeśli test dla 1000 wykonuje się ok 100 razy dłużej
 niż dla 10, to OK. Jeśli 10000 razy dłużej, to masz n^2. Do tego
 niektóre frameworki mają możliwość ograniczeń czasowych na testy -
 pomocne, gdy implementacja jest jednak n^2 i miałaby się zakończyć
 za kwadrans, zamiast za kilkanaście sekund. Timeout na minutę oznacza,
 że coś na pewno jest źle.
 
 --
 Paweł Kierski
 n...@p...net
 
- 
 3. Data: 2011-12-21 12:05:12
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Roman W <b...@g...pl>
 On Wednesday, December 21, 2011 11:37:22 AM UTC, Paweł Kierski wrote: 
 > Mierzysz czas dla dwóch-trzech wielkości wektora i sprawdzasz
 > (asercją), czy czasy spełniają warunek liniowości. Np. test dla 10
 > i 1000 elementów - jeśli test dla 1000 wykonuje się ok 100 razy dłużej
 > niż dla 10, to OK. Jeśli 10000 razy dłużej, to masz n^2. Do tego
 
 Co jezeli uzyty algorytm jest mniej-wiecej liniowy dla N <= 1000, ale kwadratowy dla
 N > 2000?
 
 RW
 
- 
 4. Data: 2011-12-21 12:14:13
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Paweł Kierski <n...@p...net>
 W dniu 2011-12-21 13:05, Roman W pisze: 
 > On Wednesday, December 21, 2011 11:37:22 AM UTC, Paweł Kierski wrote:
 >> Mierzysz czas dla dwóch-trzech wielkości wektora i sprawdzasz
 >> (asercją), czy czasy spełniają warunek liniowości. Np. test dla 10
 >> i 1000 elementów - jeśli test dla 1000 wykonuje się ok 100 razy dłużej
 >> niż dla 10, to OK. Jeśli 10000 razy dłużej, to masz n^2. Do tego
 >
 > Co jezeli uzyty algorytm jest mniej-wiecej liniowy dla N<= 1000, ale kwadratowy dla
 N> 2000?
 
 Sprawdzać dla wartości, dla jakich się spodziewasz i dla jakich
 liniowość ma dla Ciebie znaczenie.
 
 --
 Paweł Kierski
 n...@p...net
 
- 
 5. Data: 2011-12-21 13:29:18
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Roman W <b...@g...pl>
 On Wednesday, December 21, 2011 12:14:13 PM UTC, Paweł Kierski wrote: 
 > Sprawdzać dla wartości, dla jakich się spodziewasz i dla jakich
 > liniowość ma dla Ciebie znaczenie.
 
 Zalozmy, ze spodziewam sie ze w produkcji N = 10^6 i test wtedy bedzie sie wykonywal
 godzine. Czy wtedy dokumentacja wymagan w postaci testu tez jest dobrym rozwiazaniem?
 
 RW
 
- 
 6. Data: 2011-12-21 14:07:09
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Paweł Kierski <n...@p...net>
 W dniu 2011-12-21 14:29, Roman W pisze: 
 > On Wednesday, December 21, 2011 12:14:13 PM UTC, Paweł Kierski wrote:
 >> Sprawdzać dla wartości, dla jakich się spodziewasz i dla jakich
 >> liniowość ma dla Ciebie znaczenie.
 >
 > Zalozmy, ze spodziewam sie ze w produkcji N = 10^6 i test wtedy bedzie sie
 wykonywal godzine. Czy wtedy dokumentacja wymagan w postaci testu tez jest dobrym
 rozwiazaniem?
 
 Na post-commit taki test się nie nadaje, ale w nocy masz z reguły kilka
 godzin do dyspozycji. W skrajnym przypadku można tego rodzaju testy
 zapuszczać tylko wtedy, kiedy to naprawdę niezbędne - np. przed
 wdrażaniem wersji na produkcję. Pozostaje też kwestia różnic
 w wydajności maszyn produkcyjnych i testowych/buildowych (jak ustawić
 górne ograniczenie czasu wykonania testu).
 
 --
 Paweł Kierski
 n...@p...net
 
- 
 7. Data: 2011-12-21 14:11:55
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Roman W <b...@g...pl>
 On Wednesday, December 21, 2011 2:07:09 PM UTC, Paweł Kierski wrote: 
 > Na post-commit taki test się nie nadaje, ale w nocy masz z reguły kilka
 > godzin do dyspozycji. W skrajnym przypadku można tego rodzaju testy
 > zapuszczać tylko wtedy, kiedy to naprawdę niezbędne - np. przed
 > wdrażaniem wersji na produkcję. Pozostaje też kwestia różnic
 > w wydajności maszyn produkcyjnych i testowych/buildowych (jak ustawić
 > górne ograniczenie czasu wykonania testu).
 
 Do czego zmierzam: ze jezeli wymaganiem jest *formalna gwarancja* ze procedura
 implementuje algorytm wykonujacy sie w czasie liniowym, to zaden test tego adekwatnie
 nie dokumentuje. Tylko zwykla dokumentacja moze to, well, udokumentowac.
 
 IMHO testowanie implementacji != dokumentacja wymagan i mieszanie tych rzeczy jest
 bledem.
 
 RW
 
- 
 8. Data: 2011-12-21 14:27:31
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: A.L. <l...@a...com>
 On Wed, 21 Dec 2011 12:37:22 +0100, Pawe? Kierski <n...@p...net> 
 wrote:
 
 >W dniu 2011-12-21 11:51, Roman W pisze:
 >> Na grupie padaly stwierdzenia, ze wymagania wobec programu mozna opisac w formie
 testow.
 >>
 >> Zalozmy, ze mamy zaimplementowac funkcje (na przykladzie C++)
 >>
 >> double calculate_stuff(const std::vector<double>& data);
 >>
 >> z warunkiem "ma sie wykonywac w czasie liniowym w rozmiarze wektora data".
 >>
 >> Jak napisac test, ktory sprawdza czy ten wymog jest spelniony?
 >
 >Mierzysz czas dla dwóch-trzech wielkości wektora i sprawdzasz
 >(asercją), czy czasy spełniają warunek liniowości. Np. test dla 10
 >i 1000 elementów - jeśli test dla 1000 wykonuje się ok 100 razy dłużej
 >niż dla 10, to OK. Jeśli 10000 razy dłużej, to masz n^2. Do tego
 >niektóre frameworki mają możliwość ograniczeń czasowych na testy -
 >pomocne, gdy implementacja jest jednak n^2 i miałaby się zakończyć
 >za kwadrans, zamiast za kilkanaście sekund. Timeout na minutę oznacza,
 >że coś na pewno jest źle.
 
 Echem... Akurat... Metoda Simplex jak wiadomo ma zlozonosc
 wykladnicza, a wszystkie testy pokazuja ze wielomianowa. Zeby dostac
 naprawde zlozonosc wykladnicza tzreba skonstruowac specjalny prtzyklad
 co nastapilo cos w 30 lat po sformulowaniu metody.
 
 Niestety, zlozonosci nei da sie testowac "na przykaldach" a "test
 driven development" wymyslono po cos supelnie innego
 
 A.L.
 
- 
 9. Data: 2011-12-21 14:39:33
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Roman W <b...@g...pl>
 On Wednesday, December 21, 2011 2:27:31 PM UTC, A. L. wrote: 
 > Echem... Akurat... Metoda Simplex jak wiadomo ma zlozonosc
 > wykladnicza, a wszystkie testy pokazuja ze wielomianowa. Zeby dostac
 > naprawde zlozonosc wykladnicza tzreba skonstruowac specjalny prtzyklad
 > co nastapilo cos w 30 lat po sformulowaniu metody.
 
 Dla skonczonej liczby punktow funkcje wykladnicza zawsze da sie dofitowac
 wielomianem, wiec takie testy moga byc tylko i wylacznie heurystyczne.
 
 RW
 
- 
 10. Data: 2011-12-21 15:26:49
 Temat: Re: Pytanie do fanow Test Driven Design i XP
 Od: Maciej Sobczak <s...@g...com>
 On Dec 21, 11:51 am, Roman W <b...@g...pl> wrote: 
 > Na grupie padaly stwierdzenia, ze wymagania wobec programu mozna opisac w formie
 testow.
 >
 > Zalozmy, ze mamy zaimplementowac funkcje (na przykladzie C++)
 >
 > double calculate_stuff(const std::vector<double>& data);
 >
 > z warunkiem "ma sie wykonywac w czasie liniowym w rozmiarze wektora data".
 >
 > Jak napisac test, ktory sprawdza czy ten wymog jest spelniony?
 
 Nie pisać.
 To jest jedna z tych rzeczy, którą łatwiej zrobić, niż sprawdzić
 (podobnie, jak wspomniany pogłos z filharmonii w Koluszkach).
 Pamiętajmy, że tworzenie testów też kosztuje, o czym zwolennicy TDD
 często zapominają.
 
 Przy okazji, powstaje również problem, jak sprawdzić, że test sprawdza
 to co miał sprawdzać? Bo koszt testów nie sprowadza się tylko do ich
 objętości, ale również do zrozumienia, jak zrobić test. Kto sprawdzi
 test?
 I w ogóle to dlaczego pisanie testów, których objętość może
 przekroczyć właściwy projekt (co TDDowcy przyznają) nie odbywa się
 według tej samej metody, która niby jest dobra do wszystkiego? Tzn.
 dlaczego testów nie pisze się według TDD? :-)
 
 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?
 Tutaj również łatwiej jest to zrobić poprawnie przez właściwą
 konstrukcję, niż stworzyć poprawny test.
 
 Takich przykładów może być nieskończenie wiele, a to oznacza, że jest
 nieskończenie wiele projektów, dla których TDD jest niewłaściwym
 podejściem.
 Niespodzianka? Ani trochę.
 
 --
 Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
 


 do góry
 do góry![Skuteczny artykuł sponsorowany - jak napisać i gdzie publikować? [© Tierney - Fotolia.com] Skuteczny artykuł sponsorowany - jak napisać i gdzie publikować?](https://s3.egospodarka.pl/grafika2/artykul-sponsorowany/Skuteczny-artykul-sponsorowany-jak-napisac-i-gdzie-publikowac-216067-150x100crop.jpg) 
![Remarketing - jak skutecznie podążać za klientem [© Coloures-Pic - Fotolia.com] Remarketing - jak skutecznie podążać za klientem](https://s3.egospodarka.pl/grafika2/remarketing/Remarketing-jak-skutecznie-podazac-za-klientem-219431-150x100crop.jpg) 
![Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025 [© freepik] Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025](https://s3.egospodarka.pl/grafika2/najlepsze-lokaty/Ranking-lokat-i-kont-oszczednosciowych-Przeglad-mozliwosci-dostepnych-we-wrzesniu-2025-268649-150x100crop.jpg) 
![Najem prywatny 2023. Podatek od wynajmu mieszkania, innych nieruchomości i ruchomości - jakie zmiany? [© jrwasserman - Fotolia.com] Najem prywatny 2023. Podatek od wynajmu mieszkania, innych nieruchomości i ruchomości - jakie zmiany?](https://s3.egospodarka.pl/grafika2/wynajem-mieszkania/Najem-prywatny-2023-Podatek-od-wynajmu-mieszkania-innych-nieruchomosci-i-ruchomosci-jakie-zmiany-249905-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 
 
 


