
Business & Integration IT konzultant
Testovanie softvéru je spôsob, ako overiť, či softvér funguje podľa potrieb koncového používateľa. Základné princípy testovania, známe aj ako piliere testovania, umožňujú testerovi efektívne odhaliť čo najviac chýb a defektov. V tomto článku sa dozvieš, ako funguje sedem princípov testovania softvéru a prečo by si ich mal osvojiť každý IT tester.
V článku sa dozvieš:
Testovanie softvéru slúži na kontrolu kvality a funkčnosti softvérového produktu, ako aj na posúdenie miery splnenia požiadaviek a potrieb zákazníka. Vykonáva ho IT tester, ktorý pracuje na projekte s cieľom identifikovať potenciálne riziká a chyby, ktoré by mohli negatívne ovplyvniť funkcionalitu softvéru alebo používateľskú skúsenosť.
Testovanie SW nie je krátkodobá ani jednorazová záležitosť. Práve naopak – ide o dlhodobý proces, ktorý spravidla začína už vo fáze návrhu. Následne pokračuje počas vývoja produktu a končí až vtedy, keď je softvérový tester spokojný s výsledkami a produkt nevykazuje žiadne chyby.
… pri mnohých aplikáciách, weboch a ďalších produktoch je testovanie nikdy nekončiaci proces? Dôvodom je skutočnosť, že si vyžadujú pravidelné aktualizácie, ktoré môžu ovplyvniť ich stabilitu a funkčnosť. Práve preto je po každej aktualizácii dôležité produkt opäť otestovať a odstrániť aj tie najmenšie chyby, ktoré by mohli neskôr spôsobiť komplikácie.
Proces testovania je neoddeliteľnou súčasťou SDLC – životného cyklu vývoja softvéru. Každé testovanie má zároveň aj vlastný testovací cyklus, nazývaný STLC, teda životný cyklus testovania softvéru. SW testovanie pozostáva zo štyroch fáz, teda krokov, ktoré je potrebné dodržať pri každej príprave a realizácii testu.
V praxi proces testovania vyzerá nasledovne:
Prvá fáza zahŕňa vymedzenie testovacích požiadaviek a zdrojov, stanovenie cieľov testovania, testovaciu stratégiu a návrh testovacieho plánu.
V tomto kroku tester navrhne testy, ktoré poslúžia na kontrolu a overenie správnosti systémových požiadaviek.
Táto fáza zahŕňa samotné vykonanie testov a vyhodnotenie ich výsledkov. Posudzuje sa, či program funguje správne a či nedošlo k žiadnej chybe alebo problému.
Posledný krok predstavuje analýzu závažnosti zistených chýb a návrh ich čo najjednoduchšieho (a najmenej nákladného) odstránenia.
Testovanie softwaru je kľúčovou súčasťou vývoja aplikácií a webových stránok. Zaujíma ťa, prečo je to tak? Tu sú hlavné dôvody:
Pri chybách platí, že čím skôr ich objavíš a opravíš, tým menej škody dokážu napáchať a tým menej nákladné budú. Softvér preto testuj čo najskôr. Sleduj aj tie najmenšie detaily, ktoré by mohli spôsobiť zbytočné komplikácie a neskôr viesť k vážnym a nákladným problémom.
Tým, že produkt otestuješ ešte predtým, ako ho poskytneš klientovi alebo zákazníkovi, odhalíš rôzne chyby a nedostatky, ktoré by mohli zhoršiť používateľský zážitok. To môže negatívne ovplyvniť dôveru koncových používateľov, ktorí by mohli začať hľadať riešenia u konkurencie.
Testovanie webových aplikácií alebo iného produktu ti odhalí aj drobné chyby a mieru bezpečnosti na používanie pre koncového spotrebiteľa. Tento bod úzko súvisí s predchádzajúcim – nebezpečné e-shopy alebo aplikácie môžu výrazne znížiť dôveru zákazníkov, čo môže viesť k ich strate.
Dôkladné testovanie, ktoré vykonáva skúsený tester, dokáže výrazne zvýšiť kvalitu výsledného projektu. Vďaka nemu vieš zistiť, či aplikácia alebo web plní svoj účel, poskytuje všetko, čo cieľová skupina potrebuje, a neobsahuje chyby, ktoré by mohli sťažiť jej používanie.
Kvalitný produkt, ktorý funguje plynule a bez zbytočných chýb, dokáže používateľov motivovať, aby ho využívali pravidelne a nehľadali zaň náhradu.
Moderné softvéry si po vytvorení vyžadujú pravidelné aktualizácie, aby vyhovovali najnovším požiadavkám používateľov.
Problém však nastáva, keď nové funkcionality narušia to, čo predtým fungovalo správne. V takýchto prípadoch je nevyhnutné pravidelné testovanie, ktoré sleduje, ako nové zmeny ovplyvňujú fungovanie softvéru. Takto dokážeš zaručiť jeho stabilitu aj z dlhodobého hľadiska.
Používatelia dnes využívajú rôzne operačné systémy a očakávajú, že aplikácia, webová stránka alebo iný produkt im bude fungovať správne a plynule na všetkých zariadeniach. Preto je testovanie dôležité aj z pohľadu kompatibility.
Okrem testovania funkčnosti na rôznych operačných systémoch je potrebné skontrolovať aj zobrazenie produktu na rôznych rozlíšeniach obrazoviek (napríklad či sa web zobrazuje správne na malej obrazovke mobilu aj na veľkom monitore), ako aj na rôznych verziách softvérov a prehliadačov.
Okrem tradičného rozdelenia testovania podľa spôsobu realizácie na manuálne testovanie a automatizáciu rozlišujeme aj niekoľko ďalších typov softvérových testov. Nižšie si predstavíme rozdelenie podľa fázy vývoja (chronológie), prístupu ku kódu, chodu programu, dimenzií kvality a rozsahu.
… okrem manuálnych a automatizovaných testov existujú aj tzv. exploratory testy? Ide o typ manuálneho testovania, pri ktorom sa nepostupuje podľa vopred zadefinovaného testovacieho scenára. Ich cieľom je skúmať vlastnosti a funkcie softvéru a sledovať, ako sa bude správať pri rôznych vstupoch a podmienkach.
Pri rozdelení testov z hľadiska časovej postupnosti vo vývojovom modeli je kľúčovým faktorom to, kedy sa testovanie vykonáva počas softvérového vývoja.
Podľa prístupu IT testera k zdrojovému kódu programu rozlišujeme tri druhy testovania: Black box, White box a Grey box testy.
Ďalšou oblasťou je rozdelenie testov na statické a dynamické. Statické testovanie nevyžaduje chod aplikácie, pretože prebieha predovšetkým v počiatočných fázach SDLC, teda pred uvedením programu do prevádzky. Využíva sa na analýzu zdrojového kódu, kontrolu požiadaviek a ideálne aj na odhalenie potenciálnych problémov a rizík aplikácie.
V prípade, že sa statické testy vykonávajú prostredníctvom analyzátora kódu, hovoríme o statickej analýze kódu. Ak ich realizuje samotný developer, nazývame ich code review. Na druhej strane, dynamické testovanie sa už nezaobíde bez chodu programu a slúži na zabezpečenie bezproblémovej prevádzky v neskorších fázach vývoja.
Pri softvérovom testovaní je nevyhnutné nezameriavať sa len na funkčnosť programu, ale brať do úvahy aj dimenzie kvality, ktoré definuje norma ISO/IEC 25010:2011.
Softvérové testy možno v neposlednom rade rozdeliť aj podľa rozsahu na smoke a regresné testovanie. Smoke (dymové) testy slúžia na rýchle a základné overenie funkčnosti celého programu, napríklad po aktualizácii softvéru. Vykonávajú sa teda v menšom rozsahu, na rozdiel od regresných testov. Tie sa používajú na overenie, či aplikácia po aktualizácii funguje rovnako ako predtým, a to pomocou pôvodných testovacích scenárov.
Súčasťou testovania je aj detekcia chýb, ktorá môže byť správna alebo nesprávna. Ak program neobsahuje žiadnu relevantnú chybu, môže byť výsledok vyhodnotený ako správny, alebo – v prípade nesprávnej detekcie – ako chybný.
Na základe počtu správnych a nesprávnych detekcií, ako aj celkovej veľkosti vzorky, možno následne vyhodnotiť niekoľko metrík, ktoré charakterizujú úspešnosť použitého nástroja:
Ako vidíš, existuje skutočne veľké množstvo testov, ktoré možno využiť pri testovaní softvéru. Líšiť sa môžu podľa toho, v akej fáze vývoja sa realizujú, akým spôsobom sú vykonávané, v akom rozsahu, alebo na ktorú dimenziu kvality sú zamerané. Najdôležitejšie je teda vedieť, čo, ako a s akým cieľom plánuješ testovať.
Vývoj softvéru pozostáva z viacerých etáp a zložitých procesov, ktoré často vedú k vzniku softvérových chýb. Pri testovaní softvéru musí tester dodržiavať zásady, ktoré zabezpečia efektívne testovanie – s čo najmenšou časovou náročnosťou a s čo najlepším výsledkom.
Existuje sedem základných princípov testovania softvéru, ktoré prijala Medzinárodná rada pre testovanie softvéru (ISTQB). Tieto zásady pomáhajú dosahovať optimálne výsledky bez odchýlenia sa od cieľa testovania. Jednotlivé princípy testovania softvéru, ktoré by mal poznať každý profesionálny tester, sú:
Každá aplikácia prechádza rôznymi fázami testovania, ako sú integračné testy, systémové testy, regresné testy či akceptačné testy. Primárnym účelom softvérového testovania je identifikovať čo najviac zatiaľ neznámych chýb pomocou vhodných metód a testovacích techník. Tester sa snaží odhaliť čo najviac skrytých systémových chýb, ktoré následne odstraňujú vývojári.
Prvý princíp testovania hovorí, že žiadny softvér nie je bezchybný – testovanie odhaľuje prítomnosť defektov, nie ich neprítomnosť. Dôkladné a opakované testovanie síce znižuje výskyt chýb, no skutočnosť, že testeri pri opakovanom testovaní nenachádzajú chyby, neznamená, že softvér je úplne bezchybný. Niektoré skryté chyby sa totiž môžu prejaviť až v produkčnom prostredí, pri reálnom používaní aplikácie – najmä pri menej bežných funkcionalitách alebo ich kombináciách. Aj preto testovanie slúži na odhalenie prítomnosti defektov, nie ich neprítomnosti.
Testovanie každej funkcie pomocou všetkých platných a neplatných vstupov a predpokladov je známe ako úplné alebo vyčerpávajúce testovanie. Počas testovania softvéru je však ťažké, takmer nemožné otestovať všetky funkcie a všetky možné kombinácie ich použitia. Namiesto toho sa priorizuje testovanie tých kombinácií, ktoré sú vyhodnotené ako najdôležitejšie.
Úplné testovanie softwaru by si vyžadovalo neobmedzené úsilie, čas a náklady, pričom by nespĺňalo požiadavky na efektívnosť. Každý vývoj má stanovený rozpočet a konečný termín spustenia, preto musí byť časovo ohraničené aj testovanie. Druhý princíp testovania softvéru teda hovorí, že vyčerpávajúce, resp. úplné testovanie nie je možné. Odporúča sa začať s testovaním už v počiatočných fázach vývoja a softvér testovať pomocou metód, ako sú ekvivalenčné rozdelenie a analýza hraničných hodnôt.
Včasné testovanie znamená, že všetky testovacie aktivity by sa mali začať už v počiatočných fázach životného cyklu vývoja softvéru (SDLC). Ak sa IT testeri zapoja do testovania v ranných fázach SDLC, softvérové chyby môžu byť identifikované a opravené skôr, čím sa znižujú náklady na ich odstránenie.
… dodržiavaním správneho procesu SDLC (Software Development Life Cycle), teda životného cyklu vývoja softvéru, môžu softvérové spoločnosti efektívnejšie reagovať na tlak trhu a dodávať vysokokvalitný softvér? Tento proces zahŕňa sedem fáz: fázu požiadaviek, analýzy, návrhu, vývoja, testovania, nasadenia a údržby softvéru.
Pri testovaní akéhokoľvek softvéru sa IT testeri stretávajú so situáciou, že väčšina nájdených defektov súvisí s určitou špecifickou funkcionalitou. Môže to byť spôsobené tým, že je aplikácia veľmi zložitá, programovanie príliš komplikované alebo že vývojár urobil chybu. Určité moduly softvéru obsahujú najväčší počet bugov, resp. generujú najviac softvérových chýb.
Paretovo pravidlo hovorí, že 80 % problémov pochádza z 20 % modulov. Preto sa kladie dôraz na testovanie práve týchto 20 % modulov, kde softvér čelí 80 % chýb. Pravidlo zhlukovania defektov zdôrazňuje, že oblasti softvéru náchylné na chyby je potrebné dôkladne otestovať – čím sa výrazne zníži ich počet.
Jednotlivé princípy testovania softvéru pomáhajú IT testerom zefektívniť testovací proces a zároveň zvyšujú spokojnosť používateľov s kvalitou softvéru. Preto odporúčame každému softvérovému testerovi implementovať tieto zásady do svojho testovania.
Keď tester narazí na modul, ktorý vykazuje väčší počet chýb, venuje mu ďalšie hodiny testovania. Po odstránení defektov vývojármi a po niekoľkých opakovaniach testov sa kvalita kódu zlepší a počet chýb klesne. Môže sa však stať, že pri zvýšenej pozornosti venovanej jednému modulu dôjde k zanedbaniu ostatných. Pesticídny paradox je princíp, podľa ktorého opakovanie tých istých testov časom neprináša nové výsledky – testy prestanú odhaľovať nové chyby.
V takomto prípade sa odporúča:
Pri druhom prístupe však výrazne narastá počet testovacích prípadov, čo zvyšuje potrebné úsilie aj čas na ich vykonanie. Preto je dôležité priebežne vyhodnocovať, ktoré testy zlyhávajú a ktoré už nie sú relevantné – a tie následne odstrániť.
Vývoj softvérových aplikácií je veľmi progresívny a rýchlo sa rozvíjajúci segment. Medzi najžiadanejšie oblasti vývoja v IT patrí poisťovníctvo, bankovníctvo, zdravotníctvo či cestovný ruch. Každý z týchto softvérov má iný účel, iné požiadavky klienta a odlišné funkcionality, preto si vyžaduje špecifický typ testovania prispôsobený konkrétnemu kontextu. Nebolo by efektívne, keby IT testeri používali rovnaké techniky a spôsoby testovania na všetky druhy appiek.
Šiesty princíp testovania preto pripomína, že testovanie závisí od kontextu – softvéroví testeri musia použiť rôzne testovacie techniky, prístupy a metódy podľa konkrétneho typu aplikácie.
… ako IT tester si môžeš zarobiť v priemere 2000 € mesačne? Samozrejme, výška platu závisí od tvojich zručností, skúseností a pracovnej pozície. Viac informácií o platoch IT testerov na Slovensku nájdeš na našom blogu.
Ak softvér prešiel testovaním a pred jeho nasadením sa nezistili žiadne ďalšie chyby, môže sa zdať, že je aplikácia na 99 % bezchybná. Môže sa však stať, že softvér bol testovaný na základe nesprávnych požiadaviek – a v takom prípade môže byť pre používateľa stále nepoužiteľný. Okrem bezchybnosti musí softvér spĺňať to najdôležitejšie: potreby koncového používateľa.
Posledný princíp testovania softvéru hovorí, že identifikácia a oprava chýb by nemala zmysel, ak aplikácia nie je praktická a nedokáže splniť požiadavky klienta.
Na trhu existuje množstvo nástrojov na testovanie. Výber závisí najmä od tvojich potrieb a funkcií, ktoré daný nástroj ponúka. K najpopulárnejším patria:
Rozhodol si sa vstúpiť do sveta SW testingu, no nevieš, kde začať? V prvom rade sa dôkladne oboznámi s tým, čo práca testera obnáša. Zisti, čo presne je testovanie, aké druhy testov existujú a aké výhody testovanie softvéru prináša. Zároveň sa informuj o konkrétnych požiadavkách jednotlivých firiem – každá môže od testera očakávať niečo iné.
Najčastejšie úlohy testerov:
Mal by si ovládať aspoň jeden programovací jazyk – ideálne Javu. Hoci je o niečo náročnejšia, netreba sa jej báť. So štúdiom ti pomôžu knihy, online kurzy, videá a podcasty – niektoré sú určené pre začiatočníkov, iné pre pokročilých.
Vzdelanie v IT oblasti je výhodou, no nie podmienkou. Dôležitá je motivácia učiť sa a neustále sa zlepšovať.
Okrem tvrdých technických zručností budeš potrebovať aj tzv. mäkké zručnosti:
Na začiatok si vyber jeden programovací jazyk a sústreď sa výlučne naň. Keď ho zvládneš na pokročilej úrovni, bude sa ti ľahšie učiť ďalšie – vďaka podobnosti medzi jazykmi.
pošli svoje CV a poď testovať poistný softvér ako náš nový SW tester.
Softvérové testovanie je proces, pri ktorom tester dôkladne kontroluje a testuje aplikáciu, webovú stránku, e-shop alebo iný softvérový produkt a zisťuje, či neobsahuje chyby. Tie by mohli neskôr viesť k zbytočným nákladom, nespokojnosti používateľov alebo bezpečnostným rizikám.
Testovanie je jednou z kľúčových súčastí životného cyklu softvéru. Spravidla zahŕňa niekoľko základných krokov: plánovanie, analýzu a prípravu, realizáciu testov, vyhodnotenie výsledkov a monitoring chýb.
Na to, aby sa z teba stal IT tester, potrebuješ kombináciu technických (tzv. tvdých) a mäkkých zručností. Medzi technické zručnosti patrí najmä ovládanie aspoň jedného programovacieho jazyka – dobrou voľbou je Java, ktorá je univerzálna a otvára dvere k mnohým pracovným príležitostiam.
Z mäkkých zručností sú dôležité najmä: komunikatívnosť, analytické a logické myslenie, orientácia na detail, time management a prispôsobivosť. Čím viac z týchto vlastností máš, tým lepšie – no nemusíš ich ovládať všetky hneď na začiatku. Mnohé si postupne osvojíš praxou.
Testovanie môžeme deliť podľa viacerých parametrov. Medzi základné dva typy patrí manuálne a automatizované testovanie. Ďalej sa testovanie delí napríklad podľa prístupu ku kódu, chronológie alebo dimenzií kvality.
Z pohľadu chronológie hovoríme o unit testoch, testovaní vývojárom, integračných testoch, systémových testoch a podobne. Na základe rozsahu rozoznávame napríklad smoke testy (tzv. dymové testy) a regresné testy. Všetky spôsoby testovania spolu s podrobnými informáciami nájdeš vyššie v článku.
Testovanie softvéru je komplexný proces, ktorý sa delí na niekoľko fáz. Tester spravidla začína plánovaním testov, v rámci ktorého definuje požiadavky a zdroje pre dané testovanie. Následne si stanovuje ciele a stratégie a pripravuje testovací plán. V ďalšom kroku nasleduje analýza a príprava testov a potom samotná realizácia testovania.
Na konci procesu nasleduje monitoring chýb – tester analyzuje nájdené chyby, dokumentuje ich a hľadá efektívne riešenia na ich odstránenie.
S testovaním je najlepšie začať čo najskôr – prvé nedokonalosti a chyby sa totiž môžu objaviť už vo fáze návrhu. V testovaní treba pokračovať počas celého vývoja, keďže práve vtedy sa vyskytuje najviac chýb. Nezabúdaj ani na testovanie pred nasadením a vydaním produktu, aby si mal istotu, že všetko funguje správne a používatelia budú s produktom spokojní.
Testovanie sa zvyčajne ukončuje vtedy, keď softvér spĺňa všetky požadované kritériá a neobsahuje žiadne závažné chyby. Pamätaj však na to, že pri aktualizáciách je potrebné testovanie zopakovať, aby si sa uistil, že nové funkcie alebo vylepšenia nijako neohrozujú stabilitu existujúcej aplikácie.
Testovanie softvéru je kľúčovým krokom v životnom cykle vývoja. Overuje, či softvér zodpovedá požiadavkám používateľov, identifikuje vzniknuté chyby a zabezpečuje, že je bezpečný a použiteľný. Aby bolo testovanie čo najefektívnejšie, každý tester by si mal osvojiť základné princípy testovania softvéru a vychádzať z nich v praxi. Inak to nie je ani u nás v spoločnosti msg life. Ak chceš začať svoju kariéru ako IT tester, klikni na najnovšie pracovné ponuky, ktoré pravidelne aktualizujeme, pošli svoje CV a poď testovať poistný softvér ako náš nový SW tester.
Súvisiace články