-
Data: 2011-05-22 22:19:53
Temat: Re: ilu jest programistow na swiecie?
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 22 Maj, 14:39, Andrzej Jarzabek <a...@g...com> wrote:
> Skoro więce robisz testy, to chyba jednak czemuś one zapobiegają. Bo
> chyba nie powiesz, że robisz je, bo lubisz poczucie beezpieczeństwa?
Robię je tam, gdzie (jak sądzę) ich użyteczność jest większa, niż ich
koszt. To oznacza, że czasami ich nie robię a w szczególności czasami
od nich nie zaczynam. Czyli traktuję testy tak, jak młotek i każde
inne *narzędzie*, któro czasem jest odpowiednie a czasem nie.
I dlatego nie mam zaufania do żadnej metody, która stawia testowanie
(albo jakiekolwiek inne narzędzie) w centrum uwagi albo je wręcz
wymusza.
Dwa skrajne przykłady z działki, którą zajmowałem się ostatnio
najwięcej (systemy rozproszone):
1. Jak piszę serializator, to używam TDD, bo serializator jest na to
idealnym miejscem. Zaczynam od protokołu i danych testowych, od
najprostszych do bardziej wyuzdanych i najpierw piszę test a potem
odpowiedni kod serializatora, z drobnymi iteracjami. Np. gdybym miał
pisać funkcję do kowersji ASCII->Morse, to też bym tak zrobił (osobne
iteracje na każdą literkę), bo to ma wtedy sens.
2. Jak mam wymaganie, że w układzie publish-subscribe jitter u każdego
odbiorcy ma być niezależny od awarii (zawieszenia, zgon, itp.) innych
odbiorców, to *nie* używam TDD ani w ogóle nie robię na to żadnego
testu. Tego typu wymagania można sensownie spełnić nie przez jakąś tam
refaktoryzację, tylko przez odpowiednią *konstrukcję*, czyli to ma
najpierw zadziałać na papierze. Automatycznego testu nie ma sensu
robić, bo jest to zbyt kosztowne (albo w praktyce w ogóle niemożliwe)
w stosunku do efektu. Takie rzeczy testuję przy użyciu paczki czipsów,
czyli robię testowy system, który wizualizuje mi się na ekranie, kładę
nogi na stole i przy ostatnim czipsie wiem, czy działa poprawnie.
Prawie zawsze działa, bo prawie zawsze mam dobrą konstrukcję, która
wynika z dobrego projektu na papierze.
Inne wymaganie, któro traktuję podobnie, to np. "ruch komunikatów ma
być płynny". Itd.
Jak ktoś chce pisać na to testy (albo nawet TDD), to będę za niego
trzymał kciuki.
Jeśli jakaś metodologia zmuszałaby mnie do robienia automatycznych
testów do tego typu wymagań, to ta metodologia jest do dupy. A
ponieważ właśnie takie wymagania są najciekawsze i z takimi mam
najwięcej do czynienia, to agile/xp/łotewer byłby dla mnie jedynie
obciążeniem. Oops - a podobno miał być wybawieniem od poprzednich
obciążających metodologii. There is no silver bullet.
> >> Nie tylko unit testy można odpalać z automata. Można automatycznie
> >> testować całe systemy, nawet GUI.
>
> > Nie, nie można.
>
> Można. Wiem, bo akurat moja praca ma z tym związek i blisko współpracuję
> z ludźmi, którzy to właśnie robią.
Etam. Dla mnie wymagania na GUI to np.:
1. w aplikacji do obsługi kont emerytalnych GUI ma być *przyjazne dla
starszych osób*
2. w aplikacji typu sklep GUI ma *umacniać postrzeganie marki i
sprzyjać tzw. konwersji*, czyli kierować odwiedzającego w stronę
zakupów
Jeżeli pod pojęciem testowania GUI rozumiesz sprawdzenie, czy
naciśnięcie przycisku wywołuje podpiętą do niego funkcję, to mówimy o
różnych rzeczach. Ja mówię o tym, że nie da się automatycznie testować
GUI; przypuszczam, że być może da się testować *display*, ale mały z
tego pożytek.
> W przypadku projektów zlecanych zewnętrznie, ta widoczność powinna miec
> postać "nasz człowiek siedzi z waszym zespołem i uczestniczy w zebraniach".
"Nasz człowiek nie ma czasu i w ogóle to wyjeżdża/awansował/łotewer.
Przyślijcie jak skończycie."
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
Następne wpisy z tego wątku
- 23.05.11 06:01 Andrzej Jarzabek
- 23.05.11 06:43 Michal Kleczek
- 23.05.11 06:59 Maciej Sobczak
- 23.05.11 07:55 Maciej Sobczak
- 23.05.11 08:09 Jacek Czerwinski
- 23.05.11 10:53 Andrzej Jarzabek
- 23.05.11 11:43 Michal Kleczek
- 23.05.11 11:48
- 23.05.11 13:31
- 23.05.11 15:55 Andrzej Jarzabek
- 23.05.11 16:06 Andrzej Jarzabek
- 23.05.11 16:24
- 23.05.11 17:31 Andrzej Jarzabek
- 23.05.11 17:34 Andrzej Jarzabek
- 23.05.11 19:57
Najnowsze wątki z tej grupy
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-24 Delegacja osoby prowadzącej jednoosobową działalność
- 2025-06-24 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-06-24 Warszawa => Młodszy Programista SQL / FrontEnd developer <=
- 2025-06-24 Warszawa => Junior C# / FrontEnd developer <=
- 2025-06-24 Warszawa => Sales Executive / KAM <=
- 2025-06-23 Warszawa => MENA New Business Manager <=
- 2025-06-23 Trójmiasto => Head of Social Media <=
- 2025-06-23 Tapeta w Xiaomi
- 2025-06-23 Gdańsk => Programista Kotlin <=
- 2025-06-23 Białystok => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-23 Warszawa => Senior Account Manager <=
- 2025-06-23 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-23 Warszawa => Starszy Programista C <=
- 2025-06-23 Warszawa => Tester Automatyzujący <=
- 2025-06-23 Warszawa => Inżynier oprogramowania .Net <=