Tarkvaraarendus on väga kallis teenus ning tarkvara testimine nii protsessi vahepeal kui ka lõpus võib vähendada oluliselt arendamise lõplikke kulusid, ütleb tarkvarakvaliteedi ja testimisalaseid teenuseid pakkuva ASA Quality Services OÜ tegevjuht Kristjan Karmo.
Miks on vaja lisaks arendamisele tarkvara ka testida?
Iga tarkvara arendamisel tehakse tarvilikud testimised kas tellija, arendaja või testimisteenust pakkuva ettevõtte poolt. Paraku ei pruugi tellija märgata kõiki vajalikke IT-alaseid nüansse, arendaja samas ei pruugi tunda tellija äri nii hästi ning lisaks on tal arendamisel mängus omad huvid – et projekt vastu võetaks. Seetõttu on keerukamate arenduste puhul mõistlik tellida testimisteenus, sest täna parandamata jäänud aps võib homme sadades kuni tuhandetes kordades kallimalt kätte maksta. Tarkvaraarenduse testimine on sarnane ehitusjärelevalvega: tellija ei pea omama kompetentsi ega aega-viitsimist sellega tegeleda. Selleks on olemas spetsialistid.
Kes testimisteenust pakuvad?
Testimisteenust pakuvad paljud arendusettevõtted ja eraldi selleks loodud testimisele spetsialiseerunud firmad. Viimaste puhul on eeliseks nende sõltumatus, objektiivsus ning kogemused erinevates ärivaldkondades. Vastavalt sektori keerukusele ja projekti ajakavale on näiteks meie firmas ette nähtud projekti sisseelamiseks kaks nädalat kuni kuu. See eeldab väga intensiivset suhtlust tellija ja arendajaga ning õigetele inimestele õigete küsimuste esitamist.
Kui levinud on täna Eestis tarkvaratestimise tellimine?See on individuaalne – on ettevõtteid ja riigiasutusi, kes teavad ja saavad aru testimise vajalikkusest, ning on teisi, kes pole testimise sisseostmise võimalusest kuulnudki. Vahel üritatakse testijatele suruda peale samasugust lepingut nagu arendajate puhul, mõistmata, et testija ei saa vastutada arenduse funktsioneerimise eest, vaid tema töö on leida üles vead, pöörata neile tähelepanu ning vastavalt kokkuleppele aidata välja mõelda lahendus vea kõrvaldamiseks.
Mida on testimise tellimisel oluline tähele panna?
Kõige olulisem on, et päästerõngast ei saaks veskikivi! Lepingu sõlmimisel arutage täpselt läbi, milliseid algdokumente on vaja arendajatele, milliseid testijatele ning mida arendusest oodatakse.
Kui leping sõlmitakse vaid ühekordseks, niiöelda esimese ringi testimiseks, eeldab see 100% veatult tehtud arendust. Selliseid praktiliselt ei eksisteeri. Kui lepingus pole sätestatud mitut testimisringi, peab tellija iga järgmise eest eraldi maksma. Seetõttu oleks mõttekas sellele mõelda juba alguses. Näiteks võib lepingusse kirjutada, et esimesed kaks ringi testimist on tellija poolt ning ülejäänu maksab kinni juba arendaja. Nii on ka neil suurem vastutus ja huvi, et projekt liialt venima ei jääks.
Kuidas testimine toimub?
Testimise korraldamiseks on mitu viisi: esimese puhul on kompetents ehk testijad olemas maja sees ning vajadusel hangitakse väljast mõned testijad lisaks. Seal ettevõttes teatakse, miks testimist on vaja ning juhitakse ise projekti ja testimist.
Teine võimalus on võtta väljast testijuht, kes koordineerib testimisel ettevõtte äripoole töötajaid. Samas võib igapäevaselt muid töid tegevate inimeste motiveerimine testitiimi liikmetena osutuda keeruliseks, kuid see euro, mida täna testimisele ei kuluta, võib homme sajakordselt kätte maksta.
Kolmandal juhul palgatakse väljast terve testimeeskond, kes suhtleb aktiivselt arenduspartneritega. Aga ka siin on oluline majasisene tugi, kes mõnel juhul on lõpuks nii välja koolitatud, et saavad ka ise testimisega hakkama.
Kas testija töö on pakkuda ka leitud probleemidele lahendusi?
Oleneb vajadusest: rangelt võttes on testija töö vea otsimine, aga kogenum testija suudab juurde öelda, miks see probleem tekkis, mis äririskid sellega kaasnevad ning selgitada, milline lumepall selle vea parandamata jätmisel veerema võib hakata. Kuigi tehniline parandamine on siiski arendajate rida, oskab testija sageli äripoolele välja pakkuda alternatiivseid kasutusvõimalusi – nn „workarounde“ – et veasituatsiooni selle parandamiseni vältida.
On olnud juhuseid, kus meie testija on leidnud probleemi, mille arendaja on märkinud madala prioriteediga veaks. Testija töö on probleemi süvendatult vaadelda ning vajadusel selgitada, et see on tegelikkuses väga ohtlik aps.
Kui palju võivad tarkvaravead maksma minna? Rääkides välismaailmast, on lähialaloos enim kõmu tekitanud New Yorki börsil tarkvaraveast tulnud „segadus“ 140 aktsiaga, mis tähendas Knight Capitalile 440 miljoni dollari suurust kahjumit. Eestis tarkvaravigadest tekkinud kahjusid reeglina veel väga ei arvutata – ebaõnnestunud projekt neelatakse alla või lükatakse lihtsalt kõrvale. Meil peetakse IT-arenduse läbikukkumist enamasti mainekahjuks, kuid tegelikult on tegemist eskaleeruva kaotusega: öeldakse, et kui vea leidmine ja kõrvaldamine enne arenduse kasutuselevõttu maksab ühe ühiku, siis hilisem „remont“ läheb maksma juba 100-1000 ühikut.
Riskide hindamine on oluline – alati tuleb arvutada, mida see väike apsakas tulevikus ettevõttele võiks tähendada. Tarkvaravead võivad olla nii ärikriitilised kui ka tähendada inimeludega „mängimist“. Tõsi, testimisel ei looda midagi käegakatsutavat, aga see annab infot, mis on riskid ning aitab otsustada, kas ja kuidas edasi minna.
Kui palju testimisele raha kulutada?Kirvereegel on 25% arendusprojektist ehk iga kolme arendaja kohta peaks palkama ühe testija. Eks see oleneb igast projektist ning ettevõttest ja tema toodetest. Mõnikord kasutavad ühe arendaja tehtud arendust 60 inimest 60 erineval viisil, mis tähendab, et test on vaja läbi teha kõigis kombinatsioonides.
Mõnel pool on arenduses testimise osakaal ca 40%, Eestis me veel nii kaugel pole. Aga vaikselt mõistetakse ka siin, et kui suur investeering on tehtud, ei ole mõistlik – ega tegelikult ka võimalik – kvaliteedi pealt kokku hoida.
Kas tarkvaraarendus on IT- või äriprojekt? Siin oleneb, kes tegelikult vastutab igasuguste muudatuste eest – kas IT-osakond või äri? Kui IT juhib ärile vajalikku muudatust, ei pruugi see kõige paremini välja kukkuda. Tellijad peavad eelkõige siiski ise muudatuse vajalikkusest aru saama ning teadma, mida neil vaja on.
Mis on levinumad vead, mis testimisel on selgunud?IT-süsteemid on keerukad. Ühe asja muutmisel võib juhtuda, et muudetakse ka midagi muud –statistiliselt tekib heas arendustiimis iga vea parandamisel juurde 3-4 uut viga. Sageli unustatakse ära süsteemidevahelised liidestused, kuna igaüks vastutab oma „tüki“ eest, kuid keegi ei näe tervikpilti – seda, kuidas süsteemid omavahel suhtlema peaksid. Mõnikord on probleemiks keelebarjäär, näiteks kui arendaja on pärit mujalt riigist. Juhtub, et ei järgita dokumentatsiooni ja eeldatakse, et seal on niikuinii nõudmised ülepingutatud. Ja eks juhtub arendajatel sedagi, et „minu arvutis ju kõik töötab!“
Kas testijaid on mõtet kaasata ka juba töös olevate projektide puhul?
Kasutusel olevate arenduste testimine tuleb tavaliselt päevakorda nende täiendamisel ja edasiarendamisel. Sel juhul on testija töö vaadata, millised funktsioonid on realiseeritud, kas kõige jaoks on olema dokumentatsioon või peab alustama olemasoleva kaardistamisest. Meil on kogemus, kus firma muutis kaubamärki ning arvas, et piisab nime muutmisest andmebaasides. Testija aga leidis, et uus nimi tuleb teatud kohtades panna ka käänetesse, vahetamist vajavad logod nii kodulehel kui ka blankettide päises ning kokkuvõttes kujunes sellest suurem projekt. Kui testijat poleks kaasatud, oleks uue kaubamärgi lansseerimine võinud päädida fiaskoga, kuid kommunikatsioon päästis projekti.
Kokkuvõtteks: Professionaalsele testimisele kulutatud raha ei ole kindlasti raisatud, kuna annab infot ja aitab seeläbi riske maandada. Testimist ja muid kvaliteediteenuseid tasub tellida, kui oma jõududest jääb väheks või tegemist on ärikriitiliste süsteemidega. Skeeme, kuidas väliseid testijaid kaasata on mitmesuguseid – vali neist just sinu ettevõttele sobiv.
Tarkvara kvaliteet on nagu redel, mille esimene aste on testimine.
Ettevõttest
Eesti kapitalil põhinev ASA Quality Services OÜ asutati 2004. aastal eesmärgiga anda tarkvara kvaliteedi alaseid hands-on-konsultatsioone. Täna suudab ettevõte pakkuda tuge kõigis tarkvara kvaliteeti puudutavates küsimustes ning lisaks kuuluvad meeskonda äriprotsesside- ning süsteemianalüütikud. ASA Quality Services OÜ tegutseb peamiselt Balti turul, aga on konsulteerinud ka Skandinaavia ja Lääne-Euroopa ettevõtteid.
Seotud lood
Kõik ettevõtted, mis tegelevad kaupade ladustamise, transportimise või töötlemisega, teavad hästi, et tõstuki ostmine on üks väga oluline investeering. Õige tõstuki valimine võib aidata tõsta töö efektiivsust, parandada töövoogu ning suurendada tööohutust. Selles artiklis kaalume läbi, milliseid tegureid tuleks arvesse võtta, et teha teadlik otsus tõstuki soetamisel. Samuti vaatame, mida näitab trend ja mida võiks tuua tulevik.