Mesto i uloga testiranja u razvojnom ciklusu softvera
U prethodnom tekstu, analizirali smo osnovne karakteristike dve važne metodologije razvoja softvera – u pitanju su Waterfall i Agile. Sada ćemo videti detaljnije gde je mesto testiranja u obe ove metodologije, kao i zbog čega uloga testiranja pravi važnu razliku u načinu na koji se softverski proizvodi posmatraju i razvijaju u okviru ove dve metodologije.
Na kursu SixCube University-ja steći ćeš sveobuhvatno znanje o različitim pristupima testiranju, različitim ulogama koju QA može imati u razvojnom ciklusu, kao i sva ostala znanja neophodna da započneš svoju QA karijeru.
Waterfall i Agile
Da se ukratko podsetimo najvažnijih zaključaka iz prethodnog teksta. Prvo, sam redosled razvojnih faza ne razlikuje se naročito u dve metodologije. Ipak, ključna razlika između ova dva pristupa je ta što Agile metodologija podrazumeva da se ove faze neprekidno ponavljaju, istim redosledom, u kratkim ciklusima zvanim „sprintovi“.
Drugo, napomenuli smo da je jedna od najvećih mana Waterfall-a ta što ispravljanje grešaka i implementiranje novih zahteva može da bude izuzetno komplikovano i skupo. U nastavku teksta, videćemo kako promene u pristupu testiranju mogu doprineti rešavanju ovog problema.
QA u Waterfall-u
Linearno smenjivanje faza
Dakle, Waterfall metodologija pristupa fazama razvoja linearno i sekvencijalno. Jednom kada se jedna faza završi, prelazi se na sledeću bez povratka.
Podsetimo se naše analogije sa skejtbordom i automobilom iz prethodnog teksta. U Waterfall modelu, praktično do samog kraja projekta nemamo nikakvu, pa čak ni pojednostavljenu verziju finalnog proizvoda. Kada razvijemo točak za naš automobil, pa onda još jedan točak, pa onda vrata ili sedišta, imamo samo delove proizvoda koji će kasnije biti sklopljeni, ali ne i funkcionalan proizvod.
To znači da nije moguće ni testirati celovit proizvod kao takav, jer npr. koliko god temeljno ispitivali jedan točak kao izolovan element, to nam ne govori dovoljno o tome kako će se on ponašati u momentu kada je „prikačen“ za automobil.
Testiranje na kraju procesa
Zbog toga, po Waterfall metodologiji, mesto testiranja je na samom kraju procesa. Nakon završetka faze razvoja, a neposredno pre puštanja softvera u upotrebu, ulazi se u fazu testiranja. U ovoj fazi, QA timovi sistematski pretražuju softver kako bi identifikovali greške. Tek nakon što softver prođe kroz sveobuhvatno testiranje i kada su svi identifikovani problemi adresirani, softver se prebacuje u fazu implementacije i pušta u upotrebu.
Ovaj pristup testiranju se verovatno poklapa sa intuitivnim pogledom na bilo koju vrstu testiranja, a ne samo softverskog. Zvuči naizgled logično – kada je proizvod gotov i u potpunosti razvijen, tek tada se može sveobuhvatno testirati i tek tada se mogu izvlačiti konačni zaključci.
U međuvremenu se eventualno može raditi ograničeno i nekompletno testiranje, tzv. unit testing, što bi u našoj analogiji značilo da možemo testirati da li se npr. točak vrti, kako reaguje na udarce ili da li je lako zapaljiv.
Važnost integracije
Ipak, ono što još uvek ne možemo testirati je njegova interakcija sa drugim delovima sistema, kao što su vešanje, kočnice, ili pogonski sistem. Ne možemo npr. testirati prijanjanje, obrtni moment, upravljivost, stabilnost, kao ni ponašanje u različitim vremenskim uslovima ili pod različitim opterećenjima.
U softverskom svetu ovo znači da se jedna komponenta može u potpunosti istestirati tek kada je integrisana sa ostatkom softverskog sistema. Ali, u Waterfall modelu tada već može biti kasno da se pronađene greške isprave bez velikih troškova, ili da se isprave uopšte.
QA u Agile-u
QA kao ponavljajuća aktivnost
S druge strane, u Agile metodologiji kreirani deo se pridružuje prethodno kreiranom i testira se odmah. U integrisanoj komponenti identifikuju se problemi (ako ih ima), i omogućava se dalje unapređenje proizvoda. Takođe, testira se i deo kome je komponenta pridružena i potvrđuje se da novi deo sistema nije poremetio ono što već postoji.
Na kraju prvog sprinta dakle imamo skejtbord, za koji je ideja da vremenom postane automobil. Skejtbordu, u sledećem sprintu, možemo proširiti dasku, pa u sledećem povećati točkove, dodati vrata i krov, pa zatim umesto baterije ubaciti akumulator, i tako dalje. Vremenom, proizvod dobija nove i proširene funkcionalnosti i sve više se približava krajnjim korisničkim zahtevima.
Pošto je, po Agile metodologiji, razvoj iterativni, ponavljajući proces, tako je i testiranje ponavljajuća aktivnost. Ono se i dalje nalazi praktično na kraju ciklusa, ali to ne znači da se nalazi na samom kraju čitavog projekta (kao u Waterfall metodologiji), već na samom kraju sprinta, tj. „miniciklusa“, koji se ponavljaju svakih nekoliko nedelja. Kroz ovaj proces, proizvod se kontinuirano poboljšava i nadograđuje.
Agile i neprekidno testiranje
Zbog svega ovoga, Agile metodologija može lako inkorporirati princip neprekidnog testiranja (continuous testing). Ono podrazumeva da se testiranje odvija kontinuirano, tokom svakog sprinta, omogućavajući ranu identifikaciju i ispravku grešaka.
Jedna od glavnih prednosti neprekidnog testiranja je što ono omogućava stalnu proveru kvaliteta proizvoda. Testovi se izvršavaju redovno kako bi se osiguralo da nove funkcionalnosti ne unose greške i da postojeće funkcionalnosti rade ispravno. Ovaj pristup omogućava brzu reakciju na povratne informacije i ispravke pre nego što problemi postanu kompleksni i skupi za rešavanje. Na taj način, smanjuje se rizik od toga da se veliki i nagomilani problemi otkriju previše kasno, što je čest problem sa Waterfall metodologijom.
Neprekidno testiranje omogućava veću fleksibilnost projekata i timova. U Agile okruženju, razvoj i testiranje praktično teku paralelno, omogućavajući stalno prilagođavanje i optimizaciju proizvoda.
Dalje, ovaj pristup testiranju omogućava stalnu i bezbednu integraciju novih nadogradnji, čime se osigurava da je svaka verzija proizvoda brzo isporučena, stabilna i spremna za upotrebu.
Neprekidno testiranje podržava Agile principe pružajući stalne povratne informacije, što dugoročno poboljšava kvalitet softvera i omogućava timovima da se brzo prilagođavaju promenama. Sve ovo je od suštinskog značaja u dinamičnom poslovnom okruženju gde su brze reakcije i sposobnost adaptacije ključne za uspeh.
Šta nas čeka u budućnosti?
Sa napretkom tehnologije evoluiraju i metode razvoja i testiranja. Sposobnost prilagođavanja metodologija testiranja za podršku različitim stilovima razvoja povećava efikasnost razvoja i osigurava da softverski proizvodi ostaju pouzdani i konkurentni.
U budućnosti, integracija naprednih alata za automatizaciju i intenzivnija saradnja između razvojnih i testnih timova mogla bi dalje unaprediti ovaj proces. U ovom kontekstu, QA će biti ključni faktor koji ne samo da štiti poslovanje od tehničkih grešaka već i omogućava softveru da brzo napreduje i održi korak sa promenama u tehnologiji i tržišnim zahtevima.
Želiš da doprineseš evoluciji QA industrije u eri intenzivnog napretka softverske tehnologije? Prijavi se na naš kurs.

