SDET: Dev, QA ili oboje?
SDET (Software Development Engineer in Test) je sve popularnija pozicija za softver testere sa razlikama u odnosu na tradicionalnu QA rolu. Za mnoge IT kompanije SDET rola je zapravo još nepoznanica ili nedovoljno precizno definisana, pa se najčešće drugačije i oglašava. U ovom tekstu želimo da je rasvetlimo.
SDET-i predstavljaju kombinaciju programera i testera i prvenstveno su odgovorni za automatizaciju test slučajeva, dizajniranje framework-a i alata za testiranje. Otuda je njihov background podjednako jak kako u programiranju tako i u testiranju softvera.
Da pomognemo da što bolje razumeš ovu rolu, u priču uvodimo Tamaru i Bojana koji rade na SDET pozicijama u kompaniji TeleSign.
Tamara je još student sa prilikom da do sada stečeno znanje o automatskom testiranju, bazama podataka i tehnikama testiranja primeni na realnim projektima, i kao medior SDET vrlo je radoznala o daljim mogućnostima za napredak. Zbog toga joj veoma znače iskustvo i saveti kolege Bojana, koji je razvojni put kao SDET u TeleSign-u započeo pre pet godina.
Vodič kroz ovu rolu odavde prepuštamo njima.
Koja su zaduženja SDET-a?
Tamara: Bojane, kako je tekao tvoj profesionalni put i šta kao senior SDET danas radiš u TeleSign-u?
Bojan: Karijeru sam započeo 2008. u kompaniji Routo Telecom kao SMS Support inženjer, a nakon akvizicije od TeleSign-a 2012, profesionalni put nastavio sam kroz Data tim, gde sam upoznao ostale proizvode i strukturu kompanije. Stečena znanja o SMS sistemima, bazama podataka, kreiranju izveštaja i vizualizaciji podataka, olakšala su mi prilagođavanje u Messaging razvojni tim, u kome sam 2017. krenuo kao SDET.
Kao senior danas obavljam poslove koji se odnose na dizajniranje i održavanje robusnih test automation framework-a, vođenje testnih aktivnosti na SMS platofrmi. Seniorska SDET pozicija podrazumeva i planiranje testnih aktivnosti za kompleksne backend sisteme, uključujući i planiranje testova i strategija, automatizacije testiranja, razvoj mock servisa i load/performance testiranje.
Tamara: Šta te je zadržalo na ovoj poziciji?
Bojan: Mogućnost rada u zanimljivom okruženju, napretka i profesionalnog usavršavanja, rekao bih. Prednost rada na ovoj poziciji je i testiranje i održavanje našeg proizvoda koji omogućava primenu različitih tehnologija, mogućnost rada u različitim programskim jezicima i svakodnevno nadograđivanje znanja. Pozitivnom utisku posebno doprinosi dobra atmosfera i harmonija koja vlada unutar tima kao i dobra međusobna saradnja između timova.
SDET i dev - odnos i saradnja
Tamara: Zašto si odlučio da radiš kao SDET a ne dev?
Bojan: Zbog same dinamike rada. Mislim da je u savremenom svetu razvoja softvera testiranje dinamičnije i zanimljivije od razvoja. Spektar alata za korišćenje prilikom testiranja, zatim, i to što sam za raziliku od dev-a uključen i nadgledam veliki broj komponenti sistema. Kao SDET morate biti u stanju da razmišljate i ponašate se kao programer, da razumete zašto su stvari urađene na određeni način i zašto to ima smisla. Takođe, SDET mora biti u stanju da razmišlja kao krajnji korisnik. Velika pažnja odlazi na detalje i razvijanje sposobnosti razmišljanja van okvira u cilju uočavanja potencijalne greške ili bug-a na kilometar udaljenosti.
Tamara: Da li bi SDET trebalo da bude unutar ili van tima, kakav je zapravo odnos dev-a i SDET-a?
Bojan: U TeleSign-u, SDET i dev su deo istog tima, što se pokazalo kao dobra praksa. Takav način organizacije timova nam omogućava dobro funkcionisanje, zajednički rad na planiranju, razvoju i testiranju softvera. Zajedničkim snagama rešavamo probleme i vodimo diskusiju na svim nivoima, a sve u cilju postizanja kvalitetnog i stabilnog proizvoda.
SDET sa ostalim članovima tima učestvuje u planiranju i samom procesu razvoja, daje ideje i sa dev-ovima prati code review. Takođe, SDET prati razvoj novih funkcija putem automatskih testova i brine o coding standardima koji se implementiraju u testni framework.
Kada je u pitanju organizaciona struktura, svaki od timova ima jednog ili više SDET-a, dok je SDET Lead zadužen za mentorisanje i uvođenje novih kolega u posao, kao i za rad na globalnim inicijativama koje utiču u manjoj ili većoj meri na sve timove.

SDET - razvoj veština i prilike za učenje
Tamara: Cilj nam je automatizacija svih delova sistema, može li se automatizovati u potpunosti?
Bojan: Vodimo se procedurom da task nije gotov dok se u potpunosti ne istestira, što podrazumeva i automatizaciju. Kako imamo svoje proizvode, imamo slobodu odabira tehnologija, alata i testnih framework-a. S obzirom na to da nismo outsourcing kompanija, ne suočavamo se sa kratkim rokovima, već nam je glavni fokus na kvalitetu i temeljnosti u radu.
Tamara: Koji je najizazovniji projekat na kojem si radio?
Bojan: Svaki projekat donosi nove izazove i nova iskustva. Među najizazovnijim projektima bih izdvojio rad na AWS servisima vezan za proces automatizacije SMS delivery report-a poslatih od strane SMS platforme na AWS. Proces uključuje kreiranje i konfigurisanje tri AWS stack-a: AWS SNS Topic, AWS Lambdu pretplaćenu na topic koja preuzima, parsira i upisuje poruke u DynamoDB (NoSQL) bazu. U delu testnog framework-a dodat je aws-sdk kako bi se uz pomoć dostupnih funkcija kreirali AWS DynamoDB klijent i omogućilo mapiranje AWS DynamoDB record-a u definisane Java klase. Ne bih izostavio izazove i iskustva stečena prilikom rada na kreiranju HTTP i gRPC klijenata, procesu sinhronizacije testova između testnog framework-a i TestRail-a, koje je takođe doprinelo i mom napretku u radu kao senior SDET.
Tamara: Koja znanja i veštine bi izdvojio kao potrebne da bi se postao senior SDET?
Bojan: Potrebno je dobro vladanje biznis modelom kao i dobro poznavanje tech stack-a potrebnog za automatizaciju sistema, što uključuje i dobre programerske veštine.
Tamara: A kakve su mogućnosti napredovanja za SDET-a?
Bojan: SDET pozicija omogućava napredovanje, rad i korišćenje novih tehnologija i alata za testiranje. Neke od mogućnosti su razvoj i doprinos poboljšanju testnog framework-a, pristup i manipulacija podataka kroz različite tipove baza podataka, praćenje procesa i administracija servera koji host-uju naše aplikacije, učenje CI/CD procesa. Može da se napreduje i kao developer i kao arhitekta za dizajniranje testnih rešenja za automatizaciju. Proces napredovanja od juniorskih do seniorskih pozicija se odvija u okviru tima, a nakon toga napredak ide ka višim pozicijama kao što su Principal Engineer, Team Leader, itd.
Tamara: Koje sve tehnologije koristiš u radu?
Bojan: Testne framework-e, kao i mock servise pišemo u Java-i i Python-u. Praktikujemo TDD razvojnu praksu, kao i BDD pristup putem Behave i Cucumber softverskih alata. Većina naših servisa komunicira putem API-ja. Testiramo RESTful i gRPC servise i imamo mogućnost boljeg razumevanja arhitekture HTTP protokola i mikroservisa kroz njihovu implementaciju. Koristimo AWS cloud rešenja za razvoj i testiranje, Docker za kreiranje kontejnera i aplikacija zasnovanih na kontejnerima, CI/CD pipelines. Postoji integracija između naših servisa, pa timovi dosta međusobno sarađuju što stvara mogućnosti i za upoznavanje drugih proizvoda kompanije.
Tamara: Pored funkcionalnih testova, veoma se ulaže i u nefunkcionalno testiranje?
Bojan: Tako je. Obaveza SDET-a je da iz svih uglova testira naše proizvode, performanse i prati kako se sistem ponaša pod određenim opterećenjem. Load i performance testove kreiramo i održavamo kroz JMeter, u kombinaciji sa AWS distribuiranim load test engine-om, kako bismo na efikasniji način pratili i merili performanse naših servisa pre puštanja u saobraćaj.

Savet za nove kolege
Tamara: Koji savet imaš za mene, kao i druge ambiciozne SDET-e na početku karijere?
Bojan: Iskoristi mogućnosti koje donosi rad na SDET poziciji da proširiš i ovladaš novim tehnikama testiranja, učestvuješ u razvoju i dizajniranju testnog framework-a i upoznaš se sa servisima drugih timova. Takođe, kroz ovakav rad i međusobnu saradnju možeš da nadograđuješ znanja u oblasti nefunkcionlanog testiranja u cilju boljeg praćenja stabilnosti sistema.
Tamara: Na šta si sve ponosan u svom radu u TeleSign-u?
Bojan: Ponosan sam na svaki uspešno otkriven bug, u potpunosti automatizovan proizvod, “zelene” testove i brzinu izvršavanja samih testova. Posebnu satisfakciju mi predstavlja rad na projektima koji podrazumevaju nove trendove u oblasti programiranja i automatizacije sistema kao i činjenica da svojim radom mogu da doprinesem boljem funkcionisanju, stabilnosti i kvalitetu SMS platforme.
Zainteresovan si za poziciju SDET-a ili rad u TeleSign-u? Ako želiš da se oprobaš u radu na ovoj ili nekoj drugoj roli, pogledaj profil kompanije na Joberty platformi, gde ćeš pronaći i sve trenutno otvorene pozicije koje nude.