-
Data: 2015-03-28 09:40:56
Temat: Re: poprawność algorytmu
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu piątek, 27 marca 2015 16:00:39 UTC+1 użytkownik g...@g...com napisał:
> Mnie się zdaje, że to w ogólności jest "cieńka" metoda. Tym bardziej,
> że wielu ideologów pisania testów mówią, że "im więcej, tym lepiej"
> i że "testy nie muszą być elegancko napisane" -- problem jest taki,
> że testy również potrafią czynić pewne założenia, które nie są kluczowe
> z perspektywy projektu, a których zmiana w projekcie sprawi, że słita
> testowa stanie się bezużyteczna.
Tak. I na tej podstawie można też podważyć stosowanie takich artefaktów do testowania
regresji. Może być tak, że po zmianie w implementacji i wprowadzeniu do niej bugów
stary test nadal będzie przechodził, bo nie testuje nowo powstałych osobliwości.
Testów nie da się pisać na masę, chyba że ktoś chce uprawiać poprawność tzw.
statystyczną. To też ma jakąś wartość, ale trzeba wiedzieć, gdzie.
> A co jeśli ktoś napisze zły test i złą implementację? Taki sam klops.
I te rzeczy były pisane przez niezależnych wykonawców? To wtedy prawdopodobieństwo
znalezienia niezgodności jest bardzo wysokie i wiadomo, że co najmniej jedno z dwóch
jest zwalone. Tej efektywności nie ma gdy się robi jedno z drugiego (tu z pogardą
spoglądamy również na TDD).
Podobno w praktyce wychodzi 50-50, więc tym bardziej nie należy traktować jednego z
tych artefaktów jako nadrzędnego.
> Jednak artykuł w gruncie rzeczy nie opisywał tego, o czym mówił
> ten nagłówek, tylko po prostu pewną odmianę programowania
> deklaratywnego opartą o microsoftowy system.
Jasne. W takim kontekście jest to bardzo ciekawe. Szkoda tylko, że niepraktyczne.
> Tzn. generowanie testów z implementacji rzeczywiście brzmi idiotycznie.
> Jednak w drugą stronę to nie całkiem zachodzi. Jeżeli mamy system, który
> na podstawie testów potrafi wygenerować sensowną implementację, to szacun.
Szacun dla systemu. Ale nadal niepraktyczne.
Taki system zmusza autora testu do takiego sformułowania testu, żeby z jego formuły
wynikała kompletna implementacja. Tzn. albo test musi być wyczerpujący albo musi być
tak skonstruowany, żeby *nie dało się* z niego zrobić niekompletnej implementacji.
Np. napisz test, który sprawdza funkcję sort - ale napisz go tak, żeby po
wygenerowaniu implementacji z tego testu, każdy inny test też przechodził.
I jeszcze udowodnij, że tak jest.
Wysiłek intelektualny z tym związany jest porównywalny z napisaniem tej funkcji. I
udowodnienia, że jest poprawna.
To jest jak ze ściskaniem plasteliny w dłoni - po prostu wylezie z innej strony a jej
objętość się nie zmniejszy.
> Ja jednak będę trwał na stanowisku, że testy są z założenia niekompletne,
> bo obejmują pewne przypadki jednostkowe.
Mogą obejmować wszystkie klasy równoważności (albo w ogóle być wyczerpujące w sensie
przestrzeni wejść). Ale znalezienie wszystkich klas równoważności jest tak samo
trudne, jak dowód z pominięciem testów. A testy wyczerpujące to tylko dla
najprostszych funkcji logicznych można napisać przed zejściem.
> I testy jako takie mają pewną
> wartość.
Tak. Oraz cenę.
> I owszem, zgodzę się, że fajniej jest mieć dowody poprawności, kiedy
> tylko się da (choć nie wiem, czy akurat w logice Hoare'a), ale jedno
> nie wyklucza drugiego. Tak jak fajnie np. w podręczniku do matematyki
> mieć nie tylko definicje, twierdzenia i dowody, ale również przykłady.
Tak. Ale dowodem można uzasadnić zmniejszenie ilości testów. Tak jak w książce do
matematyki nie trzeba podawać wyczerpujacych przykładów, wystarczy podać te
ilustracyjne. Wtedy książka może mieć mniej kartek i może być tańsza.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
Następne wpisy z tego wątku
- 28.03.15 09:45 g...@g...com
- 28.03.15 10:10 Maciej Sobczak
- 28.03.15 10:47 g...@g...com
- 28.03.15 10:54 M.M.
- 28.03.15 11:46 M.M.
- 28.03.15 11:54 Andrzej Jarzabek
- 28.03.15 13:08 Andrzej Jarzabek
- 28.03.15 18:22 Maciej Sobczak
- 28.03.15 19:38 Roman W
- 28.03.15 19:43 Roman W
- 28.03.15 19:50 A.L.
- 28.03.15 19:51 A.L.
- 28.03.15 21:16 Andrzej Jarzabek
- 29.03.15 00:13 Maciej Sobczak
- 29.03.15 15:21 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 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
Najnowsze wątki
- 2025-07-08 Router LTE z możliwością zmian MTU
- 2025-07-08 Re: Pożar w Ząbkach a polscy dyletanci
- 2025-07-08 Trójmiasto => Head of Social Media <=
- 2025-07-08 Warszawa => MENA New Business Manager <=
- 2025-07-08 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-08 Warszawa => Customer Service with Spanish + translation <=
- 2025-07-08 Warszawa => Senior Account Manager <=
- 2025-07-08 Parkometry bez podstawy prawnej
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...