Unit testing

Redmond

Elita
Poruka
17.185
Da li na vašem radnom mestu traže da pišete unit testove? Koliko često se traže i koliko su esencijalna veština za programera... konkretno forntendaša?
Znam da su jedna od zamornijih stvari u programiranju ali sam čuo da mogu da ti povećaju cenu na tržištu rada???
 
Nisam kompetentan da govorim za frontend, ali iz ugla bekenda, mogu biti vrlo zgodni. Na poslu mi niko ne traži eksplicitno da ih pišem, ali su ipak neki kritični delovi koda pokriveni jediničnim testovima.

Ja ih lično pišem kad god osetim potrebu, tj. kad je u pitanju neki od bitnijih modula sa složenom logikom. Što veća pokrivenost testovima, opuštenije možeš da pristupiš refaktorisanju koda. Programerima je često pain in the ass kad vide da bi bilo poželjno da se neki kod refaktoriše, a znaju da time mogu da uvedu ozbiljne bagove ako se ne isproverava sve dobro, pa onda sve ostane samo na toj želji, i kompleksnost koda samo raste i raste.

Sami jedinični testovi su vid specifikacije, kako je očekivano da se nešto ponaša. Ako menjaš kod, testovi i dalje treba da budu u skladu sa specifikacijom, osim ako sama specifikacija nije promenjena, gde je potrebno da ažuriraš i same testove (ne samo za izmene specifikacije, moraćeš da ih ažuriraš i ako prilikom refaktorisanja promeniš interfejs, zato je dobro da interfejsi budu što stabilniji, mada je i njihova izmena nekad neizbežna). Ukratko, vrlo brzo dobiješ feedback da li je ono što si napisao ili modifikovao validno, inače bi ti trebao neki code review :)

Mislim da je definitivno jedna od značajnijih veština pedantnih programera. Zahtevaju malo više dodatnog posla, ali kasnije višestruko mogu da se isplate.

A ima i nekog zadovoljstva u tome kad prvo napišeš unit testove, i onda deo po deo koda pišeš i omogućuješ testovima da prolaze, tj. da budu uspešni :D
 
Poslednja izmena:
vidi TDD razmišljaj možda pre tako, radila sam to ali kao vežbu samo
pre tako razmišljaj nego o unit testovima jer nekad moraš kod da menjaš da bi imali smisla, nisu lepe fje za unit testove (kad se dodaju testovi na kraju)?
u stvari nisu to uvek unit testovi, to mogu da budu i integrativni testovi valjda n ego se to tako zove... JUnit i slično, kad kodiraš test, danas ima i dosta testing toolova a nekad su imali da kuckaju test u kodovima, a sad je deluje dosta jaka ta industrija toolova?? mada je to više za testera a TDD za developera
 
Da li na vašem radnom mestu traže da pišete unit testove? Koliko često se traže i koliko su esencijalna veština za programera... konkretno forntendaša?
Znam da su jedna od zamornijih stvari u programiranju ali sam čuo da mogu da ti povećaju cenu na tržištu rada???
Kad je u pitanji UI imas programa koji simuliraju kliktanje i to. popularan alat https://www.selenium.dev/
E bas da je to unit testing, nije ali je neki testing. Sam pojam unit testinga je vise za biblioteke i kompajlirane
jezike, jer jelte unit kao neka celina podrazumeva biblioteke.
 
Kad je u pitanji UI imas programa koji simuliraju kliktanje i to. popularan alat https://www.selenium.dev/
E bas da je to unit testing, nije ali je neki testing. Sam pojam unit testinga je vise za biblioteke i kompajlirane
jezike, jer jelte unit kao neka celina podrazumeva biblioteke.
Ja sam se sa Seleniumom zezao kod scrape-ovanja podataka sa Weba. Posebno je korisno kad prvo treba da se autentifikujes, i kad stranica asinhrono ucitava content :D Selenium + Beautiful Soup :heart::D

Inače, TDD mi zvuči kao overkill ako se testovi pišu za svaku sitnicu. Prvo, overhead tokom njihovog pisanja, posebno ako želiš da postigneš veliku pokrivenost, a drugo, njihovo održavanje.

Zato mislim da je mnogo bolje pisati ih samo za kritične i kompleksne delove, i njima pokriti dobar deo tog koda. Što veća pokrivenost, veća je sigurnost da će unit testovi da detektuju kad se nešto pokvari.

Umesto dodatnog overheada na pokušaje da se pokrije i manje bitan kod, mogu se uvesti integracioni testovi, da se vidi da li moduli međusobno lepo sarađuju. Ili npr. end to end testovi, koji jesu zahtevniji za setup, ali su takođe korisni, posebno u mikroservisnoj arhitekturi.

Čak bih i testiranje frontenda pre svrstao u neki end to end ili acceptance testing.
 
Poslednja izmena:
Да, ако радите као бацк-енд програмер, можда ћете морати да креирате јединичне тестове, као што ја радим у Ц# развоју и обично креирам јединичне тестове
 
Да, ако радите као бацк-енд програмер, можда ћете морати да креирате јединичне тестове, као што ја радим у Ц# развоју и обично креирам јединичне тестове
To ako ti traze, unit testove uglavnom po navici radis. Medjutim TDD jos ovde nisam video a radim preko 30 godina...
 
To ako ti traze, unit testove uglavnom po navici radis. Medjutim TDD jos ovde nisam video a radim preko 30 godina...
tdd je pristup / filozofija zidanja sistema. Treba stici do tog razmisljanja, a onda to i platiti, i ne samo to, nego i shvatiti sta ko radi i zasto. Ne mogu da tvrdim da znam kakvi se sistemi prave ovde ali me ni ne cudi mnogo da nije vidjeno. Na primer, programeri ni ne treba da pisu testove.
 
tdd je pristup / filozofija zidanja sistema. Treba stici do tog razmisljanja, a onda to i platiti, i ne samo to, nego i shvatiti sta ko radi i zasto. Ne mogu da tvrdim da znam kakvi se sistemi prave ovde ali me ni ne cudi mnogo da nije vidjeno. Na primer, programeri ni ne treba da pisu testove.
TDD podrazumeva da se pise u paru, jedan pise prvo testove, onda ovaj drugi implementira. No ono sto vidim je da se testovi pisu nakon
implementacije i to od iste osobe...
 
To ako ti traze, unit testove uglavnom po navici radis. Medjutim TDD jos ovde nisam video a radim preko 30 godina...
Требало би да испробате ТДД, јер када имамо пуно метода/функција, много је лакше открити проблем у коду
Чак и ако сте већ написали методе, требало би да додате неке тестове јединица за то, да бисте олакшали развој.
 

Back
Top