Skaitmenizacija įgauna pagreitį, o kartu su ja didėja ir poreikis patikimoms programinės įrangos testavimo paslaugoms. Šiandien internete sparčiai didėja sudėtingų projektų ir įvairių funkcionalumų turinčių aplikacijų, skirtų ne tik kompiuteriams, bet ir išmaniesiems daiktams. Visa ši gausybė produktų kelia didžiulį iššūkį - užtikrinti, kad jie atitiktų griežtus kokybės reikalavimus, atitiktų vartotojų lūkesčius ir veiktų be trikdžių.

Čia į pagalbą ateina programinės įrangos testuotojai - specialistai, atsakingi už kruopštų produktų patikrinimą ir galimų problemų išaiškinimą. Programinės įrangos naudojimas yra neatsiejama mūsų kasdienybės dalis tiek buityje, tiek darbe, moksluose ar kitoje veikloje. Su programomis susiduriame įvairiose situacijose ir jų veikimo patikimumas bei kokybė tampa vis aktualesni. Norint užtikrinti programinės įrangos kokybę, reikalingas geras kokybės užtikrinimo (angl. Quality Assurance) ir programinės įrangos testavimo (angl. Software Testing) procesas.

Informatyvus paveikslėlis su programinės įrangos testavimo proceso schema

Kas yra programinė įranga ir jos testavimas?

Programinė įranga (angl. software) yra specializuota kompiuterinė programa, kuri atlieka įvairias užduotis ar funkcijas kompiuteriuose ir kituose įrenginiuose, kaip mobiliuose telefonuose ar planšetėse. Kad programine įranga būtų galima naudotis, mums reikalingi ir techninės įrangos (angl. hardware) komponentai.

Dauguma iš mūsų esame tikrai susidūrę su programine įranga, kuri neveikė taip, kaip turėtų veikti. Pavyzdžiui, norėjom nusipirkti elektroninį bilietą, bet sistema “užlūžo”, kasoje mums įmušė ne tą kainą ar už tam tikrą produktą mums nepaskaičiavo nuolaidos. O jei laukiame svarbių medicininių tyrimų rezultatų, tačiau dėl techninės klaidos mes jų negauname?

Programinės įrangos testavimas (toliau bus vadinama tiesiog testavimu) yra vienas iš programinės įrangos kūrimo etapų. Tai gana sudėtingas procesas, į kurį įeina daug įvairiausių testavimo veiklų. Prieš testuojant, atliekamas testavimo planavimas, reikalavimų analizė, kuriami testavimo atvejai, paruošiami testavimo duomenys ir testavimo aplinkos. Testavimo metu yra vykdomi įvairių testavimo tipų testai (pvz. funkcionalno, saugumo, našumo, greitaveikos ir t.t.). Testuojant ieškoma klaidų, defektų, sutrikimų ir potencialių problemų. Testavimas yra atliekamas įvairiais lygiais, pradedant nuo komponentų testavimo ir baigiant priėmimo testavimu iki tol, kol sistema yra išleidžiama į produkciją. Aišku, testavimas čia nesustoja, nes dauguma realiausių scenarijų įvyksta kasdien naudojant sistemas galutinių naudotojų, kurie neretai atranda ir neatrastų defektų.

Programinės įrangos testuotojo vaidmuo ir įgūdžiai

Kad tų defektų būtų kuo mažiau, reikalingas profesionalus testavimas, kurį atlieka apmokyti, patirties turintys profesionalūs specialistai - testuotojai. Pagal ISTQB apibrėžtą žodynėlį, testuotojas yra asmuo, atliekantis testavimą (angl. Tester - A person who performs testing). Jei žiūrėsime į testuotojo sąvoką kaip į rolę, ją gali atlikti bet kuris asmuo. Pavyzdžiui: klientas užsakovas, verslo analitikas, programuotojas, sistemų architektas, projektų vadovas ir taip toliau. Dalį testavimo gali atlikti ir automatizuoti testai, kuriuos implementuoja techniniai testuotojai ar patys programuotojai. Nors ir testavimą gali atlikti daug kas, tačiau tą daryti profesionaliai ir gerai - tikrai nėra lengva.

Esu daug kartų girdėjęs iš žmonių, kurie neturėjo nieko bendro su IT pasauliu ir mokslais, kad tai lengvas, nuobodus ir paprastas darbas. Jei asmuo testuoja, kaip išeina, ar gali save vadinti testuotoju? Tikriausiai gali, niekas nedraudžia, tačiau gerai testuoti reikia mokėti ir tai daryti profesionaliai bei efektyviai - kruopštus, kūrybingas ir nuolatinio tobulėjimo reikalaujantis darbas. Per pastaruosius kelis metus, tenka girdėti tokį mitą, kad vos ne kiekvienas gali tapti testuotoju. Bet ar tikrai tai tiesa? Ar visi studijuojantys mediciną ar teisę tampa gydytojais ir teisininkais? Taip drąsiai teigti, kad kiekvienas gali tapti profesionaliu testuotoju, negalėčiau. Daugiametė praktinė patirtis rodo, kad ne visi žmonės yra pastabūs detalėms, ne visi turi analitinį mąstymą ir ne visi sugeba dirbti efektyviai komandose. Tačiau, esu matęs daug žmonių, kurie su dideliu noru ir entuziazmu mokytis, išmoko testavimo subtilybių ir sėkmingai persikvalifikavo į testuotojo specialybę. O tie, kurie ir nepersikvalifikavo, sėkmingai pritaiko įgytas žinias kitose srityse. Tapti geru testuotoju - tikras iššūkis, nes reikia nuolatinio tobulėjimo ir domėjimosi, kas vyksta IT industrijoje. Tačiau, tai tikrai įmanoma! Testavimas, visų pirma, turi patikti ir tikti žmogui pagal asmenines savybes.

Mitai apie programinės įrangos testuotojo darbą

IT įmonės „Devbridge“ (priklausančios „Cognizant“ kompanijai) testavimo praktikų vadovas Justas Laužadis komentuoja dažniausiai pasitaikančius mitus.

Mitas Nr. 1: Testuotojų darbas yra nuobodus ir monotoniškas.

Pagrindinis testuotojo darbas yra kurti ir atlikti eksperimentus, kurie išbando testuojamo produkto kokybę. Kai testuotojas gerai pažįsta produktą, eksperimentai gimsta greitai, tačiau jų atlikimas praktiškai trunka ilgiau, o sudėtingesni atvejai reikalauja gilių techninių įgūdžių. Siekiant palengvinti darbą, dažnai renkamasi automatizuoti pasikartojančius testus. Nuobodus darbo pobūdis gali signalizuoti, kad testavimui, kokybei ar procesų tobulinimui skiriama per mažai dėmesio. Jei komanda skiria dėmesio kokybės kultūros palaikymui, testuotojo darbas tampa labai įvairus - nuo defektų tyrinėjimo iki automatizavimo ir konsultavimo kokybės klausimais. Svarbi darbo dalis - komandos narių ir kliento informavimas apie testavimo rezultatus bei trūkumų įvardinimas.

Mitas Nr. 2: Testuotojais dirba tie, kurie negalėjo tapti programuotojais.

Testuotojo profesija yra daug platesnė ir įvairesnė, nei įsivaizduojama pagal stereotipus. Nors programavimą renkasi „kūrėjai“, kuriems patinka konstruoti ir priversti dalykus veikti, testavimą dažniau renkasi „tyrinėtojai“, norintys eksperimentuoti, nagrinėti ir analizuoti. Svarbu vadovautis ne stereotipais, o savo patirtimi, išbandyti abu kelius ir pasirinkti, kuris labiau tinka pagal asmenines savybes.

Mitas Nr. 3: Testuotojams nereikia techninių žinių.

Nors pradėti testuoti dažnai reikia tik tiek techninių žinių, kiek ir bet kuriam kitam produkto naudotojui, profesionaliam ir sistemingam testavimui reikalingos specifinės techninės žinios apie testavimo technikas, produkto sandarą ir kontekstą. Gilinantis į atskiras testavimo sritis (tikslumo, infrastruktūros, saugumo, greitaveikos, prieinamumo) ar automatizuojant, tenka naudotis specifiniais įrankiais, kuriems reikalingos žinios apie patį įrankį, testavimo niuansus ir programavimą. Taip pat svarbios ir kitų disciplinų žinios, pavyzdžiui, kliento verslo subtilybių išmanymas.

Mitas Nr. 4: Programinės įrangos testavimas neprideda jokios vertės.

Testavimo kuriama vertė yra netiesioginė - padeda išvengti klaidų, kurios galimai vėliau atneštų didžiulius nuostolius. Testavimas suteikia informaciją apie produkto kokybinius aspektus, leidžiančią komandai priimti geresnius sprendimus ir teisingiau paskirstyti resursus. Tvarkingai įdiegti testavimo ir kokybės užtikrinimo procesai labiau skirti rizikoms išvengti nei kurti tiesioginę vertę.

Mitas Nr. 5: Testuotojo darbe raktas į sėkmę yra perfekcionizmas.

Perfekcionizmas testuotojo darbe dažnai vertinamas kaip trukdis. Vadovaujamasi Pareto principu - siekiama 80% vertės su 20% resursų. Svarbu anksti išsitestuoti pagrindinius vertę kuriančius elementus, surinkti informaciją ir judėti toliau. Geriau greičiau sužinoti, kad sprendimas nepasiteisina, nei investuoti daug laiko į nepriekaištingai sukonstruotą, bet nereikalingą sprendimą.

Mitas Nr. 6: Testuotojai netampa (projektų) vadovais.

Testuotojai, dėl savo darbo specifikos, dažnai pastebimi kaip geri kandidatai tapti vadovais. Jie vertę kuria bendradarbiaudami su kitų disciplinų specialistais, todėl matomi kaip puikūs konsultantai, diplomatai ar koučingo specialistai - savybės, reikalingos vadovams.

Mitas Nr. 7: Testavimo profesija neperspektyvi.

Įsibėgėjanti skaitmeninė transformacija sukuria vis daugiau inovatyvių sprendimų, kurių kokybės lūkesčiai auga, kartu didėja ir skirtingų kokybės užtikrinimo procesų svarba. Modernūs įrankiai padeda testuotojams atlikti darbus išmaniau, optimaliau, greičiau, derinant ekspertizę su automatiniais procesais. Testavimas žengia koja kojon su kitomis besivystančiomis sritimis - prisitaiko prie DevOps, modernėjančių programinės įrangos inžinerijos praktikų, įgalina kokybiniams sprendimams naudoti sistemos duomenis ar mašininio mokymo modelius. Stiprūs, techniški ir su naujausiomis technologijomis žengiantys testuotojai bus labai paklausūs.

Programinės įrangos testuotojo karjeros kelias ir mokymosi galimybės

Tapti geru testuotoju - tikras iššūkis, reikalaujantis nuolatinio tobulėjimo ir domėjimosi IT industrija. Testavimas turi patikti ir derėti su asmeninėmis savybėmis. Mokytis galima iš patyrusių kolegų, dalyvaujant testavimo praktikose ar akademijose, kurias organizuoja IT įmonės.

Vienas populiariausių, greičiausių ir efektyviausių būdų yra dalyvavimas 2-4 mėnesių pradinio lygio testavimo kursuose su dėstytoju. Tokios programos specialiai paruoštos žmonėms be IT išsilavinimo, su praktiniais pratimais ir patarimais.

Pagal įvairias apklausas ir statistikas, programinės įrangos testavimo rinka tik augs, o tai reiškia, kad testuotojo specialybė bus paklausi dar daugelį metų. Lietuvos rinkoje testuotojų nėra daug, lyginant su programuotojais ar kitais IT specialistais, tad įšokti į šį tarptautinį traukinį dar tikrai nevėlu.

Praktiniai mokymai ir karjeros pradžia

Vilniaus technologijų ir verslo profesinio mokymo centras (dabartinis SMK) siūlo praktines studijas, kurios padeda pradėti karjerą IT srityje. Pavyzdžiui, programinės įrangos testuotojo programa sudaro modulius, susijusius su Linux, reliacinėmis duomenų bazėmis (pvz., MySQL), Java programavimu, funkciniu ir automatiniu testavimu, žiniatinklio programų vartotojo sąsajos kūrimu, darbu komandoje pagal Agile-SCRUM metodiką ir kt.

Įgijęs kvalifikaciją, asmuo galės dirbti kaip jaunesnysis testuotojas programinės įrangos kūrimu užsiimančiose įmonėse. Paprastai jaunesnysis testuotojas dirba prižiūrimas vyresniojo specialisto ir vykdo jam suformuluotas užduotis. Augant patirčiai, didėja ir savarankiškumo lygmuo.

Asseco Lietuva, daugiau nei 30 metų programinę įrangą kurianti įmonė, sulaukė pastiprinimo iš Vilniaus technologijų mokymo centro - programinės įrangos testavimo studentė atliko praktiką įmonėje. Mokymo centro alumnas Domas Vitkauskas, anksčiau laisvalaikį leisdavęs žaisdamas kompiuterinius žaidimus, šiandien pats testuoja programinę įrangą, dirbdamas mėgiamą darbą.

Norintys dalyvauti nemokamoje testuotojų akademijoje, kuri vyks Vilniuje ir Kaune, kviečiami registruotis.

Rankinio ir automatinio testavimo palyginimas

Programinės įrangos testavimas apima dvi skirtingas disciplinas: rankinį testavimą ir automatizuotą testavimą.

  • Rankinis testavimas - tai procesas, kai testuotojas, vadovaudamasis testavimo atvejais, tikrina programinės įrangos funkcionalumą, dizainą ir vartotojo sąsają. Jis reikalauja didesnio lankstumo, leidžia gauti kokybinę informaciją ir atlikti tinkamumo naudoti bandymus. Tačiau jis gali būti laiko ir išlaidų sąnaudų požiūriu brangesnis, o klaidų tikimybė didesnė.
  • Automatizuotas testavimas - tai procesas, kai testuotojas, naudodamasis trečiosios šalies įrankiu, automatizuoja programinę įrangą ir tikrina, kaip ji pakartotinai atlieka tą patį procesą. Jis idealiai tinka didelėms ir pasikartojančioms užduotims atlikti, gali generuoti ataskaitas ir dirbti greičiau nei žmogus.

Nors šios disciplinos skiriasi, jos gali glaudžiai bendradarbiauti daugelyje plėtros projektų. Kombinuojant rankinius ir automatinius testus galima pasiekti geriausių rezultatų, atimant smulkias užduotis iš rankinių testuotojų ir naudojant juos ten, kur reikia kompetencijos.

Rankinio testavimo tipai ir procesas

Įmonės naudoja tris skirtingus rankinio testavimo tipus, kurių skirtumus lemia testuotojų prieigos lygis:

  • Baltosios dėžės testavimas (angl. white-box testing) - testuotojas mato visus atskirus kodo aspektus ir jų poveikį programinės įrangos veikimui.
  • Juodosios dėžės testavimas (angl. black-box testing) - testuotojai nemato, kas vyksta už vartotojo sąsajos.
  • Pilkosios dėžės testavimas (angl. gray-box testing) - derinys, kai testuotojas turi galimybę susipažinti su kai kuriais dokumentais ir išeities kodu.

Rankinio testavimo procesas apima šiuos žingsnius:

  1. Reikalavimų analizė.
  2. Testavimo plano sudarymas.
  3. Testavimo atvejų rašymas.
  4. Testavimo atvejų peržiūra.
  5. Testų vykdymas.
  6. Klaidų pranešimas.
Infografika, iliustruojanti rankinio testavimo procesą

Rankinio testavimo privalumai ir iššūkiai

Privalumai:

  • Didesnis lankstumas.
  • Kokybinė informacija.
  • Nėra aplinkos apribojimų.
  • Leidžia atlikti tinkamumo naudoti bandymus.

Iššūkiai:

  • Testavimo įgūdžių lygiai.
  • Testavimo išlaidos.
  • Laiko sąnaudos.
  • Klaidų tikimybė.

Įrankiai ir geriausios praktikos programinės įrangos testavime

Tiek rankiniam, tiek automatizuotam testavimui naudojami įvairūs įrankiai. Tarp populiariausių nemokamų rankinio testavimo įrankių minimi JIRA, Trac, NUnit. Automatizuoto testavimo srityje išsiskiria ZAPTEST FREE EDITION, Appium, Katalon Studio, Robotium, Loadster.

Geriausios rankinio testavimo praktikos apima:

  • Dėmesį aiškumui ir suprantamesniems rodikliams.
  • Nuolatinę peržiūrą ir pažangesnes ataskaitas.
  • Optimizuotus testavimo atvejus ir pakartotinai paleidžiamas strategijas.
  • Ne tik klaidų paiešką, bet ir bendradarbiavimą su kūrėjais.

Rekomenduojama vengti tokių klaidų kaip:

  • Savarankiškas klaidos taisymas.
  • Skubotas testų atlikimas.
  • Prastas bendravimas.
  • Bandymas be paruošimo.
  • Instinktų ignoravimas.
  • Klaidų baimė.
  • Pertraukų nedarymas.

Atliekant rankinį testavimą, randamos tam tikros klaidos, kurių automatinis testavimas nepastebi, pavyzdžiui, prasta darbo eiga, grafiniai klausimai ar netikslios nuorodos.

Paveikslėlis, iliustruojantis skirtingus rankinio testavimo įrankius

tags: #parkavimo #irangos #testuotojas

Populiarūs įrašai: