-
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
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- 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ą."
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML