Čo je to bug a ako prebieha identifikovanie chýb nielen v zdrojovom kóde

Bug je pravdepodobne najčastejšie používaný pojem pri zamestnaniach na pozícii IT testera. Hlavnou úlohou softvérového testera je totiž zabezpečiť fungovanie softvéru tým, že nájde a vyrieši všetky softvérové chyby, inak nazývané bugy. V našom článku zistíš, ako vznikol pojem bug, prečo je odstraňovanie bugov dôležité a s akými druhmi softvérových chýb sa v zamestnaní IT tester môžeš stretnúť.

Pojem bug bol v súvislosti so softvérom prvýkrát spomenutý v roku 1944. Použila ho vedkyňa Grace Hopper označovaná za matku počítačovej techniky. Spolupracovníci Grace na Harvardovej univerzite v Cambridge vytiahli spomedzi dvoch elektrických relé hmyz, kvôli ktorému hardvér nefungoval správne. Netrvalo dlho a výraz bug sa stal čoraz častejšie spájaný s chybami v softvéri.

V súčasnosti sa pojmom bug označuje chyba vzniknutá pri vývoji softvéru a odhalená pri jeho testovaní. Inými slovami ide o chybu v komponente, systéme či softvéri, ktorá môže zapríčiniť zlyhanie alebo nesprávne fungovanie systému. Zamestnaniam na pozícii software tester prináleží zodpovednosť za nájdenie a následné odstránenie chyby. Tento proces sa nazýva debugging.

Nefunkčnosť aplikácie nemusí zapríčiňovať iba bug

Okrem bugu môže byť príčinou zlyhania alebo nesprávneho fungovania aplikácie tiež chyba, defekt, error, omyl či zlyhanie. Každý z týchto výrazov pomenúva iný problém, ktorému musí čeliť softvérový tester. V súvislosti so zamestnaním na pracovnej pozícii IT testera by si mal spomenuté výrazy ovládať, keďže je to základná terminológia software testera. V prípade, že ako IT tester junior len začínaš, nižšie nájdeš prehľadné vysvetlenie použitých výrazov:

  • Defekt znamená, že aplikácia nefunguje podľa zadaných požiadaviek.
  • Bug je všeobecné pomenovanie pre problém, ktorý vznikol v softvéri.
  • Chyba sa používa na vyjadrenie problému, ktorý vznikol v zdrojovom kóde.
  • Error je spojený s nesplnením stanovených obchodných požiadaviek.
  • Omyl označuje chybu, ktorá vznikla z nepozornosti.
  • Zlyhanie softvéru môže zapríčiniť veľké množstvo rôznych druhov chýb.

Čo spôsobuje chyby v softvéri a aké druhy chýb pri vývoji softvéru poznáme

Softvérové chyby negatívne ovplyvňujú fungovanie a bezpečné používanie softvéru. Ak by softvérový produkt neabsolvoval včasné testovanie pred tým, ako sa zverejní, pri jeho používaní by vznikli mnohé komplikácie, ako napríklad:

  • produkt nebude fungovať podľa požiadaviek zadávateľa,
  • nekvalitný produkt nesplní očakávania používateľa,
  • neskorá diagnostika chýb softvéru zvýši náklady na celkový produkt.

Softvérové bugy môžu byť spôsobené mnohými faktormi, vrátane nejasných požiadaviek, zložitosti softvéru, nedostatočnej komunikácie medzi zamestnaniami bug testera vývojár softvéru alebo chybami v dokumentácii.

Najčastejšie druhy softvérových chýb

Z pohľadu používateľa môžeme chyby softvéru rozdeliť na vizuálne a funkčné bugy. Pri vizuálnych chybách softvéru web alebo aplikácia funguje, avšak používateľ vidí zjavné nedokonalosti. Najčastejšie býva problém spojený s responzívnym dizajnom aplikácie. Preto je potrebné, aby software tester testoval aplikácie vo webovom aj mobilnom rozhraní. Závažnejšie je, ak používateľ narazí na funkčnú chybu softvéru, ktorá znamená, že softvér nepracuje tak, ako by mal a v aplikácii nefungujú jednotlivé funkcie.

Softvérové chyby môžeme klasifikovať aj podľa úrovne obtiažnosti, ktorú spôsobujú pri používaní. Chyby s nízkym dopadom majú minimálny vplyv na používanie. Bugy s vysokým dopadom ovplyvňujú určitú úroveň funkčnosti, ale aplikácia sa dá naďalej používať. V prípade kritických softvérových chýb je softvér nepoužiteľný a takáto aplikácia sa nemôže dostať do rúk používateľa.

Ďalšie rozdelenie softvérových chýb sa zameriava na to, kde sa chyba vyskytuje. Jednoduché softvérové chyby obsiahnuté v jednej jednotke kódu sa nazývajú chyby na úrovni jednotky. Zvyčajne sú spôsobené chybami vo výpočte (tzv. aritmetickými alebo matematickými chybami v kóde) či logickými chybami, ktoré vznikajú, keď program vypíše nesprávne informácie alebo sa zasekne a neposkytne žiadne informácie. Takéto chyby sa dajú zvyčajne ľahko opraviť.

Chyby na úrovni systému sú zložitejšie bugy spôsobené viacerými časťami softvéru. Ich diagnostika si vyžaduje skúseného testera. Neobmedzené chyby softvéru vznikajú, keď používateľ používa program spôsobom, ktorý vývojári neočakávali. Tieto chyby sú najčastejšie spájané so zneužívaním softvérových aplikácií.

Vedel si, že...

… V kontexte internetovej bezpečnosti sú najdôležitejšie tzv. bezpečnostné bugy, kvôli ktorým je systém zraniteľný. Pokiaľ sa stane, že útočník chybu odhalí, môže využiť script alebo metódu pre kyberútok, zvanú Exploit a napadnúť softvér alebo zariadenie.

Nástroje, ktoré používa IT tester pri hľadaní softvérových chýb

Existuje šesť fáz životného cyklu vývoja softvéru, pričom včasné testovanie je jednou z tých najdôležitejších. Úlohou softvérového testera je manuálne alebo automatické testovanie funkčnosti softvéru s cieľom nájsť všetky chyby, ktoré spôsobujú jeho nefunkčnosť. Pri testovaní softvéru máme k dispozícii rôzne nástroje na identifikovanie chýb softvéru či aplikácie.

Jira – nástroj na sledovanie chýb a riadenie projektov

Jira je jedným z najpoužívanejších nástrojov na sledovanie chýb, riadenie projektov a sledovanie problémov pri manuálnom testovaní. Tento softvér bol vyvinutý austrálskou spoločnosťou Atlassian a je založený na agilnom prístupe testovania softvéru.

Nástroj na sledovanie chýb a riadenie projektov
Jira je jedným z najpopulárnejších nástrojov na sledovanie chýb pri manuálnom testovaní.

Bugzilla podporuje rôzne operačné systémy

Veľmi obľúbeným open-source nástrojom na sledovanie chýb je taktiež Bugzilla. Najčastejšie sa používa na udržiavanie prehľadu o chybách a tiež ako nástroj na riadenie testov, pretože dokáže prepájať aj ďalšie nástroje na riadenie testovacích prípadov, ako je napríklad ALM. Výhodou testovacieho nástroja Bugzilla je, že podporuje rôzne operačné systémy, ako Windows, Linux či Mac.

Bezplatný webový systém Mantis Bug Tracker

Mantis Bug Tracker predstavuje reportovací nástroj určený na správu, evidenciu a riadenie chýb v programovacom jazyku PHP. K zamestnaniu softvérového testera, ktorý sa zameriava hlavne na vyhľadávanie chýb, sa často využíva ako neplatený ekvivalent obľúbeného nástroja Jira. Open-source nástroj Mantis dokonca umožňuje aj vedenie viacerých projektov naraz, čo nepochybne oceníš pri väčšom množstve projektov.

Odporúčame ti...

Pracovná pozícia softvér tester si na juniorských pozíciách nevyžaduje znalosť všetkých nástrojov na identifikovanie bugov, avšak mať skúsenosti s prácou v niektorom z nich je pre budúceho software testera výhodou. Preto ti pred tým, ako si pošleš CV do IT spoločnosti odporúčame naštudovať si ako fungujú najpoužívanejšie nástroje na sledovanie chýb alebo riadenie projektov.

Vyhľadávanie chýb v softvéri je pre vývoj kvalitného a bezpečného softvéru mimoriadne dôležité. Malá chyba môže viesť k veľkým stratám a problémom najmä pri softvéroch, ktoré používajú osobné údaje používateľov, umožňujú finančné transakcie alebo ktorých používanie s chybami môže vážne ohroziť zdravie či dokonca život človeka.

Ako príklad môžeme uviesť softvér, ktorý riadi elektromobil alebo magnetickú rezonanciu. Samozrejme, takéto testovanie vykonáva skúsený tester s dlhoročnými skúsenosťami zo zamestnania. Nič to však nemení na skutočnosti, že pracovná pozícia IT tester je veľmi dôležitá pre vývoj akéhokoľvek softvéru.

Ak si hľadáš zamestnanie na pozícii software tester, pozri si otvorené pracovné ponuky na zamestnania IT testera a pracuj v msg life Slovakia, kde okrem mnohých atraktívnych firemných benefitov budeš môcť absolvovať i bezplatný kurz na získanie medzinárodneho ISTQB certifikátu na testovanie softvéru, ktorá ti ako testerovi pri práci výrazne pomôže.

Daj nám o sebe vedieť