Article View: pl.comp.programming
Article #216193Re: POpularno?? j?zyk?w programowania ??
From: heby
Date: Sat, 12 Oct 2019 14:34
Date: Sat, 12 Oct 2019 14:34
102 lines
6318 bytes
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-mailReferences:
<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