🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216193

Re: POpularno?? j?zyk?w programowania ??

#216193
From: heby
Date: Sat, 12 Oct 2019 14:34
102 lines
6318 bytes
On 10/10/2019 23:08, AK wrote:
> Ktos kto mieni sie informatykiem i mowi o Windows, ze to jakas nisza,

Możesz udowodnć tezę odwrotną. Zacznij np. od ilosci systemów 
operacyjnych w ogóle na świecie w użytku.

Zacznij tutaj:

https://en.wikipedia.org/wiki/Usage_share_of_operating_systems

>> No robie to z kodem dobre 20 lat jak nie więcej. I? No wiec zazyczaj 
>> wtedy mam buz(). A tu nie ma buz(). I dupa z unit testowaniem.
>>> Oblicz wiec dla przetestowanych unitestowo w buz() przedzialow

Ale nic o buz nie wiadomo. Tako rzecze szaman który to zadanie postawił.

>> Nie da się.
> Niby dlaczego. (Prawie) zawsze sie da.

Nie, możez sobie pisać *jakieś* unit testy. To zawsze można, choćby po 
to żeby zadowolić jakiegoś speca i komisje za zielonym suknem.

> Gdy naprawde ciezko, to mock buza() tez jest pewnym wyjsciem.

Żeby napisać mocka buza musiz wiedzieć jakie przyjmuje stany dozwolone. 
Inaczej możesz ten mock wydłubać na return 4; tylko że to co najwyżej 
przetesuje nerwy grupy na codereview.

> Mock chocby wylacznie po tp aby prze-unit-testowac funa()

Nie a się go przetestować, szaman Sławek wyjaśnił że wiedza o buz() jest 
niezbędna do testowania fun().

>> Zacytuje klasyka:
>> "Bo gdy buz będzie
>>   definiowana przez użytkownika (np. przez podanie kilkunastu liczb
>>   określających współczynniki, wykładniki itp.) - to zwyczajnie nie
>>   wiesz co z czym masz assertEqual"
> To sobie zgromadz te dane buz()-a dla tychze wspolczynnikow.

Nie ma buz(). Nie ma współczynników. Nic o niej nie wiadomo.

>> Unit testy z definicji testują *unity* kodu. A nie tajemnicze funkcjie 
>> podawane przez użytkownia jak u niejakiego sławka.
> Te "tajemnicze" funkcje sa _takimi samymi_ jak kazde inne.

Nie. Jesli to funkcja która liczy sin() to chwilowo nie znamy kątów dla 
których jest większa niż 1 wiec istnieje nikła szansa że nalezy testować 
fun() na inne wartości. Albo inaczej: można, tylko po h...

Nie, nie każda funkcja jest taka sama.

> Identycznie jak te jawne (z source kodem itp) podlegaja unittestowaniu.

I ich nie ma. Nie ma więc uni testowania, co nie przeszkadza testować 
inaczej, jak choćby uzywając jakiś wyssanych z palca constrains, które w 
tym przykładzie i tak nie zadziałają bo przykład zakłada jakiś buz() i dupa.

>> Od tego są inne warstwy testowania.
> Baju baju...
> Inne warstwy sluza zupelnie czemu innemu, a nie testowaniu pojedynczych
> funkcji.

To są dwie funkcjie, jedna znany drugą nie. Nie ma jak testować na 
poziomie programisty piszącego fun(). Być może jest możliwośc testowania 
na poziomie kogoś kto zna buz(), być może to będzie programista, ale to 
nie będzie unit test.

Zapewne kiedyś, w dalekkiej przyszłości linkowania kodu, buz() się 
ujawni albo może go ktoś załaduje w runtime. To wtedy bedzie testowanie 
po integracji.

> Ze niby fun() nie jest normalna funkcja?
> Chyba sobie kpisz.

Ależ normalna, ale niestety nie jest kompletna.

> Juz lepiej zmock-uj tego buz() /fakt, nie zawsze sie da/ gdy nie chce ci 
> sie przygotowac _faktycznych_ danych.

Żeby napisać mocka muszę coś wiedzieć. Tutaj nic nie wiemy. Sławek 
pewnie niecierpliwie przebiera nogami żeby dowiedzieć się w jakiej 
szklanej kuli mam wyczytać co to jest buz(). Chwilowo nawet a Algolu 
takiej nie wymyślili.

Więc tak, możesz sobie cośtam potestować unitestami ściemniając że niby 
działa bo dla 3,7 i 50000 działa. Ale to nie jest testowanie, to tylko 
taki wyścig na ilośc kkloc-ów.

>> Nic nie możesz stwierdzić bo nie masz danych. Pokaż buz() to będzie 
>> rozmowa o uni testach. Nie pokazesz buz() to nie ma unit testów tylko 
>> wróżenie z fusów
> To juz jest horrendum :)
> Ze niby musi byc znany kod fukcji, aby ja prze-unittestowac?

Musisz znać jej odpowiedzi na dane wejściowe, opisane w jakimś specu. 
Tutaj buz() jest nieznany. Czy to będzie kod czy specyfikacja, nie ma 
znaczenia. Pokaż buz() to go uzyje, albo pokaż speca to sobie mocka napiszę.

> Chopie, nie blamuj sie calkiem.

Patrzysz czasem w lustro jak dajesz innym rady?
Technical Details
Message-ID: <qnso9e$fkt$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!ecngs!feeder2.ecngs.de!178.20.174.198.MISMATCH!feeder4.feed.usenet.farm!feed.usenet.farm!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
References: <ZFueF.189972$Jh2.55867@fx39.am4> <5d86b148$0$520$65785112@news.neostrada.pl> <qm7c3j$pl6$1@dont-email.me> <5d87968d$0$503$65785112@news.neostrada.pl> <qm875f$g8o$1@dont-email.me> <5d87b31a$0$522$65785112@news.neostrada.pl> <qm8e0j$s55$1@dont-email.me> <qmgven$som$1@z-news.wcss.wroc.pl> <f05b2868-1104-41ec-9932-5ab98957ebee@googlegroups.com> <qmnls7$tml$2@news.icm.edu.pl> <b5bf1d06-63aa-431d-9617-197defac80b3@googlegroups.com> <qmtap2$kfe$1@dont-email.me> <43e2df0d-44bc-46a6-8510-439c78ef7ba8@googlegroups.com> <qn5dj9$qh9$3@dont-email.me> <b22c77d4-eebc-460a-90a0-a17f23edafed@googlegroups.com> <qn82tb$4uq$1@dont-email.me> <qn85ev$ml7$1@news.icm.edu.pl> <qn85qb$lth$1@dont-email.me> <qn87hu$qnt$1@news.icm.edu.pl> <qn87ok$ca$2@dont-email.me> <qn9ac8$81m$1@news.icm.edu.pl> <qn9ip9$r44$1@dont-email.me> <qnc33g$19p7$3@gioia.aioe.org> <qncc7j$umu$4@dont-email.me> <qnhbgh$16fg$1@gioia.aioe.org> <qno26k$90o$1@dont-email.me> <qno6jm$u1s$1@gioia.aioe.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!ecngs!feeder2.ecngs.de!178.20.174.198.MISMATCH!feeder4.feed.usenet.farm!feed.usenet.farm!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: heby <heby@poczta.onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: POpularno?? j?zyk?w programowania ??
Date: Sat, 12 Oct 2019 16:34:20 +0200
Organization: A noiseless patient Spider
Lines: 102
Message-ID: <qnso9e$fkt$1@dont-email.me>
References: <ZFueF.189972$Jh2.55867@fx39.am4> <5d86b148$0$520$65785112@news.neostrada.pl> <qm7c3j$pl6$1@dont-email.me> <5d87968d$0$503$65785112@news.neostrada.pl> <qm875f$g8o$1@dont-email.me> <5d87b31a$0$522$65785112@news.neostrada.pl> <qm8e0j$s55$1@dont-email.me> <qmgven$som$1@z-news.wcss.wroc.pl> <f05b2868-1104-41ec-9932-5ab98957ebee@googlegroups.com> <qmnls7$tml$2@news.icm.edu.pl> <b5bf1d06-63aa-431d-9617-197defac80b3@googlegroups.com> <qmtap2$kfe$1@dont-email.me> <43e2df0d-44bc-46a6-8510-439c78ef7ba8@googlegroups.com> <qn5dj9$qh9$3@dont-email.me> <b22c77d4-eebc-460a-90a0-a17f23edafed@googlegroups.com> <qn82tb$4uq$1@dont-email.me> <qn85ev$ml7$1@news.icm.edu.pl> <qn85qb$lth$1@dont-email.me> <qn87hu$qnt$1@news.icm.edu.pl> <qn87ok$ca$2@dont-email.me> <qn9ac8$81m$1@news.icm.edu.pl> <qn9ip9$r44$1@dont-email.me> <qnc33g$19p7$3@gioia.aioe.org> <qncc7j$umu$4@dont-email.me> <qnhbgh$16fg$1@gioia.aioe.org> <qno26k$90o$1@dont-email.me> <qno6jm$u1s$1@gioia.aioe.org>
Mime-Version: 1.0
Injection-Date: Sat, 12 Oct 2019 14:34:23 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="07db5ed1ffebbe5360af0b15ccfe359d"; logging-data="16029"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Xpx0AVTFNmRqxqYNRx+Cx"
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
Cancel-Lock: sha1:b/CeIfHOqa/bNu9usxjqFKwOKMk=
In-Reply-To: <qno6jm$u1s$1@gioia.aioe.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit