• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    VOY
    VOY --- ---
    ALMAD: Nejsem sokovany. Proto mi prijde vsechna ta ideologie o testech co se nesmi napsat pokud neprochazi ponekud akademicka. Zaroven fandim TDD, ale obavam se, ze jsem za svou karieru v tech potkal opravdu naproste minimum lidi co podle nej jedou. Myslim, ze to neni nahoda nebo vyber firem, proste to z nejakeho duvodu ve stretu s realitou neni moc prakticke. Smutnym faktem je, ze kdyz se blizi deadlines a zacne jit do tuheho tak testy se seskrtaji jako prvni. Znovu rikam, je to pouze pozorovani reality, ne muj nazor.
    ALMAD
    ALMAD --- ---
    VOY: Ano. Asi te to prekvapi, alr takovi lide existuji :D
    CERMI_FOX
    CERMI_FOX --- ---
    VOY: tomu se rika stret reality s ideologii :-)
    VOY
    VOY --- ---
    Urcite se vam nekdy stane, ze prijdete ke kodu, ktery funguje, chcete do nej udelat nejake zmeny a nema zadne testy. Pak prirozene clovek dopisuje testy, ktere prochazi. Chce to nepochybne obezretnost, aby skutecne testovaly co maji, ale takove momenty taky prichazi. Vetsinou AI naznacim kodem co sam napisu jak bych si to asi predstavoval hlavne co se tyce mockovani a pak uz to typicky funguje slusne. From scratch bychom se ale asi daleko nedostali a nebo s hroznou kvalitou kodu.
    JARDABEREZA
    JARDABEREZA --- ---
    AXTHEB: Já TDD dělal jenom když jsem psal binární parser a bylo přesně jasné co je vstup a výstup už odzačátku. (ale nic proti lidem co TDD dělají všude). Asi si to neumím promyslet tak moc dopředu v souvislostech. Anebo je naše práce rozdílná a dává to u tebe větší smysl.

    Takže pak ty testy dělám proto, abych mohl změnit/refaktorovat všechno s jistotou, že mi to pak někdo naomlátí ohlavu a nevysype na mě pytel chyb :-D

    Anebo u týmové práce při nastavené pipeline je pak jasně vidět čí comit to rozbil :-D
    SULTHAN
    SULTHAN --- ---
    Teď jsem nedávno dělal review pull requestu, kde byly FE testy (playwright) vygenerovaný přes AI, a bylo to utrpení. Jako jo, nějak se to UI prokliká, ale kód to byl příšerný - elementy se hledaly přes nějaké strašně složitě zanořené CSS selektory a byly tam úplně WTF věci, jako třeba try-catch uvnitř testu (asi aby test nefailnul) nebo prostý return (konec testu) pokud se element nenašel.
    AXTHEB
    AXTHEB --- ---
    VOY: No, každý test, který napíšeš a rovnou prochází je test, který by neměl existovat.
    Test píšeš buď abys ukázal jaká funkcionalita ti chybí a dopsal jí, nebo abys ověřil, že nějaká chyba je opravdu to, co myslíš že je a pak jí opravil.
    CERMI_FOX
    CERMI_FOX --- ---
    VOY: bud jak pise Jardabereza, nebo jet dvojfazove - nejdriv at vygeneruje md s testcasama, ty mu promazes a opravis a pak ho nechas at podle toho ty testy udela. Je fajn zacit u jednoho dvou, u nej odladit mocky a strukturu a pak ho pustit na ty ostatni
    JARDABEREZA
    JARDABEREZA --- ---
    VOY: To mi taky fungovalo, založil jsem prázdný soubor na testy s odpovídajícím jménem. A pak jen spustit "GitHub Copilot: Generate Tests" a ono to něco udělá. Ale nebyl jsem s tím úplně spokojený. Vyšlo mi líp napsat jeden vzorový a pak ty další vypadali víc podle toho prvního, takže to např. nemockovalo, pochopilo jaké property má ten objekt atd.
    VOY
    VOY --- ---
    Nevim jak bych mel postupovat, aby mi to generovalo testy co nemaji vzniknout. Jako ze bych tomu dal soubor a rekl "napis proste nejaky testy" nebo jak?
    ALMAD
    ALMAD --- ---
    JARDABEREZA: Klicovy je to “kdZ to clovek zkontroluje”.

    IMHO hlavni uzitecnost testu je ten design proces, a osobne neverim zadnymu testu kterej sem nwvidel failnout.

    Pokud to clovek nedela, tak se imho ma aspon na unit testy vykaslat a zustat u tech integracnich/system testu (kde teda llm umi pomoct dost).
    ALMAD
    ALMAD --- ---
    AXTHEB: Da se to pomasirovat contextem, a je to celkem uzitecny na integracni testy typu cypress.

    Ale obecne v prumeru souhlas, vychozi stav je ze to generuje testy co nemaj existovat. Navic kdyz agent iteruje nad padajicima testama, tak pokud ho explicitne nenavigujes, tak klidne skoncis s tim ze vsechno co pada zamockuje a skoncis s assert true == true, akorat na padesati radkach a naprosto nezjevnym zpusobem.

    Delat v dnesni dobe code reviews je radost, to nemohu rict.
    JARDABEREZA
    JARDABEREZA --- ---
    AXTHEB: Jasné. Občas jsem viděl, že těch testů je tam zbytečně moc, tak z těch generovaných jsem třeba půlku smazal.
    AXTHEB
    AXTHEB --- ---
    Plus teda já jsem zástupce TDD, takže napsat test který prochází je podle mě zbytečnost.
    AXTHEB
    AXTHEB --- ---
    JARDABEREZA: No navrhne ti hromady testů na každou blbost, takže když budeš chtít něco zrefaktorovat, tak ti začnou padat testy, i když se chování appky jako takové nezmění.
    Případně se to změní business požadavky, takže něco, co mělo být kladné číslo najednou může být i záporné, tak to změníš a najednou ti popadají zástupy testů.
    DEFILA
    DEFILA --- ---
    velmi mi to fungovalo u projektů, kdy bylo třeba přepsat řešení do jazyka XY. Máme funkční testy, které se tomu nasypou a přepíše je to.
    Zkontrolovat je to potřeba, ale ten ušetřeny čas tam je.
    JARDABEREZA
    JARDABEREZA --- ---
    AXTHEB: Dobré vědět. Můžeš to nějak rozvést, abych věděl na co se mám třeba připravit? :-D
    AXTHEB
    AXTHEB --- ---
    JARDABEREZA: No, dělá to úplně nahovno testy, jejichž jediný efekt je, že překáží při refaktoru.
    JARDABEREZA
    JARDABEREZA --- ---
    Když jsme tu zmiňovali AI. Zkoušeli jste s LLM generovat unit testy? Jak se vám to osvědčilo. Mě přijde, že na tuhle oblast mi AI funguje asi nejlíp. Alespoň co se týče Typescriptu. Napíšu jeden test a udělá mi to samo třeba dalších 6. Dávají mi smysl a fungují mi by default... občas sem tam lehké opravy.

    VSCode + Copilot + Claude 4, hotový kód s nějakýma komentářema. Unit testy jsou repetitivní a LLM je pattern matcher, přijde mi, že v téhle oblasti to dává smysl, když si to člověk zkontroluje.
    JARDABEREZA
    JARDABEREZA --- ---
    SULTHAN: jj, chtěl jsem tím poukázat na to, že stejný nešvar jsem měl i před AI... když vím, že za 10-15 sekund si to najdu na internetu nebo někde. Kdybych opravdu moc chtěl, tak se to naučím nazpamět... ale asi prostě nechci a mozek to nějak respektuje. Ten jev s pamětí tu je už několik let a dál se rozšíří. A zase si pamatuji líp věci co se nedají nikdy najít nebo je to časově náročné.
    Kliknutím sem můžete změnit nastavení reklam