• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    Diskuze o obzive programovanim pro starsi a pokrocile.
    rozbalit záhlaví
    ANT_39
    ANT_39 --- ---
    JANFROG: Jo, noise u testu je problem. Napsal jsem robustni a spolehlive, ale treba v mym pripade konkretne jde o testy sitovych zarizeni a linuxovyho sitovyho stacku, a ty sitovy veci proste jsou spis noisy. Je tam kupa ruznych timeoutu, je to slozitej dynamickej system. Ted ty testy se pousti na milionu ruznych typu HW, ve virtualkach ruznych konfiguraci, na HW switchich, s offloadama... Cili je tezky udelat skutecne robustni test. A kazdej test je v dusledku proste kod, kterej je treba maintainovat, kterej bitrotuje, a jehoz samostatna existence tim padem neco stoji.

    I tak se velice vyplati kazdou featuru mit testama pokrytou, pokud mozno. Aspon v Linuxu se ten sitovej stack furt hejbe, a zaroven je tam dost vzajemnych zavislosti, a zpusobu jak to nakonfigurovat, a ktery casti v tom kernelu mit a ktery nemit, a pak do toho jeste vstupuje jakou trafiku na tom poustis. Tam se nejde s zadnou mirou jistoty podivat na patch a vedet, tohle bude fungovat a nikoho to nerozbije. Potrebujes testy.

    Plus ty testy funguji jako navod, jak tu featuru pripadne nakonfigurovat, implicitni dokumentace!

    Ty delas myslim dost toolchain, prekladace, VMka, tenhle druh veci, tam si dovedu predstavit, ze je to podobna cerna magie napsat robustni test, protoze z verze na verzi bude prekladac prekladat mirne jinak, a jde o to, jestli se tim trefi do tolerancniho okna toho testu. Nemluve pak o vecech jako testovani, co ja vim, instruction schedulingu. Vlad Makarov delaval (a mozna porad dela, ale uz nejsem v RH) perf testy GCC, a zminoval, ze dosadnout reproducibility je velkej problem.

    Takze ad tech 5 %... hele, mas notoricky flaky testy, ty by pochopitelne bylo dobry fixnout, aby prestaly byt flaky, ale kdyz ti v mergi popadaji tyhle, asi se nad tim da pokrcit rameny. Pokud mas byt 2 % failu v "cistejch" testech... ehh, asi bych spis nemergoval :) Ale neznam podrobnosti. Jsem si jistej, ze to je nejakej kompromis mezi tim, aby se maintainer nezblaznil a koza zustala cela.
    JANFROG
    JANFROG --- ---
    ANT_39: S tema testama je to takove zradne. Zrovna minuly tyden jsem mluvil s Thomasem Wuerthingerem (GraalVM) a ten rikal, ze jen *provoz* HW na testy je velmi vyrazna cast rozpoctu celeho projektu. A to jeste nepousti testy vsechny, protoze sjet vsechny testy ve vsech konfiguracich by trvalo roky. Navic v tom mnozstvi proste vzdycky nejakej test selze a nikdo nevi proc takze to konci tak ze si reknes "do 5% failures je to good-enough pro merge" :-)

    U svych projektu vidim presne tenhle trend taky (byt samozrejme v mnohem mensim meritku). Pridas ficuru a cas na testu se zdvojnasobi.

    Proste od nejakeho bodu jsou testy solidni bolehlav sam o sobe.
    ANT_39
    ANT_39 --- ---
    DARK_ONE: Dík, kouknu. Jsem mírně skeptickej, protože často mám X commitů, který postupně mění jednu část kódu, a netuším jak dobře je schopný to dělat tu disambiguaci, ale v průměru by to mělo být užitečný.
    ANT_39
    ANT_39 --- ---
    AXTHEB: Jo, protože nejpozději při code review ten kód (statisticky řečeno) budu stejně měnit, a ty testy jako když najdu. A pak znovu, až se to pošle do upstreamu, kterej (statisticky řečeno) taky bude mít $názory. A pak až to bude interní downstream za rok integrovat.
    Uznávám, že náš workflow je specifickej, ale málo co se vyplatí tak jako pořádný testy, na který se dá spolehnout.
    AXTHEB
    AXTHEB --- ---
    NOHOUS: TDD. Když nemáš failujicí test, nemáš nic.
    MARASAN
    MARASAN --- ---
    NOHOUS: proto nepisu testy, jinak bych nespal.
    DARK_ONE
    DARK_ONE --- ---
    ANT_39: mám to podobně. Čímž jsi mi připomněl 'programátorský life hack' jehož objevení mi nedávno udělalo radost (skoro stejnou, jako kdysi autojump) - git absorb --and-rebase.
    ANT_39
    ANT_39 --- ---
    JARDABEREZA: git rebase --interactive. Půlka mých stromů má nahoře pár wip commitů s všelijakým bordelem.
    JARDABEREZA
    JARDABEREZA --- ---
    Já se to snažím spíš redukovat... pokud něco neumím vyřešit dnes, tak to nechám ve stavu, že je to dojebané jenom na jednom místě a ne na 7 místech ve 4 souborech :-D. A hlavně dokud to nefunguje, nedělám comit, abych měl šanci to odjebat :-D S tím se dá usínat.
    JANFROG
    JANFROG --- ---
    SULTHAN: To ja si zadne nezkompilovatelne poznamky psat nemusim, oni se pres noc napisou sami! (co se vecer prelozilo se rano vetsinou uz neprelozi :-)
    MUXX
    MUXX --- ---
    SULTHAN
    SULTHAN --- ---
    KLEINZACH: To přesně dělám. Napíšu si nezkompilovatelnou poznámku, aby mi druhý den naskočil hned v hlavě kontext.
    SATAI
    SATAI --- ---
    NOHOUS: spánkem spravedlivých
    NOHOUS
    NOHOUS --- ---
    SATAI: jak můžeš usnout s failujicim testem??
    CERMI_FOX
    CERMI_FOX --- ---
    QWWERTY: to nesmi byt spoustu TODO v existujicim (produkcnim) kodu :-)
    SATAI
    SATAI --- ---
    QWWERTY: dobré je napsat si failující test a pak jít. Pokud to jde.
    QWWERTY
    QWWERTY --- ---
    KLEINZACH: comment anchors ftw - na konci dne dodelam "TODO" flagy a IDE mi da dalsi den prehledny list, kde presne na co musim navazat
    KLEINZACH
    KLEINZACH --- ---
    JIMX: a hlavne mi to rano pripomene kde sem vlastne uplne unavenej skoncil :) nejlip jeste nejakym nezkompilovatelnym komentarem "TADY SE TO MUSI DODELAT"
    JIMX
    JIMX --- ---
    Tak když si můžete dovolit věci dokončit a pak teprve od tý práce jít ... u mne, když přijde čas, tak prostě jdu ... takže díkybohu za to, že NB se dá zaklapnout a když ho z půl hodiny někde jinde otevřu, tak zůstane tam, kde byl :-)
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    co mi teda hodne pomaha, abych nemyslel na práci je, že zásadně pracovní počítač vypínám, žádný tadyhle si dám sleep a ráno se k tomu vrátím jak je to otevřený, hezky pozavírat. To mě totiž donutí věci dodělat do nějakého stavu, kdy se to dá poukládat, případně si napsat poznámku.
    CERMI_FOX
    CERMI_FOX --- ---
    JON: bublina v krvi neboli vzduchova embolie je celkem pruserovy stav, ktery umi zabit. To te vazne uklidni? :-) Ty musis mit nervy ze zeleza.

    Jinak me pomaha myslet pred spanim na (zemni, stavebni, ...) praci - v blizkem horizontu mam v planu vykopat drazku na trubku. A kdyz na to zacnu myslet pred spanim, mozku se nechce delat fyzicka prace a radsi usne.
    Kliknutím sem můžete změnit nastavení reklam