Čo je to testovanie komponentov alebo testovanie modulov ? Hlavným cieľom testovania komponentov je overenie vstupného / výstupného správania testovaného objektu. Zaisťuje, že funkčnosť testovacieho objektu funguje správne a úplne v poriadku podľa požadovanej špecifikácie.
Čo je 7 princípov testovania?
Čo je 7 princípov testovania ? Existuje 7 princípov testovania softvéru, ktoré sa v priebehu rokov bežne využívajú. Tieto princípy boli prijaté Medzinárodnou radou pre testovanie softvéru (ISTQB).
Prečo je testovanie softvéru dôležité ?
Prečo je testovanie softvéru dôležité ? Testovanie softvéru je dôležité, pretože všetci robíme chyby. Potrebujeme preto skontrolovať všetko, čo vytvoríme, pretože veci sa môžu vždy pokaziť nakoľko sme ľudia a robíme chyby. Keďže každý z nás robí chyby, musíme si vždy po sebe svoju prácu skontrolovať. V ideálnom prípade by sme mali požiadať niekoho iného, aby skontroloval našu prácu, pretože iná osoba s väčšou pravdepodobnosťou nájde také chyby a nedostatky, ktoré by sme si vôbec nemuseli všimnúť.
Existuje niekoľko dôvodov, ktoré nám jasne hovoria, prečo je testovanie softvéru dôležité a aké hlavné veci by sme mali zvážiť pri testovaní akéhokoľvek produktu alebo aplikácie. Aj napriek tomuto však mnohí ľudia stále považujú testovanie softvéru za veľkú stratu času a je to podľa nich zbytočné pridávanie ďalšieho kroku do procesu vývoja softvéru. Hlavným argumentom vývojového tímu pre zrušenie alebo skrátenie času na testovanie je úspora nákladov a času. Tento prístup má však určite opačný účinok a takýto prístup je podľa môjho názoru veľmi nesprávny.
V tomto článku chcem zhrnúť môj pohľad nato prečo je testovanie softvéru dôležité a nevyhnutné v procese vývoja softvéru.
Softvérové testovanie je proces skúmania softvéru, ktorý identifikuje chyby a určuje zhody medzi skutočným a očakávaným správaním softvéru, ktorý sa vykonáva na základe súboru testov. Testovanie softvéru je technikou kontroly kvality softvéru, ktorá zahŕňa viacero činností ako je: plánovanie testovania, monitorovanie a riadenie testovania, analýzu testovania, návrhy testov, samotné vykonávanie testov a nakoniec kontrolu a analýzu získaných výsledkov z testovania. Podrobnejšie sa k jednotlivým týmto činnostiam budem venovať v ďalších článkoch.
Testovanie softvéru je veľmi dôležité z nasledujúcich dôvodov:
1. Testovanie softvéru šetrí peniaze
Testovanie má mnoho výhod a jednou z najdôležitejších je nákladová efektívnosť. Testovanie vo vašom projekte môže z dlhodobého hľadiska ušetriť peniaze. Vývoj softvéru pozostáva z mnohých fáz a ak sú chyby zachytené v skorších fázach, tak sú náklady na ich opravu omnoho nižšie. Preto je dôležité, aby sa testovanie vykonávalo čo najskôr.
Prečo by to takto malo byť ?
Skúsim vám to vysvetliť na jednoduchom príklade. Predstavte si, že si stiahnete bankovú mobilnú aplikáciu kde vám banka ako benefit za jej používanie dá veľmi výhodný kurz voči ostatným menám. Aplikáciu si stiahnete, no keď sa snažíte prihlásiť, tak sa objaví chybová hláška a aplikácia spadne. Teraz kvôli tomuto problému nielen vy, ale aj mnoho ďalších používateľov sa nemôže prihlásiť a používať túto aplikáciu. Tým, že aplikácia nefunguje a nedá sa používať, tak si používatelia teda nájdu inú podobnú aplikáciu, ktorá funguje a pravdepodobne sa k tej predchádzajúcej už nevrátia z dôvodu zlých skúseností, ktoré mali. Tým, že sa chyby našli až v procese ostrého používania aplikácie zákazníkmi, tak náklady na opravu budú omnoho vyššie ako keby boli chyby nájdené ešte počas testovania. Taktiež je tu už negatívna skúsenosť jednotlivých používateľov a tento problém je už veľmi náročné vyriešiť.
Testovanie v podstate pomáha dlhodobo šetriť čas a peniaze, pretože problémy sa vyriešia skôr, ako sa vyskytnú väčšie problémy. Náklady na údržbu sú tiež nižšie a nakoniec, ak produkt funguje na 100% tak, ako by mal, nedôjde k žiadnym iným škodám, ktoré by tieto chyby mohli spôsobiť.
2. Zabezpečenie bezpečnosti
Ďalším dôležitým bodom je bezpečnosť. Toto je pravdepodobne najcitlivejšia a najzraniteľnejšia oblasť. Vyskytlo sa veľa situácií, keď boli informácie o používateľovi ukradnuté alebo sa k nim dostali hackeri a využili ich v ich prospech. To je dôvod, prečo ľudia hľadajú dôveryhodné produkty, na ktoré sa môžu spoľahnúť. Ako používateľ mnohých produktov a aplikácií neustále hľadám produkty, ktorým by som dôverne poskytoval svoje informácie, a viem, že to bude bezpečné. Naše osobné údaje a to, čo s nimi robíme, by mali zostať čo najviac súkromné, najmä pri využívaní služieb, v ktorých musíme svoje citlivé údaje zverejňovať napríklad bankové informácie, bezpečnostné informácie atď.
Ako testovanie môže pomôcť bezpečnosti vášho produktu ?
- Používateľ získa dôveryhodný produkt;
- Váš produkt bezpečne chráni osobné údaje a citlivé údaje používateľa;
- Váš produkt je bez zraniteľnosti;
- Problémy a riziká spojené s bezpečnosťou alebo prípadným únikom citlivých dát sa vopred odstránia;
- Testovanie ušetrí veľa problémov, ktoré by mohli neskôr nastať;
Niekedy dokonca aj tie najmenšie bezpečnostné problémy priniesli podnikom na celom svete obrovské problémy. Preto je testovanie aj z tohto hľadiska veľmi dôležité.
3. Zabezpečenie kvality
Kvalita softvéru je v tomto konkurenčnom svete veľmi dôležitá. Predtým, ako produkt vstúpi do reálneho sveta, musí byť odborníkmi riadne otestovaný. Malá chyba niekedy vedie k veľkej strate a ovplyvňuje dobré meno spoločnosti. Softvérové produkty vždy slúžia používateľom nejakým spôsobom, takže je veľmi dôležité, aby priniesli hodnotu, ktorú sľubujú a preto by mal správne fungovať, aby sa zabezpečil čo najlepší používateľský zážitok pre zákazníka. Vývoj aplikácie obsahuje mnoho procesov a je dôležité aby sa testovaním otestovalo čo najviac častí aplikácie.
4. Zabezpečenie kompatibility
Vzhľadom na to, že v súčasnosti je k dispozícii veľa zariadení, operačných systémov a prehliadačov, je potrebné, aby softvér bol kompatibilný so všetkými platformami, aby používateľom poskytoval bezproblémový užívateľský komfort.
Ak je funkčnosť softvéru ovplyvnená zmenou zariadení, môže sa počítať s negatívnou skúsenosťou používateľa. Testovanie eliminuje takéto chyby a zároveň zvyšuje kompatibilitu a prispôsobivosť softvéru.
5. Spokojnosť zákazníkov
Konečným cieľom vlastníka produktu je poskytnúť čo najlepšiu spokojnosť zákazníka. Dôvody, pre ktoré by sa mali aplikácie a softvér testovať, sú v záujme čo najlepšej používateľskej skúsenosti. Akonáhle budú mať používatelia výbornú skúsenosť s produktom, bez akýchkoľvek pochybností o tom povedia svojim priateľom, napíšu pozitívnu recenziu a tým to spraví pre samotnú firmu veľmi dobrú reklamu.
Dôveru zákazníkov nie je ľahké získať, najmä ak váš produkt stále padá a funguje iba 60% času. Určite ste používateľom mnohých produktov a aplikácii a určite aj vy máte negatívne skúsenosti s funkčnosťou niektorých týchto aplikácií, kvôli ktorým ste aplikáciu odstránili a povedali ostatným, aby ju nepoužívali. V súčasnosti je trh taký nasýtený, že prvý dojem je dôležitý, inak používatelia nájdu iný produkt, ktorý vyhovuje jeho potrebám.
Nájsť chyby v softvéri je úplne bežné. Vo fáze testovania softvéru nikomu neubližujú. V prípade, ak sa nájdené chyby budú ignorovať, môže to viesť k vážnym problémom pre všetky strany zapojené do procesu vývoja softvéru. Ignorovanie testovania softvéru je niečo, čo vývojári ignorujú na vlastné riziko. Čím skôr sa začne testovanie v procese vývoja softvéru vykonávať a čím dôkladnejšie bude, tým lepšie to bude pre vývojárov aj pre používateľov, čo vedie celkovo k lepšiemu výsledku, ktorý bude pre všetkých výhodnejší a z dlhodobého hľadiska výnosnejší.
Toto bol môj pohľad na to prečo je testovanie softvéru dôležité a nevyhnuté. V prípade, akýchkoľvek otázok ma neváhajte kontaktovať prostredníctvom kontaktného formulára v sekcii poradňa.
Aké sú ciele testovania softvéru ?
Aké sú ciele testovania softvéru ? Toto je môj pohľad a krátky popis k najdôležitejším cieľom testovania.
Včasné overenie splnenia všetkých požiadaviek stanovených zákazníkom
Toto je veľmi dôležitý ciel testovania, ktorý umožňuje testerom potvrdiť, či testovaný softvér spĺňa všetky obchodné a technické požiadavky stanovené zákazníkom ešte pred začiatkom celého projektu. Identifikácia nejasností alebo protichodných požiadaviek v tejto fáze výrazne šetrí vývoj a hlavne aj čas potrebný na testovanie. Statická analýza kódu (revízie, kontroly atď.) sa uskutoční skôr, ako je samotný kód pripravený na testovanie.
Včasne predchádzať a zabrániť chybám v testovanom softvéry
Jedným z dôležitých cieľov testovania softvéru je vyhnúť sa chybám v počiatočnom štádiu vývoja. Včasné odhalenie chýb významne znižuje náklady a šetrí drahocenný čas. Čím neskôr sú v procese chyby nájdené, tým sú náklady vyššie. Včasné testovanie je zároveň aj jeden zo základných princípov testovania, ktoré vám určite popíšem v ďalších článkoch.
Overenie, či je testovaný softvér kompletný a funguje podľa očakávaní zákazníka a zainteresovaných strán
Testovanie zabezpečuje kontrolu nad tým, že softvér funguje podľa očakávaní a podľa požiadaviek zákazníkov. V testovaní sa toto nazýva validácia. Validácia teda zahŕňa kontrolu porovnania konečného výstupu s očakávaným výstupom a potom neskôr aj samotné vykonanie potrebných zmien, ak boli počas porovnávania nájdené nejaké rozdiely a nedostatky.
Zvýšenie kvality testovaného softvéru
Jedným z cieľov testovania softvéru je zvýšenie kvality softvéru. Čím efektívnejší je proces testovania, tým menej chýb sa bude v testovanom softvéri nachádzať, čo následne zvýši celkovú kvalitu testovaného softvéru. Testery navyše používajú rôzne typy testovacích techník, ktoré im pomáhajú dosiahnuť požadovanú kvalitu softvéru.
Hľadanie chýb v softvéri a predchádzanie defektom
Najdôležitejším cieľom testovania je nájsť čo najviac chýb v softvéri, aby sa zabránilo jeho zlyhaniu počas používania v ostrej prevádzke. Chyby, ktoré nebudú počas testovania nájdené, môžu výrazne poškodiť fungovanie softvéru a môžu viesť okrem straty peňazí, povesti zákazníka aj k veľmi nebezpečným situáciám. Príkladom môže byť veľmi známy prípad havárie lietadiel značky Boeing 737 Max z roku 2019, kedy podľa dostupných informácii mohol za havárie práve softvérový problém. Testovanie softvéru sa preto vykonáva pravidelne počas každej fázy vývoja softvéru, aby sa našlo čo najväčšie množstvo chýb.
Stále platí to, čo som spomínal aj vyššie, že včasné odhalenie chýb významne znižuje náklady a výrazne šetrí čas. Napríklad chybu nájdenú počas UAT testovania bude oveľa nákladnejšie opraviť ako keby bola táto chyba nájdená v prvotných fázach testovania. Testovacie prípady by mali poryť čo najväčšiu časť aplikácie s maximálny cieľom nájdenia chýb. Testovacie prípady by mali byť napísané hlavne efektívne. Dobré pokrytie znamená, že testovanie pokrylo čo najviac rôznych oblastí, ako je funkčnosť samotnej aplikácie, kompatibilita aplikácie s OS, funkčnosť aplikácie pre rôzne typy prehliadačov, testovanie výkonu aplikácie a testovanie zaťaženia, aby sa zabezpečilo, že systém je spoľahlivý aj počas veľkého zaťaženia.
Poskytovať zúčastneným stranám dostatočné informácie, ktoré môžu na základe týchto informácii vykonávať ďalšie rozhodnutia
Účelom testovania je aj poskytnúť zúčastneným stranám informácie o technických alebo iných obmedzeniach, rizikových faktoroch, nejednoznačných požiadavkách atď. Napríklad jedným z cieľov akceptačného testovania môže byť potvrdenie, že systém funguje podľa očakávaní a spĺňa požiadavky zákazníka.
Toto bol teda môj pohľad a krátky popis k najdôležitejším cieľom testovania. Tých cieľov je samozrejme omnoho viac, vybral som tie z môjho pohľadu najdôležitejšie.
V prípade, akýchkoľvek otázok ma neváhajte kontaktovať prostredníctvom kontaktného formulára v sekcii poradňa.
Čo je to testovanie softvéru ?
Testovanie softvéru je definované ako aktivita na overenie, či sa skutočné výsledky zhodujú s očakávanými. Testovanie softvéru je spôsob, ako môžeme zhodnotiť jeho kvalitu, a tým znížiť riziko zlyhania, ktoré môže vzniknúť počas prevádzky, teda používania daného programu alebo aplikácie. Testovanie môže byť statické alebo dynamické.
A aký je medzi týmito dvoma pojmami rozdiel?
Dynamické testovanie je to, čo napadne asi väčšine z Vás, čiže samotné spúšťanie testov, a teda aj samotného testovaného programu.
Pri statickom testovaní k samotnému spúšťaniu testov alebo aplikácie nedochádza. Pri statickom testovaní ide hlavne o kontrolu požiadaviek zákazníka napr.: hľadanie chýb a medzier, ktoré sú v rozpore so skutočnými požiadavkami, ale často krát sem spadá aj kontrola a úprava testovacích scenárov alebo priamo kontrola vytvoreného zdrojového kódu bez jeho samotného spustenia.
V rámci statického testovania je dôležité si uvedomiť ešte jednu vec. Statické testovanie nezahŕňa iba kontrolu toho, či systém spĺňa uvedené požiadavky zákazníka, ale kontroluje aj to, či systém splní potreby používateľa a kľúčovej osoby v prevádzkových prostrediach.
V praxi je to dôležité hlavne preto, lebo márne bude program fungovať bezchybne, keď vôbec nebude fungovať tak, ako si želal zákazník. Práve z tohto dôvodu je statické testovanie rovnako dôležité ako dynamické.
Proces testovania zahŕňa aj aktivity, ako sú plánovanie, analýza, návrhy a implementácia testov, reportovanie pokroku a výsledkov, a hodnotenie kvality testovaného objektu. Ku každej z uvedených aktivít sa budem podrobnejšie venovať v ďalších článkoch.
Toto je úplne základné predstavenie testovania. Ďalšie detaily a podrobnosti Vám budem prinášať v nasledujúcich článkoch.
V prípade akýchkoľvek otázok ma neváhajte kontaktovať prostredníctvom kontaktného formulára v sekcii poradňa.