ALM – Testiranje i upravljanje kvalitetom

mainTestiranje i upravljanje kvalitetom spada u prakse ALM-a koje se u mnogim razvojnim timovima olako shvaćaju. Testiranje se još uvijek gleda kao manje bitan korak u razvoju, onaj koji nam oduzima značajni dio vremena, a ne kao sustavni proces koji garantira stabilnost i uspjeh aplikacije.

Upravljanje kvalitetom neizbježni je dio razvoja aplikacije i neizostavna praksa ALM-a. Iako je korištenje sustava za automatizaciju i upravljanje testiranjem još uvijek jedna od najmanje korištenih ALM praksI, u zadnje vrijeme vidljiv je trend ulaganja u takve sustave i njihovo uvođenje u razvojne timove. S jedne strane razlog tome leži sigurno i u činjenici da su se mnogi timovi već opekli zanemarivanjem testiranja, pa sada traže pomoć alata i sustava za upravljanje kvalitetom kako se neuspjesi ne bi ponovili. S druge strane na tržištu konačno i imamo takve alate. Alate potpuno prilagođene i namijenjene procesu manualnog i automatiziranog testiranja i upravljanja testovima. Neki od tih sustava mogu se koristiti potpuno odvojeno od ostatka ALM alata. Primjer takvog sustava je HP Quality Center . Riječ je o vrlo kvalitetnom alatu za sve vrste upravljanja testovima. Prilično je dugo zastupljen na tržištu i stekao je ugled zrelog sustava za testiranje. S druge strane Microsoft Test Manager ili pak IBM Quality Manager, noviji su alati i u nekim segmentima još zaostaju za HP Quality Centerom, ali je njihova velika prednost što su dobro uklopljeni u ostale sustave ALM-a. Takva integracija nam na primjer omogućuje vrlo jednostavno povezivanje na sustav za build, tako da se automatski testovi izvršavaju kao dio buildprocesa. Također, prednost toga je i jednostavnija mogućnost izvještavanja o testovima i njihova povezanost sa ostalim radnim stavkama. Ne bi li bilo korisno kada bismo za svaki dio naše aplikacije mogli dobiti podatak o količini testova koji ga testiraju, o tome kolika je uspješnost tih testova, koliki postotak svakog svojstva je pokriven takvim testovima te kada bi takve informacije mogli pratiti vremenski preko dostupnih grafova i drugih izvještaja? Upravo to moguće je postići integracijom testiranja u sustav ALM-a.

Neka institucije rade svoj posao.

Paradoks odgode testiranjaTestiranje je korisno. Svi će se jednoglasno složiti s tom tezom. Slično kao što se svi slažu da je zdravo svakodnevno vježbati, ne jesti masno, puno se kretati i tako dalje. Međutim malo je onih koji se toga pridržavaju. Zašto? Kada govorimo o testiranju, najčešće opravdanje je da se za to nema vremena. To je zapravo paradoks jer upravo je zanemarivanje ili štednja na kvaliteti i testiranju dugoročno je uzrok najvećih kašnjenja u razvoju aplikacija. Testiranje se doživljava kao vremenski intenzivan proces. Ako se testiranje svede na isključivo manualni posao, ono može uzeti daleko više vremena od samog razvoja. Rijetko koji razvojni tim može si to priuštiti. Međutim, korištenjem kvalitetnih alata za testiranje, priča je sasvim drugačija.

Testiranje se u modernih razvojnim procesima ne smatra odvojenom fazom razvoja već paralelnim procesom koji počinje samim početkom rada na projektu i prati cijeli razvojni proces do njegovog završetka. U takvom okruženju ALM alati omogućuju kontinuirano upravljanje kvalitetom i praćenje uspješnosti testiranja. Automatizacijom testiranja ne samo da se smanjuje mogućnost greške i krivog razumijevanja testera, nego se omogućuje da se dobro razrađeni testovi izvode svakodnevno pa i češće, a da to ne oduzima vrijeme. Ako takvih testova ima puno, idealno je da se oni izvršavaju noću. Dok razvojni tim ne radi, pogon ne staje. Dan je vrijeme za razvoj, a noć vrijeme za automatske testove. Tako razvojni tim već ujutro dočeka e-mailsa automatskim izvještajem o tome što je noćna smjena radila dok su oni spavali.

Borba za testere – Microsoft, HP, IBM

Najveći rivali u ALM-u ujedno su i najveći rivali u softverskoj industriji: IBM i Microsoft. Kada je riječ o testiranju, u borbu se uključio još jedan veliki igrač – HP. Što nam to nude IBM Rational Quality Manager, HP Quality Center i Microsoft Test Manager?

Microsoft Test ManagerMicrosoft Test Manager sasvim je novi alat u obitelji Microsoftovih ALM alata. Odvojen je od Visual Studija i prilagođen je u potpunosti testerima i odjelu osiguranja kvalitete aplikacije. Intuitivno i moderno korisničko sučelje na jednostavan način odvaja tri osnovna dijela upravljanja kvalitetom: planiranje, praćenje i izvršavanje testova. Među planiranje spada definiranje testova i testnih koraka, grupiranje testova u skupine i njihovo povezivanje s pripadajućim radnih stavkama. Praćenje testiranja nudi nam osnovnu statistiku broja testova, grupiranih po skupinama ili grupiranih po svojstvima aplikacije koju testiraju. Također vidljiva je informacija o uspješnosti izvođenja pojedinih testova ili grupe testova. Središnje svojstvo alata je izvršavanje testova. Omogućeno je pokretanje već definiranih testova bilo da je riječ o manualnim ili automatiziranim testovima. Kad je riječ o manualnim testovima, iako je za njihovo izvršavanje potrebna ljudska interakcija, mnogo toga učinit će i sam alat. Test Manager omogućuje prikupljanje raznih dijagnostičkih informacija tijekom izvršavanja testova. Od automatskog prikupljanja sistemskih i debug informacija do mogućnosti snimanja videa. U slučaju da tester tijekom testiranja otkrije bug, svi prikupljeni podaci mogu se pridružiti opisu buga te na taj način minimizirati mogućnost da se bug kod programera ne može ponoviti. Ponavljanje greške, odnosno buga, često je više od pola posla u rješavanju istog. Test Maneger posebnu vrijednost daje testiranju u virtualnom okruženju. Ako se testiranje odvija u takvom okruženju, on nam omogućuje i da cijelo stanje (snapshot) virtualnog okruženja pridružimo kao dodatak otkrivenom bugu i na taj način dajemo na raspolaganje programeru u potpunosti isto stanje kakvo je imao tester u trenutku njegovog otkrivanja. Krilatica cijelog Microsoftovog sustava za testiranje je „no more not repro“, što će reći nema više izvlačenja programera da ne mogu ponoviti grešku.

HP Quality CenterHP Quality Center skup je web alata za osiguranje kvalitete i upravljanje testiranjem. Osim standardnih svojstava za upravljanje testiranjem aplikacija, HP nudi i testiranje samog procesa, zatim upravljanje kvalitetom na bazi upravljanja rizicima. Također, HP nudi module koji pored testiranja generičkih aplikacija, dodatna svojstva nude kod testiranja specifičnih sustava. HP Test Impact modul za SAP aplikacije posebno je namijenjen testiranju SAP aplikacija i ispitivanja utjecaja tih aplikacija na cjelokupni sustav. Za razliku od Microsoftovih i IBM-ovih rješenja koja se oslanjanju na vlastiti ALM sustav te definicije testiranja povezuju sa već postojećim sustavima za upravljanje zahtjevima i sustavima za upravljanje verzijama, HP nudi takve podsustave unutar samog HP Quality Centera. Takav pristup ima svoje prednosti, ali i mane. Ako je testiranje dio cjelokupnog ALM sustava u razvoju aplikacija onda nam je prihvatljiviji ALM sustav kakav nude Microsoft i IBM gdje se testiranje ne odvaja od ostatka sustava. Ako nam pak treba isključivo alat za upravljanje testiranjem, tu je HP u nekim segmentima još uvijek u prednosti. Razne mogućnosti prilagođene specifičnim zahtjevima različitih okolina čine ovaj sustav zrelijim. HP-ov sustav za testiranje dosegao je verziju 11. IBM i Microsoft u usporedbi s time još su u dječjim pelenama.

IBM Quality ManagerIBM Quality Manager integrira se kao odvojeni alat u IBM Rational Team Concert. Kao i HP-ov sustav riječ je o skupu web alata. Za razliku od HP-ovog riješenja, IBM QM nudi puno više mogućnosti prilagodbe, kako sa strane korisničkog sučelja, tako i sa strane prilagodbe procesa. IBM omogućuje kreiranje preglednih ploča (dashboard) za brzi uvid u stanje projekta. Iako HP-ov sustav djeluje profesionalnije, IBM, a tako i Microsoft nude bolje korisničko iskustvo. Za razliku od Microsoftovog sustava, HP-ov i IBM-ov sustav su web aplikacije. Web omogućuje testerima da koriste sustav bez potrebe samostalne instalacije dodatnih klijentskih aplikacija. Instalacija samih klijenata je u tom smislu jednostavnija, a i dostupnija iz različitih platformi. Međutim, iako klijentima ne treba dodatni instalacijski medij za klijentske alate, to nikako ne znači da im ne treba dodatna licenca, štoviše kada su u pitanju licence Microsoft je još uvijek povoljniji, iako definiranje cijene, odnosno potrebnih licenci za ALM sustav pa tako i za podsustav za testiranje posebna je nauka te ovisi o jako puno faktora. Točnu usporedbu cijena moguće je dobiti tek kada se usporede konkretne ponude za konkretni zahtjev.

Kada se usporede ova tri trenutno vodeća sustava za testiranje, može se reći da je HP još uvijek po skupu funkcionalnosti predvodnik ovog segmenta ALM-a. S druge strane, IBM i Microsoft pokazuju veću brzinu napredovanja. HP-u svakako nedostaje podrška sveobuhvatnog i integriranog ALM sustava kakvog nude IBM i Microsoft. I jedan i drugi uspjeli su integrirati testiranje u ostatak ALM-a. Kada govorimo o skupu funkcionalnosti u užem smislu HP-ov sustav je bez daljnjega, za sada, najjači. Ako pak tražimo cjelokupno integrirano ALM rješenje, onda ćemo vjerojatno birati između dva najveća rivala softverske industrije Microsofta i IBM-a.

Lab Management – okruženje iz epruvete

Microsoft Lab ManagementUpravljanje i održavanje virtauliziranih testnih okolina jedan je od najsloženijim aspekata testiranja. Prije puštanja većih sustava u produkciju nužno je integracijsko ili end-to-end testiranje. Za takvo testiranje potrebno nam je testno okruženje. Ono mora biti što sličnije produkcijskom kako bi testiranje bilo što realnije. Također takvo okruženje treba biti što dostupnije razvojnom timu, kako bi se u ranim fazama razvoja uočile eventualne greške koje se nisu mogle uočiti na razvojnim radnim stanicama. Idealno, testno okruženje sa trenutnom verzijom softvera trebalo bi razvojnom timu biti uvijek dostupno kako bi u svakom trenutku svaki novi dio sustava mogli testirati u realnim uvjetima. Testno okruženje po konfiguraciji slično produkcijskom i još k tome takvo okruženje svakodnevno održavano sa najnovijom verzijom iz razvoja – to zvuči kao nemoguća misija. Priprema takvih testnih okruženja najčešće je zahtjevniji posao od samog testiranja. Osim, ako ne postoji alat koji će taj posao odraditi umjesto nas ili nam barem pomoći da sami taj posao napravimo efikasnije. I Microsoft i IBM sustav imaju alat namijenjen upravo tome. Kod IBM-a to se zove IBM Rational Test Lab Manager, a kod Microsofta Lab Management koji se na serverskoj strani integrira sa Team Foundation Serverom, a na klijentskoj sa Test Manger alatom za testiranje. Koristeći Lab Management i Test Manager članovi tima mogu vrlo lako i brzo izgraditi cjelokupno testno okruženje, bez obzira da li je riječ o jednom ili više virtualnih strojeva od kojih se sastoji. Okruženja se kreiraju na osnovi unaprijed pripremljenih predložaka. Takva okruženja u svakom trenutku se mogu vratiti u početno stanje i tako postići ponovljivost postupka testiranja. Kroz mogućnost dodavanja snapshota cijelog testnog okruženja kod prijave buga, Lab Management dodatno poboljšava komunikaciju testera i programera i garantira ponovljivost buga kod programera. Lab Management se dodatno može integrirati sa sustavom za automatizaciju builda i tako omogućiti takozvani „Build-Deploy-Test workflow“:

  • Izrada nove verzije (builda)
  • Automatski odabir virtualnog testnog okruženja na kojem želimo testirati tu novu verziju
  • Vraćanje okruženja u odgovarajuće stanje (snapshot)
  • Instalacija nove verzije aplikacije ili cijelog sustava u testno okruženje
  • Izrada snapshotacijelog okruženja (jedna ili više virtualnih mašina). Spremljeno stanje može se naknadno koristiti za testiranje upravo te verzije sustava
  • Automatizirano izvršavanje svih definiranih testova na pripremljenom okruženju
  • Automatsko povezivanje izvršenog buildasa radnim stavkama riješenim u isporučenoj verziji
  • Izrada izvještaja o rezultatima builda i svih izvršenih testova
  • Slanje automatskog maila s kreiranim izvještajem svim zainteresiranim korisnicima

Ovakav scenarij šlag je na torti ALM-a. Ovakvom integracijom automatskog testiranja s lab menadžmentom, buildom, sustavom za upravljanje radnim stavkama te sustavom za izvještavanje izvlačimo sve prednosti postavljenog ALM sustava. Svaki navedeni pojedinačni dio ALM-a, daje dodatnu kontrolu i povećava kvalitetu razvoja softvera, ali tek korištenje svih dijelova sustava u cijelini kao što to ćini opisani scenarij daje cijelom razvojnom procesu ono što je i cilj ALM- a: transparentnost i efikasnost razvoja.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>