Citat:
Branimir Maksimovic:
Ajde da odgovorim Nedeljku i tebi u paketu. Ti testovi koje piše developer, su samo provera da osnovne stvari rade kako je predviđeno, nikako nešto što pokriva sve slučajeve. Naravno pišeš neku funkciju pa i test za tu istu, ali bez qa nema ništa od otkrivanja bagova. Što se tiče FOSS-a, dobro znam da bar 5% korisnika ima neki problem nakon svakog apdejta, i da mnoge stvari ne bi prošle da postoji qa. Baš u kernelu prolaze takve regresije, da drajv er ne radi ili da je potreban patch da nekom nešto proradi... generalno, čak i ako se plaća developer, nema se para za qa. Zbog toga enerprize, android, ruter firmware i slično laguju i po više godina za aktuelnim verzija ma...
Bane, nije cilj da se nema QA, naravno da treba QA. Naravno da treba i neki "Bane" koji radi code review. Sve to treba. I naravno da i pored toga moze da se nadje bug, koji je glup ali gadan....
Ja sam imao bug koji sam nasao coveku posle analize kako radi JWT token, jednostavno lik je imao 5 sajtova i na svima isti secret. Fora je sto je sajt 1 imao 20x vise clanova nego sajt 3 - i onda ti lepo otvoris nov nalog na sajtu 3, uzmes token i udjes na sajt 1 sa necijim tudjim nalogom, ali istim ID-em.... Ovo nijedan alat nece nikad da nadje - jer nema veze izmedju sajtova. Ne moze. Bug nije bug u kodu, vec u ljudskoj logici. Ne deluje bitno, ali sajtovi su bili EU, pa je to znacilo da korisnik vidi podatke drugog korisnika, pa uskace GDPR... :) Znas li zasto je bug pronadjen? Zato sto smo imali proces i zato sto smo pricali o tome i zato sto sam ja slusao nesto sto nije imalo direktne veze, ali smo imali stav "ako vidis bug pricamo o tome". Dimkovic moze, ako ga ne mrzi, da objasni koliko "user X vidi privatne podatke user-a Y" boli firmu koja je deo EU, sad kad je GDPR u igri....
Ponovo, bitan je proces. Ako dev X pise kod i zna da ce neki junior da napravi testove, da ce QA da napravi druge testove i da ce "Bane" da radi review - on ce da vodi malo racuna. Ako mu kazes "slobodno odvoj vreme da pises bolji kod" - on ce to i da radi. E to je fora.
Ako mu kazes "ma ti si do jaja baja, mnogo si pametan, samo cepaj commit i ne brini" - onda on pise "1337 c0d3", a ne brine o bagovima. Ako mu das da on "misli" sta je realno a sta ne, onda ce on da misli sta je realno za njega - a ne da li to boli end usera, ili da li neki Security baja vidi sebi ufur... zato sad i guraju DevSecOps pricu gde se security radi od day 1, ukljucujuci i pisanje testova za security, i rucno security testiranje i security team ukljucen u projektovanje.... Evo, ovaj konkretan grub bug: Prilicno sam siguran da niko nikad u realnom zivotu nije imao buffer overflow u grub-u i da je grub pukao zbog toga. Neki dev tu ne vidi veliki problem - sto bi mislio o necemu sto se ne kvari... Neki security specialist tu vidi rupcagu. :)
Dodatno, ono sto je bitno je: U sistemu gde sve ide manuelno, proces izgleda ovako:
- PM pise task developeru
- Dev pise kod, radi commit
- Dev pise note u Jira-i za PM-a
- PM pise task Ops-u da deploy-uje nov build na test env
- Ops radi deploy
- Ops pise note PM-u
- PM pise task QA-u
- QA testira, nalazi bug
- QA pise note PM-u.
- PM pise task dev-u da ispravi bug
U medjuvremenu proslo dva dana (minimum, mozda i vise), dev vec radi nesto drugo. On sad prekida to ili ne? Haos.
Uporedi to sa:
- Dev uradi commit i push
- Dev ode po kafu i da zapali dok prodje pipeline
- Dev dobije error koji moze odma da popravi, ili mu pipeline prodje.
- Dev trazi MR, ode na rucak
- Dev dobije od "Baneta" sta da ispravi za pola sata ili sat.
Ako ovo resi samo 50% problema, ustedeo si BRDO vremena. Again, code review: Ultra bitan. QA takodje. Ali testove pomazu.
Vodi racuna: QA pise neke testove. QA svaki put kad potvrdi bug pravi test koji testira tacno taj scenario. QA pravi test koji testira sve klasicne user scenarije. QA pravi testove koji njima imaju smisla. Ne mora QA ni da programira, koristi alat koji snima kliktanje i onda se radi replay.... :) Bitno je da QA zna kako radi softver i zna da reprodukuje bugove. Naravno, nisi testirao sve, ni blizu. Ali, ako spojis dev-ove koji testiraju da sve radi kao sto misle da treba, i QA koji testira funkcionalnost, onda uglavnom radi OK... I dalje nije sjajno, i dalje imas bugove, da. Ali manje.
Please do not feed the Trolls!
Blasphemy? How can I blaspheme? I'm a god!'