-
Data: 2011-12-21 23:29:20
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 14:11, Roman W wrote:
> 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.
Trochę pół żartem, mogę powiedzieć, że można to testować jakimś testem typu:
void testProvedLinearComplexityOfCalculateStuff() {
fail(); // remove this line once proof is checked by customer
}
Trochę poważniej - jeśli klient wymaga formalnego dowodu złożoności
algorytmu, to prawdopodobnie możesz to obsłużyć poza metodologią
tworzenia oprogramowania - tam, gdzie masz proces do zapewnienia
odpowiednich 'deliverables'. Przecież nie sprawdzasz też automatycznymi
testami, czy została stworzona i dostarczona instrukcja dla użytkownika,
albo czy dział prawny sprawdził tekst licencji.
Natomiast samo wymaganie, żeby złożoność była liniowa, można bardzo
łatwo udokumentować testem, np. takim:
void testCalculateStuffComplexityIsLinear() {
assertThat(timeComplexityOf(claculate_stuff).is(line
ar()));
}
Wewnątrz implementacja oczywiście będzie robiła jakieś heurystyki, można
też sparametryzować ten test tak, żebyś miał prosty wariant który się
testuje z każdym buildem i wariant dla realnych zakresów użytkowania,
który się testuje przez noc, przez weekend albo nawet przez tydzień,
jeśli tego właśnie potrzebujesz.
Następne wpisy z tego wątku
- 22.12.11 00:00 Andrzej Jarzabek
- 22.12.11 00:09 Andrzej Jarzabek
- 22.12.11 00:31 Andrzej Jarzabek
- 22.12.11 00:58 Michoo
- 22.12.11 01:28 A.L.
- 22.12.11 08:24 Paweł Kierski
- 22.12.11 08:28 bartekltg
- 22.12.11 08:47 Edek
- 22.12.11 08:58 Roman W
- 22.12.11 09:02 Roman W
- 22.12.11 09:06 Roman W
- 22.12.11 09:08 Roman W
- 22.12.11 09:19 Stachu 'Dozzie' K.
- 22.12.11 09:29 Andrzej Jarzabek
- 22.12.11 09:40 bartekltg
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 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) <=
- 2025-02-10 Karząca ręka samorządu adwokackiego wygrała w NSA - wieszanie (portretów) ue-posłów ze "współczesnej Targowicy" (2017)
- 2025-02-10 Nie kupisz paliwa na stacji
- 2025-02-09 Ster w trolejbusie.
- 2025-02-09 Jebany POPiS. Mamy się cieszyć że rząd Tuska naprawił spierdolone porozumienie z UE?
- 2025-02-08 W zyciu warto miec szczescie
- 2025-02-08 Elektryki
- 2025-02-08 Alg. kompresji LZW
- 2025-02-08 Kraków => Key Account Manager <=
- 2025-02-08 Warszawa => Java Developer <=