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

Bug je jedným z najčastejšie používaných pojmov pri zamestnaniach na pozícii IT testera. V oblasti softvérového testovania je totiž identifikácia a oprava bugov neoddeliteľnou súčasťou procesu. 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, ktorá býva označovaná za matku počítačovej techniky. Spolupracovníci Grace na univerzite Harvard 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 začal čoraz častejšie spájať s chybami v softvéri.

V súčasnosti sa pojmom bug označuje problém 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 takýchto chýb. Proces identifikácie a odstránenia bugov 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 technickom kontexte sú slová „chyba“ a „bug“ často používané synonymicky, ale nie vždy majú presne rovnaký význam.

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 je konkrétny prípad chyby alebo nesprávnosti v softvéri. Je to špecifický problém alebo chyba, ktorá môže spôsobiť nežiaducu funkcionalitu alebo zlyhanie produktu.
  • Chyba je všeobecný termín, ktorý označuje nejakú formu nedostatku, problému alebo nesprávnosti v softvére alebo inom produkte.
  • Bug je konkrétny typ chyby, ktorý obvykle označuje programátorskú chybu alebo chybu v zdrojovom kóde.
  • Error je termín, ktorý sa obvykle používa na označenie chyby v procese alebo výpočte. V softvérovom kontexte môže znamenať chybu v algoritme alebo matematickom výpočte.
  • Omyl označuje ľudskú chybu alebo nesprávnosť v rozhodnutí alebo konaní. Môže byť zdrojom chýb v softvére, ak napríklad programátor urobí chybu pri implementácii.
  • Zlyhanie označuje situáciu, kedy systém, komponent alebo produkt nedokáže splniť požadované špecifikácie alebo očakávania. Zlyhanie softvéru môže zapríčiniť 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.

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 automatizované testovanie funkčnosti softvéru s cieľom nájsť všetky  závažné 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, ktorá ti ako testerovi pri práci výrazne pomôže.

O autorovi

Katarína Kučáková

Software Test Engineer

Moja cesta k testovaniu softvéru sa začala v roku 2019 až po štúdiu ekonómie a pracovných skúsenostiach v iných odvetviach. To mi pomohlo vnímať IT svet v rôznych súvislostiach. Ten totiž ponúka neustále nové výzvy, pre ktoré rada hľadám riešenia. Obľubujem oddych pri čítaní, turistiku alebo lyžovanie. LinkedIn

Daj nám o sebe vedieť