Testovanie systému je typ testovania softvéru, pri ktorom sa vykonáva kontrola systému ako celku.
Zahŕňa integráciu všetkých jednotlivých modulov a komponentov vyvinutého softvéru s cieľom otestovať, či systém funguje spoločne podľa očakávaní.
Testovanie systému je základným krokom testovania softvéru, ktorý ďalej umožní testovacím tímom overiť kvalitu zostavy pred jej uvoľnením pre koncových používateľov.
V tomto článku sa budeme venovať systémovému testovaniu: čo to je, ako funguje, kto vykonáva systémové testovanie a aké prístupy a nástroje môžu testovacie tímy využiť, aby bolo systémové testovanie rýchlejšie a spoľahlivejšie.
Stručne povedané, nájdete tu všetko, čo potrebujete vedieť o testovaní systému.
Čo je testovanie systému?
Systémové testovanie je typ testovania softvéru, ktorý sa vždy vykonáva na celom systéme. Kontroluje, či systém spĺňa jeho požiadavky, nech sú akékoľvek.
Testeri vykonávajú testovanie systému s cieľom vyhodnotiť funkčné aj nefunkčné požiadavky systému po integrácii jednotlivých modulov a komponentov.
Testovanie systému je kategória testovania čiernej skrinky, čo znamená, že sa testujú len vonkajšie pracovné funkcie softvéru, na rozdiel od testovania vnútorného návrhu aplikácie.
Testeri nepotrebujú žiadne znalosti o programovaní a štruktúre softvérového kódu, aby mohli plne vyhodnotiť zostavenie softvéru počas testovania systému. Namiesto toho testeri jednoducho posudzujú výkonnosť softvéru z pohľadu používateľa.
1. Kedy je potrebné vykonať testovanie systému?
Testovanie systému sa vykonáva po integračnom testovaní a pred akceptačným testovaním. Testovanie systému pravidelne vykonáva tím pre testovanie softvéru s cieľom zabezpečiť, aby systém v kľúčových fázach vývoja fungoval tak, ako má.
Príklady prípadov, keď sa vykonáva testovanie systému, sú:
● Počas vývoja nových verzií softvéru.
● počas spustenia aplikácie, keď prebieha alfa a beta testovanie.
● Po ukončení testovania jednotiek a integračného testovania.
● Po dokončení požiadaviek na zostavenie systému.
● Ak sú splnené ostatné podmienky testovania.
Podobne ako pri iných formách testovania softvéru sa odporúča pravidelne vykonávať testovanie systému, aby sa zabezpečilo, že softvér funguje tak, ako má.
Frekvencia testovania systému závisí od zdrojov vášho tímu a od prístupov a nástrojov, ktoré používate na testovanie systémového softvéru.
2. Keď nepotrebujete systémové testy
Ak ste ešte nevykonali predbežné testy, ako sú smoke testy, unit testy a integračné testy, potom nie ste pripravení začať testovať systém.
Vždy je dôležité vykonať systémové testovanie po dokončení integračného testovania, ale ak narazíte na chyby a problémy, ktoré spôsobia zlyhanie systémového testu, môžete systémové testovanie zastaviť a vrátiť sa k vývoju a odstraňovaniu chýb skôr, ako budete pokračovať ďalej.
3. Kto sa podieľa na testovaní systému?
Testovanie systému vykonávajú testeri a tímy QA, a nie vývojári. Pri testovaní systému sa berú do úvahy len vonkajšie prvky softvéru alebo inými slovami skúsenosti používateľov, ktorí sa snažia získať prístup k funkciám softvéru.
To znamená, že testeri, ktorí vykonávajú testovanie systému, nepotrebujú žiadne technické znalosti počítačového kódovania, programovania a iných aspektov vývoja softvéru, ktoré by mohli vyžadovať vstup vývojárov.
Jedinou výnimkou je prípad automatizovaného testovania systému, ktoré si môže vyžadovať určitý vstup vývojárov v závislosti od toho, ako k nemu pristupujete.
Čo testujeme pri testovaní systému?
Systémové testovanie je typ testovania softvéru, ktorý sa používa na testovanie funkčných aj nefunkčných aspektov softvéru.
Možno ho použiť na testovanie veľkého množstva funkcií a vlastností, z ktorých mnohé sú podrobnejšie opísané v časti Typy testovania systému.
Niektoré zo softvérových aspektov, ktoré testovanie systému overuje, sú uvedené nižšie.
1. Funkčnosť
Testeri používajú testovanie systému na overenie, či rôzne aspekty dokončeného systému fungujú tak, ako majú.
Predbežné testovanie možno použiť na posúdenie štruktúry a logiky vnútorného kódu a spôsobu integrácie jednotlivých modulov, ale systémové testovanie je prvým krokom, ktorý takto testuje funkčnosť softvéru ako celku.
2. Integrácia
Systémové testovanie testuje, ako rôzne softvérové komponenty spolupracujú a či sú navzájom hladko integrované.
Testeri môžu testovať aj externé periférne zariadenia, aby posúdili ich interakciu so softvérom a ich správne fungovanie.
3. Očakávaný výstup
Testeri používajú softvér rovnako ako používatelia počas testovania systému, aby overili výstupy softvéru počas bežného používania. Kontrolujú, či výstupy pre každú funkčnú a nefunkčnú vlastnosť softvéru zodpovedajú očakávaniam.
Ak sa softvér nechová tak, ako by mal, je zrejmé, že si vyžaduje ďalší vývoj.
4. Chyby a omyly
Systémové testovanie sa používa na posúdenie funkčnosti a spoľahlivosti softvéru na viacerých platformách a vo viacerých operačných systémoch.
Systémoví testeri overujú, či softvér neobsahuje chyby, problémy s výkonom a kompatibilitou na všetkých platformách, na ktorých má byť spustený.
Kritériá vstupu a výstupu
Vstupné a výstupné kritériá sa pri testovaní systému používajú na zistenie, či je systém pripravený na testovanie systému a či boli splnené požiadavky na testovanie systému.
Inými slovami, vstupné a výstupné kritériá pomáhajú testerom vyhodnotiť, kedy začať testovanie systému a kedy ho ukončiť.
Vstupné kritériá
Vstupné kritériá stanovujú, kedy by mali testeri začať testovať systém.
Vstupné kritériá sa môžu v jednotlivých projektoch líšiť v závislosti od účelu testovania a použitej stratégie testovania.
Vstupné kritériá určujú podmienky, ktoré musia byť splnené pred začatím testovania systému.
1. Fáza testovania
Vo väčšine prípadov je dôležité, aby testovaný systém už ukončil integračné testovanie a splnil výstupné požiadavky na integračné testovanie pred začatím testovania systému.
Integračné testovanie by nemalo odhaliť závažné chyby alebo problémy s integráciou komponentov.
2. Plány a scenáre
Pred začatím testovania systému by mal byť napísaný, podpísaný a schválený plán testovania.
Budete tiež musieť mať vopred pripravené testovacie prípady a testovacie skripty pripravené na vykonanie.
3. Pripravenosť
Skontrolujte, či je testovacie prostredie pripravené a či sú k dispozícii všetky nefunkčné požiadavky testu.
Kritériá pripravenosti sa môžu v rôznych projektoch líšiť.
Kritériá ukončenia
Výstupné kritériá určujú konečnú fázu testovania systému a stanovujú požiadavky, ktoré musia byť splnené, aby sa testovanie systému považovalo za ukončené.
Výstupné kritériá sa často prezentujú ako jeden dokument, ktorý jednoducho identifikuje výsledky tejto fázy testovania.
1. Vykonávanie
Najzákladnejším výstupným kritériom pre ukončenie testovania systému je, že všetky testovacie prípady uvedené v plánoch testovania systému a vstupných kritériách boli vykonané správne.
2. Chyby
Pred ukončením testovania systému skontrolujte, či nie sú otvorené žiadne kritické alebo prioritné chyby.
Chyby so strednou a nízkou prioritou môžu byť ponechané v otvorenom stave za predpokladu, že sú implementované so súhlasom zákazníka alebo koncového používateľa.
3. Nahlasovanie
Pred ukončením testovania systému by sa mala predložiť výstupná správa. Táto správa zaznamenáva výsledky testov systému a preukazuje, že testovanie splnilo požadované výstupné kritériá.
Životný cyklus testovania systému
Životný cyklus testovania systému opisuje každú fázu testovania systému od fázy plánovania až po podávanie správ a ukončenie.
Pochopenie jednotlivých fáz životného cyklu testovania systému vám pomôže pochopiť, ako vykonávať testovanie systému a ako funguje.
Fáza 1: Vytvorenie plánu testovania
Prvou fázou testovania systému je vytvorenie plánu testovania systému.
Účelom plánu testovania je načrtnúť očakávania od testovacích prípadov, ako aj stratégiu testovania.
Plán testovania zvyčajne definuje ciele a úlohy testovania, rozsah, oblasti, výstupy, harmonogram, vstupné a výstupné kritériá, testovacie prostredie a úlohy a zodpovednosti ľudí zapojených do testovania softvérového systému.
Fáza 2: Vytvorenie testovacích prípadov
Ďalšou fázou testovania systému je vytvorenie testovacích prípadov.
Testovacie prípady definujú presné funkcie, vlastnosti a metriky, ktoré sa budú testovať počas testovania systému. Môžete napríklad otestovať, ako funguje konkrétna funkcia alebo ako dlho trvá načítanie konkrétneho kódu.
Pre každý testovací prípad uveďte ID a názov testovacieho prípadu spolu s informáciami o spôsobe testovania tohto scenára a o očakávanom výsledku testovacieho prípadu.
Môžete tu tiež uviesť kritériá úspešnosti/neúspešnosti pre každý testovací prípad.
Fáza 3: Vytvorenie testovacích údajov
Po vytvorení testovacích prípadov môžete vytvoriť testovacie údaje, ktoré budete potrebovať na vykonanie testov.
Testovacie údaje opisujú vstupy, ktoré bude testovací tím potrebovať na otestovanie, či ich akcie vedú k očakávaným výsledkom.
Fáza 4: Vykonanie testovacích prípadov
Táto fáza je to, čo väčšine ľudí napadne, keď si predstavia testovanie systému: vykonávanie testovacích prípadov alebo samotné testovanie.
Testovací tím vykoná každý testovací prípad samostatne, pričom monitoruje výsledky každého testu a zaznamenáva všetky chyby alebo poruchy, na ktoré narazí.
Fáza 5: Nahlásenie a oprava chýb
Po vykonaní testovacích prípadov testeri spíšu správu o testovaní systému, v ktorej podrobne opíšu všetky problémy a chyby, ktoré sa počas testovania vyskytli.
Niektoré z chýb, ktoré test odhalí, môžu byť malé a ľahko opraviteľné, zatiaľ čo iné by mohli zostavenie vrátiť späť. Opravte tieto chyby, keď sa objavia, a opakujte testovací cyklus (ktorý zahŕňa aj iné typy testovania softvéru, ako je napríklad testovanie dymu), kým neprejde bez väčších chýb.
Vyjasnenie nejasností: Testovanie systému vs. integračné testovanie vs. užívateľské akceptačné testovanie
Mnoho ľudí si zamieňa testovanie systému s inými typmi testovania softvéru, ako je integračné testovanie a užívateľské akceptačné testovanie.
Hoci testovanie systému, integračné testovanie a užívateľské akceptačné testovanie majú niektoré spoločné charakteristiky, ide o rôzne typy testovania, ktoré slúžia na rôzne účely a každý typ testovania sa musí vykonávať nezávisle od ostatných.
Čo je integračné testovanie?
Integračné testovanie je typ testovania softvéru, pri ktorom sa softvérové moduly a komponenty testujú ako skupina s cieľom posúdiť, ako dobre sa integrujú.
Integračné testovanie je prvý typ testovania softvéru, ktorý sa používa na testovanie jednotlivých modulov, ktoré spolu spolupracujú.
Integračné testovanie vykonávajú testeri v prostredí QA a je nevyhnutné, pretože odhaľuje chyby, ktoré môžu vzniknúť pri vzájomnej interakcii samostatne nakódovaných komponentov.
Aké sú rozdiely medzi testovaním systému a integračným testovaním?
Hoci systémové testovanie aj integračné testovanie testujú softvérovú zostavu ako celok, ide o rôzne typy testovania softvéru, ktoré fungujú odlišne.
Najskôr prebieha integračné testovanie a po ukončení integračného testovania prebieha testovanie systému. Ďalšie hlavné rozdiely medzi testovaním systému a integračným testovaním sú:
1. Účel:
Účelom integračného testovania je posúdiť, či jednotlivé moduly pri integrácii správne spolupracujú. Cieľom testovania systému je otestovať, ako systém funguje ako celok.
2. Typ:
Integračné testovanie testuje výlučne funkčnosť a nie je to typ akceptačného testovania.
Naproti tomu systémové testovanie testuje funkčné aj nefunkčné vlastnosti a patrí do kategórie akceptačného testovania (ale nie užívateľského akceptačného testovania).
3. Technika:
Integračné testovanie využíva testovanie čiernej aj bielej skrinky na posúdenie softvéru z pohľadu používateľa aj vývojára, zatiaľ čo systémové testovanie využíva výlučne metódy testovania čiernej skrinky na testovanie softvéru z pohľadu používateľa.
4. Hodnota:
Integračné testovanie sa používa na identifikáciu chýb rozhrania, zatiaľ čo systémové testovanie sa používa na identifikáciu chýb systému.
Čo je užívateľské akceptačné testovanie?
Používateľské akceptačné testovanie alebo UAT je typ testovania softvéru, ktoré vykonáva koncový používateľ alebo zákazník s cieľom overiť, či softvér spĺňa požadované požiadavky.
Používateľské akceptačné testovanie je poslednou formou testovania, ktorá sa uskutoční pred presunom softvéru do produkčného prostredia.
Vykonáva sa po ukončení funkčného testovania, integračného testovania a testovania systému.
Aké sú rozdiely medzi testovaním systému a užívateľským akceptačným testovaním?
Používateľské akceptačné testovanie aj integračné testovanie overujú, či zostavený softvér funguje tak, ako má, a oba typy testovania sa zameriavajú na to, ako softvér funguje ako celok.
Medzi testovaním systému a používateľským akceptačným testovaním je však veľa rozdielov:
1. Testeri:
Zatiaľ čo testovanie systému vykonávajú testeri (a niekedy aj vývojári), užívateľské akceptačné testovanie vykonávajú koncoví používatelia.
2. Účel:
Účelom používateľského akceptačného testovania je posúdiť, či zostavený softvér spĺňa požiadavky koncového používateľa, a účelom systémového testovania je otestovať, či systém spĺňa požiadavky testera.
3. Metóda:
Počas testovania systému sa integrujú jednotlivé jednotky zostaveného softvéru a testujú sa ako celok. Počas užívateľského akceptačného testovania testuje koncový používateľ systém ako celok.
4. Fáza:
Testovanie systému sa vykonáva hneď po ukončení integračného testovania a pred uskutočnením akceptačného testovania používateľom. Používateľské akceptačné testovanie sa uskutočňuje tesne pred vydaním produktu pre prvých používateľov.
Typy testovania systému
Existuje viac ako 50 rôznych typov testovania systému, ktoré si môžete osvojiť, ak chcete otestovať, ako vaše softvérové zostavenie funguje ako celok.
V praxi však väčšina testovacích tímov využíva len niektoré z týchto typov testovania systému.
Typ testovania systému závisí od mnohých rôznych faktorov vrátane rozpočtu, časových obmedzení, priorít a zdrojov.
1. Testovanie funkčnosti
Testovanie funkčnosti je typ testovania systému, ktorého cieľom je skontrolovať jednotlivé vlastnosti a funkcie softvéru a posúdiť, či fungujú tak, ako majú.
Tento typ testovania systému sa môže vykonávať manuálne alebo automaticky a je to jeden zo základných typov testovania systému, ktoré vykonávajú testovacie tímy.
2. Testovanie výkonnosti
Testovanie výkonnosti je typ testovania systému, ktorý zahŕňa testovanie toho, ako dobre aplikácia funguje počas bežného používania.
Nazýva sa aj testovanie zhody a zvyčajne znamená testovanie výkonu aplikácie, keď ju používa viacero používateľov naraz.
Pri testovaní výkonu sa testeri zameriavajú na čas načítania, ako aj na chyby a iné problémy.
3. Testovanie záťaže
Testovanie záťaže je typ testovania systému, ktoré testeri vykonávajú s cieľom posúdiť, ako dobre aplikácia zvláda veľké zaťaženie.
Testeri môžu napríklad testovať, ako dobre aplikácia funguje, keď sa veľa používateľov snaží vykonať tú istú úlohu v rovnakom čase, alebo ako dobre aplikácia vykonáva viacero úloh naraz.
4. Testovanie škálovateľnosti
Testovanie škálovateľnosti je typ testu softvérového systému, ktorý testuje, ako dobre sa softvér škáluje, aby vyhovoval potrebám rôznych projektov a tímov.
Ide o typ nefunkčného testovania, ktoré zahŕňa posúdenie toho, ako softvér funguje pre rôzny počet používateľov alebo pri používaní na rôznych miestach a s rôznymi zdrojmi.
5. Testovanie použiteľnosti
Testovanie použiteľnosti je typ testovania systému, ktorý zahŕňa testovanie použiteľnosti aplikácie.
To znamená, že testeri posudzujú a hodnotia, ako ľahko sa aplikácia ovláda a používa, ako intuitívne sú jej funkcie a či sa v nej nevyskytujú chyby alebo problémy, ktoré by mohli spôsobiť problémy s použiteľnosťou.
6. Testovanie spoľahlivosti
Testovanie spoľahlivosti je typom testovania systémovej integrácie, ktorým sa overuje spoľahlivosť softvéru.
Vyžaduje si testovanie funkcií a výkonu softvéru v kontrolovanom prostredí s cieľom posúdiť, či sú výsledky jednorazových testov spoľahlivé a opakovateľné.
7. Testovanie konfigurácie
Testovanie konfigurácie je typom testovania systému, pri ktorom sa hodnotí, ako dobre systém funguje pri práci s rôznymi typmi softvéru a hardvéru.
Cieľom testovania konfigurácie je určiť najlepšiu konfiguráciu softvéru a hardvéru na maximalizáciu výkonu systému ako celku.
8. Testovanie bezpečnosti
Testovanie bezpečnosti je typ testovania systému, ktorý hodnotí, ako softvér funguje vo vzťahu k bezpečnosti a dôvernosti.
Účelom testovania bezpečnosti je identifikovať všetky potenciálne zraniteľnosti a nebezpečenstvá, ktoré by mohli byť zdrojom narušenia a porušenia údajov, ktoré by mohli viesť k strate peňazí, dôverných údajov a iných dôležitých aktív.
9. Testovanie migrácie
Migračné testovanie je typ systémového testovania, ktoré sa vykonáva na softvérových systémoch s cieľom posúdiť, ako môžu spolupracovať so staršími alebo novšími infraštruktúrami.
Testeri môžu napríklad posúdiť, či staršie softvérové prvky môžu prejsť na novú infraštruktúru bez toho, aby sa objavili chyby a omyly.
Čo potrebujete na spustenie testovania systému
Pred začatím testovania systému je dôležité, aby ste mali jasný plán, ako zhromaždiť zdroje a nástroje potrebné na úspešné a hladké testovanie systému.
Ide o relatívne náročný proces, či už testujete manuálne, automaticky, alebo používate oba prístupy, preto je najlepším spôsobom, ako znížiť riziko oneskorenia a prerušenia testovania, vedieť, čo budete potrebovať ešte pred začatím.
1. Stabilné zostavenie, ktoré je takmer pripravené na spustenie
Systémové testovanie je jednou z posledných fáz testovania softvéru, ktorá prebieha pred vydaním: jediným typom testovania, ktoré prebieha po systémovom testovaní, je užívateľské akceptačné testovanie.
Je dôležité, aby ste pred začatím testovania systému už vykonali iné typy testovania softvéru vrátane funkčného testovania, regresného testovania a integračného testovania a aby zostavený softvér spĺňal výstupné kritériá pre každý z týchto typov testov softvéru.
2. Plány testovania systému
Pred začatím testovania spíšte formálnu dokumentáciu, v ktorej uvediete účel a ciele testov, ktoré sa chystáte vykonať, a definujete vstupné a výstupné kritériá testovania systému.
Tento plán môžete použiť na načrtnutie jednotlivých testovacích scenárov, ktoré budete testovať, alebo na definovanie očakávaní, ako bude systém fungovať.
Plán testovania systému by mal testerom uľahčiť navrhovanie a vykonávanie testovania systému podľa tohto plánu.
3. Testovacie prípady
Pred začatím testovania systému je dôležité načrtnúť testovacie prípady, ktoré budete testovať počas testovania systému.
Testovacie prípady nemusia byť vyčerpávajúce, ale mali by byť dostatočne úplné, aby testovali najdôležitejšie funkčné a nefunkčné vlastnosti systému a poskytovali presný prehľad o fungovaní systému ako celku.
4. Zručnosti a čas
Pred začatím testovania systému sa uistite, že ste na testovanie systému vyčlenili dostatočné zdroje.
Testovanie systému môže trvať pomerne dlho, najmä v porovnaní s inými typmi testovania, ako je napríklad testovanie dymu.
Musíte určiť, ktorí ľudia z vášho tímu budú vykonávať testovanie a koľko času si budú musieť pred začatím testovania vyhradiť.
5. Nástroje na testovanie systému
Testovanie systému sa môže vykonávať manuálne alebo automatizovane, ale bez ohľadu na to, aký prístup k testovaniu zvolíte, je možné zefektívniť a optimalizovať pracovné postupy testovania systému pomocou nástrojov a technológií, ktoré pomáhajú pri rôznych aspektoch testovania.
Môžete napríklad použiť nástroje umelej inteligencie na automatizáciu niektorých testov systému alebo softvér na správu dokumentov, ktorý vám pomôže sledovať priebeh a výsledky testovania.
Proces testovania systému
Skôr ako začnete, je dôležité pochopiť proces testovania systému a spôsob vykonávania jednotlivých krokov.
Tento plán krok za krokom sa riadi životným cyklom testovania systému, ktorý bol podrobne opísaný predtým, ale podrobnejšie opisuje jednotlivé kroky testovania systému.
Krok 1: Vytvorenie plánu testovania systému
Pred začatím testovania systému vytvorte plán testovania systému. Každý plán testovania systému bude iný, ale váš plán by mal obsahovať aspoň náčrt účelu testovania, ako aj príslušné vstupné a výstupné kritériá, ktoré určujú, kedy sa má testovanie začať a kedy skončiť.
Krok 2: Vytvorenie testovacích scenárov a testovacích prípadov
Ďalšou fázou je vytvorenie testovacích scenárov a testovacích prípadov, ktoré presne opisujú, čo budete testovať a ako to budete testovať.
Zahrňte reálne testovacie scenáre, ktoré testujú, ako softvér funguje pri typickom používaní, a pre každý testovací prípad, ktorý napíšete, uveďte podrobnosti o kritériách úspešnosti a neúspešnosti testu a o očakávanom výsledku.
Krok 3: Vytvorenie požadovaných testovacích údajov
Vytvorte požadované testovacie údaje pre každý testovací scenár, ktorý plánujete vykonať.
Testovacie údaje, ktoré budete potrebovať pre každý testovací scenár, ktorý plánujete spustiť, sú všetky testovacie údaje, ktoré ovplyvňujú alebo sú ovplyvnené každým konkrétnym testom.
Túto fázu je možné generovať ručne alebo ju môžete automatizovať, ak chcete ušetriť čas a máte na to prostriedky.
Krok 4: Nastavenie testovacieho prostredia
Ďalším krokom je nastavenie testovacieho prostredia pripraveného na spustenie systémových testov. Lepšie výsledky testovania systému dosiahnete, ak vytvoríte testovacie prostredie podobné produkčnému.
Uistite sa, že vaše testovacie prostredie obsahuje všetok softvér a hardvér, ktorý chcete testovať počas konfiguračného a integračného testovania.
Krok 5: Vykonanie testovacích prípadov
Po nastavení testovacieho prostredia môžete spustiť testovacie prípady, ktoré ste vytvorili v druhom kroku.
Tieto testovacie prípady môžete vykonať buď ručne, alebo ich môžete automatizovať pomocou skriptu.
Pri vykonávaní každého testovacieho prípadu si poznačte výsledky testu.
Krok 6: Príprava hlásení o chybách
Po vykonaní všetkých načrtnutých testovacích prípadov môžete výsledky jednotlivých testov použiť na spísanie hlásení o chybách, v ktorých podrobne upozorníte na všetky chyby a nedostatky, ktoré ste identifikovali počas testovania systému.
Odovzdajte túto správu vývojárom, aby opravili chyby. Fáza opravy chýb môže trvať určitý čas v závislosti od zložitosti a závažnosti identifikovaných chýb.
Krok 7: Opätovné testovanie po oprave chýb
Keď vývojári softvéru po odstránení chýb pošlú softvér späť na ďalšie testovanie, je dôležité zostavenie softvéru znova otestovať.
Testovanie systému by sa nemalo považovať za ukončené, kým sa v tomto kroku neobjavia žiadne chyby alebo nedostatky.
Nestačí predpokladať, že všetky chyby boli odstránené a že zostavenie je teraz pripravené na prechod k používateľskému akceptačnému testovaniu.
Krok 8: Opakovanie cyklu
Posledným krokom je jednoducho zopakovať tento cyklus toľkokrát, koľkokrát potrebujete, aby ste prešli siedmym krokom bez identifikácie chýb alebo nedostatkov.
Po úspešnom testovaní systému a splnení všetkých výstupných kritérií uvedených v pláne testovania systému je čas prejsť k používateľskému akceptačnému testovaniu a nakoniec k vydaniu produktu.
Manuálne vs. automatizované testy systému
Podobne ako iné typy testovania softvéru, aj testovanie systému môže byť vykonávané buď manuálne ľudskými testermi, alebo aspoň čiastočne automatizované softvérom. Automatizácia testovania softvéru zefektívňuje proces testovania a šetrí čas a peniaze, ale niekedy je dôležité vykonávať aj manuálne testovanie systému.
Manuálne aj automatizované testovanie systému má svoje výhody aj nevýhody a je dôležité im porozumieť ešte predtým, ako sa rozhodnete, ktorý typ testovania systému chcete realizovať.
Manuálne testovanie systému
Manuálne testovanie systému znamená, že testovanie systému sa vykonáva manuálne, bez automatizácie časti celého procesu testovania.
Manuálne testovanie systému trvá dlhšie ako automatizované testovanie, ale znamená to tiež, že proces testovania využíva ľudský pohľad a úsudok.
Manuálne testovanie sa často kombinuje s automatizovaným testovaním, aby sa maximalizovala účinnosť a presnosť testovania systému a iných typov softvérových testov.
1. Výhody manuálneho testovania systému
Manuálne testovanie systému má mnoho výhod a tieto výhody vysvetľujú, prečo sa mnohé testovacie tímy rozhodnú pokračovať v manuálnom testovaní, ako aj v automatizovanom testovaní aj po automatizácii testovacích skriptov.
Zložitosť
Manuálne testovanie je vhodné na testovanie komplexných testovacích scenárov, ktoré nie je vždy jednoduché automatizovať.
Ak sú požiadavky na testovanie systému komplikované alebo podrobné, môže byť jednoduchšie testovať tieto scenáre ručne, ako pre ne písať automatizované testovacie skripty.
Prieskumné testovanie
Keď automatizujete akýkoľvek druh softvérového testu, test sa riadi svojím scenárom a testuje presne tie funkcie, ktoré ste naprogramovali, aby test vyhodnotil.
Naopak, pri manuálnom testovaní sa môžete rozhodnúť preskúmať rôzne funkcie, keď vás zaujmú, napríklad ak si všimnete niečo, čo v rozhraní softvéru nevyzerá tak, ako by malo.
Jednoduchosť
Po napísaní automatických testovacích skriptov je automatizované testovanie jednoduché. Na napísanie testovacích skriptov sú však zvyčajne potrebné odborné znalosti vývojárov a menšie testovacie tímy na to nemusia mať dostatok zdrojov.
Manuálne testovanie si nevyžaduje žiadne technické znalosti ani znalosti kódovania.
2. Výzvy manuálneho testovania systému
Manuálne testovanie prináša aj svoje vlastné výzvy. Tímy testujúce softvér, ktoré vykonávajú len manuálne testovanie systému bez začlenenia prvkov automatizovaného testovania, sa môžu ocitnúť v nevýhode v porovnaní s tímami, ktoré používajú oba prístupy.
Časovo náročné
Ako sa dalo očakávať, manuálne testovanie systému je časovo náročnejšie ako automatické testovanie systému. To je slabina najmä vtedy, keď sa vyžaduje agilné testovanie.
To znamená, že je menej praktické vykonávať pravidelné alebo veľmi dôkladné testy systému, čo by mohlo ovplyvniť spoľahlivosť a rozsah výsledkov.
Ľudská chyba
Pri manuálnom testovaní, ktoré vykonávajú ľudia, vždy existuje priestor pre ľudskú chybu. Ľudia robia chyby, nudia sa alebo sú roztržití, čo je pravdepodobné najmä pri vykonávaní opakovaných, časovo náročných testov, ktoré môžu testerov skôr unaviť.
Pokrytie testov
Manuálne testy neponúkajú taký rozsah pokrytia ako automatizované testy.
Keďže testeri musia vykonávať manuálne testy sami, pri manuálnom testovaní nie je možné pokryť toľko priestoru ako pri automatizovanom testovaní, čo môže viesť k menej komplexným výsledkom testovania.
Kedy použiť manuálne testovanie softvéru
Manuálne testovanie softvéru nebolo nahradené automatizovaným testovaním a manuálne testovanie je stále dôležitou fázou procesu testovania systému.
Manuálne testovanie je vhodné pre menšie softvérové tímy, ktoré nemusia mať zdroje na nezávislé automatizované testovanie systému, a dokonca aj tímy, ktoré prijali automatizované testovanie, by mali používať manuálne testovanie na posúdenie zložitejších testovacích scenárov alebo testovacích prípadov, kde prieskumné testovanie ponúka hodnotu.
Automatizácia testovania systému
Testovanie systému je možné automatizovať buď vlastným písaním testovacích skriptov, alebo použitím hyperautomatizovaných nástrojov a procesov na čiastočnú alebo úplnú automatizáciu procesu testovania systému.
Najčastejšie sa automatizované testovanie systému kombinuje s manuálnym testovaním systému, aby sa dosiahla čo najlepšia rovnováha medzi pokrytím, efektívnosťou a presnosťou.
1. Výhody automatizácie testovania systému
Popularita automatizovaného testovania systémov rastie čiastočne vďaka širokej dostupnosti nástrojov na automatizované testovanie, ktoré uľahčujú automatizáciu testovania softvérových systémov.
Automatizované testovanie systému má mnoho výhod, najmä v kombinácii s manuálnym testovaním.
Účinnosť
Automatizované testovanie je efektívnejšie ako manuálne testovanie, pretože je možné spustiť automatizované testy na pozadí, zatiaľ čo testeri a vývojári vykonávajú iné úlohy.
Vďaka tomu je praktickejšie vykonávať automatizované testovanie na pravidelnejšej báze a znižuje sa potreba delegovať veľký počet zdrojov na testovanie po nastavení automatizovaných testov.
Väčšie pokrytie testov
Automatizované testy môžu často pokryť väčšiu oblasť zostavenia softvéru ako manuálne testy, a to najmä vďaka ich vyššej účinnosti.
Keď testeri vykonávajú testovanie systému manuálne, musia si vybrať najdôležitejšie testovacie prípady na posúdenie, zatiaľ čo automatizované testovanie poskytuje softvérovým tímom flexibilitu na testovanie väčšieho počtu scenárov za kratší čas.
Odstránenie ľudskej chyby
Automatizované testy nie sú náchylné na ľudské chyby rovnako ako manuálne testy.
Pri vykonávaní opakovaných, časovo náročných testov, ktoré môžu manuálnych testerov unaviť, automatické testy naďalej testujú softvér rovnakou rýchlosťou a s rovnakou úrovňou presnosti.
Ľudia sa tiež častejšie zameriavajú na hľadanie jednoduchých chýb ako na hľadanie ťažkých chýb, čo môže spôsobiť, že niektoré dôležité, ale menej zjavné chyby budú prehliadnuté.
Štandardizácia testovania
Pri písaní skriptu na automatizáciu testovania systému vytvárate súbor pokynov, ktoré má váš nástroj na testovanie softvéru dodržiavať.
Tým sa efektívne štandardizujú softvérové testy, ktoré vykonávate, a zabezpečuje sa, že pri každom spustení testu vykonávate rovnaký test a testujete softvér podľa rovnakých noriem.
2. Výzvy automatizácie testovania systému
Automatizované testovanie systému nie je dokonalé, preto sa často vykonáva spolu s manuálnym testovaním, aby sa dosiahli čo najlepšie výsledky. Je to efektívnejšie ako manuálne testovanie, ale nemusí ponúknuť takú hĺbku alebo kvalitatívne údaje.
Flexibilita
Keďže automatizované testovanie sa vždy riadi skriptom, nie je možné flexibilne testovať mechanizmy alebo funkcie mimo tých, ktoré sú zapísané v testovacom skripte.
To síce vedie ku konzistentnosti, ale zároveň to znamená, že chyby a nedostatky môžu byť prehliadnuté, ak neboli zohľadnené vo fázach plánovania.
Zdroje
Nastavenie automatizovaných testov si vyžaduje čas a zdroje.
Aj keď je možné automatizovať testovanie systému pomocou hotového softvéru a nástrojov, väčšinou si stále vyžadujú úpravu požiadaviek na softvér.
Automatizované testovanie tradične znamenalo vyčlenenie technických zdrojov na správne napísanie a spustenie automatizovaných testov, hoci čoraz viac nástrojov, ako napríklad ZAPTEST, poskytuje pokročilú automatizáciu softvéru počítačového videnia v bezkódovom rozhraní.
Komplexné testovacie prípady
Vo väčšine prípadov nie je možné 100% automatizovať testovanie systému bez toho, aby sme sa spoliehali na manuálne testovanie.
To platí najmä vtedy, keď potrebujete testovať zložité testovacie scenáre, na ktoré väčšina automatizačných nástrojov nestačí.
3. Kedy zaviesť automatizované testovanie systému
Ak má váš testovací tím zdroje na implementáciu automatizovaného testovania, buď písaním vlastných testovacích skriptov, alebo použitím automatizačných nástrojov na ich písanie, automatizované testovanie môže zefektívniť a zvýšiť spoľahlivosť testovania systému.
Vždy je však dôležité pokračovať v manuálnom testovaní, aj keď ste si istí kvalitou a pokrytím vašich automatizovaných testov, pretože automatizované testovanie nedokáže zopakovať hĺbku a prehľad, ktoré môže ponúknuť len manuálne testovanie.
Záver: Automatizované testovanie systému vs. manuálne testovanie systému
Automatizované testovanie systému a manuálne testovanie systému sú dôležité vo fáze testovania vývoja softvéru.
Zatiaľ čo menšie spoločnosti môžu začať len s manuálnym testovaním systému kvôli dodatočným investíciám alebo zdrojom, ktoré si automatické testovanie vyžaduje, väčšina testovacích tímov si osvojí kombinovaný prístup, ktorý zahŕňa automatické testovanie hneď, ako je to prakticky možné.
Kombináciou automatizovaného testovania s manuálnym testovaním môžu testovacie tímy maximalizovať efektivitu, presnosť a flexibilitu bez toho, aby sa znížil akýkoľvek výsledok testovania systému.
Osvedčené postupy testovania systému
Ak chcete optimalizovať pracovné postupy testovania systému na dosiahnutie maximálnej efektívnosti a presnosti, najlepším spôsobom, ako to dosiahnuť, je dodržiavať osvedčené postupy testovania systému.
Osvedčené postupy vám pomôžu zabezpečiť, aby ste vo fáze testovania systému nič nevynechali, a zaručia, že vaše testy systému budú mať vždy vysokú úroveň.
1. Primerane naplánujte testy systému
Všetky testy systémov by sa mali začať formálnym plánom testovania, ktorý jasne popisuje testovacie prípady a prístupy, ktoré sa použijú počas testovania.
Začiatok s formálnym plánom znižuje riziko oneskorenia počas testovania a zabraňuje narušeniam, ktoré môžu vzniknúť v dôsledku nejasností.
Zabezpečuje, aby všetky príslušné strany vedeli, aká je ich úloha a za čo sú zodpovedné.
2. Vždy píšte podrobné a presné správy
Je dôležité, aby bolo testovanie systému vždy dobre zdokumentované, inak sa testerom a vývojárom softvéru nemusí ľahko postupovať podľa výsledkov vašich testov.
O každom vykonanom teste napíšte prehľadné a dôkladné správy, v ktorých podrobne opíšete všetky nájdené chyby, ukážete, ako ich presne zopakovať, a určíte, ako by sa mal softvér po oprave správať.
Dbajte na to, aby boli vaše hlásenia o chybách jednoznačné a ľahko sledovateľné.
3. Testovanie na skutočných zariadeniach
Testovacie tímy sa často rozhodnú replikovať rôzne zariadenia v rámci testovacieho prostredia bez toho, aby softvér skutočne testovali na rôznych zariadeniach.
Ak vytvárate softvér, ktorý sa má používať na rôznych platformách, ako sú mobilné telefóny, t. j. Android, iOS atď. tablety, web a stolové počítače, t. j. Windows, Linux atď., určite ich otestujte na týchto zariadeniach, aby ste posúdili, ako fungujú pri rôznom zaťažení alebo či by problémy so sieťovým pripojením mohli spôsobiť problémy na konkrétnych platformách.
4. Automatizujte testovanie, ak je to možné
Pre dosiahnutie najlepších výsledkov je zvyčajne najlepšie kombinovať manuálne testovanie systému s automatizovaným testovaním systému.
Ak ste ešte neexperimentovali s automatizovaným testovaním systémovej integrácie, vyskúšajte nástroje RPA + testovanie softvéru, ktoré vám pomôžu automatizovať aspoň časť vašich systémových testov, čo vám umožní zvýšiť pokrytie a efektivitu bez toho, aby ste ohrozili presnosť výsledkov.
5. Testujte jednu funkciu na prípad
Pri písaní testovacích prípadov sa zamerajte na testovanie len jednej funkcie na prípad, ak je to možné.
To uľahčuje opätovné použitie týchto testovacích prípadov v budúcich testoch a umožňuje vývojárom jasnejšie pochopiť, ako chyby vznikajú a ktoré funkcie ich vyvolávajú.
Typy výstupov z testov systému
Pri spúšťaní systémových testov je dôležité vedieť, aký typ výstupov môžete od testov očakávať a ako tieto výstupy využiť pri ďalšom vývoji a testovaní.
Výstupy z testov sú vlastne aktíva a informácie, ktoré získate vykonaním testov systému.
1. Výsledky testov
Výsledky testov obsahujú údaje o tom, ako sa softvér správal v každom testovacom prípade, ktorý ste vykonali, spolu s porovnaním toho, ako ste očakávali, že sa softvér bude správať.
Tieto výsledky pomáhajú určiť, či každý testovací prípad prešiel alebo neprešiel, pretože ak softvér fungoval spôsobom, ktorý ste od neho neočakávali, zvyčajne to znamená, že zlyhal.
2. Denník závad
Protokoly o chybách sú záznamy o všetkých chybách a nedostatkoch, ktoré boli nájdené počas testovania systému.
V denníku chýb sú uvedené všetky nájdené chyby spolu s ďalšími dôležitými informáciami, ako je priorita každej chyby, závažnosť každej chyby a príznaky a opis chyby.
Mali by ste si tiež zapísať dátum zistenia chyby a ďalšie informácie, ktoré pomôžu vývojárom chybu znovu zopakovať.
3. Správa o skúške
Správa o testovaní je zvyčajne súčasťou výstupných kritérií pre ukončenie testovania systému a zvyčajne obsahuje zhrnutie vykonaného testovania, odporúčania GO/No-Go, informácie o fáze a iterácii a dátum testovania.
Do tejto správy môžete uviesť aj ďalšie dôležité informácie o výsledkoch testov alebo pripojiť kópiu zoznamu chýb.
Príklady systémových testov
Systémové testy sú navrhnuté tak, aby testovali systém ako celok, čo znamená, že testujú všetky rôzne softvérové jednotky fungujúce spoločne ako systém.
Príklady systémových testov vám pomôžu lepšie pochopiť, čo je systémový test a čo sa ním testuje.
1. Testovanie funkčnosti
Tím softvérových inžinierov pripravuje novú nákupnú aplikáciu, ktorá pomáha obchodom s potravinami efektívnejšie vyberať a baliť online objednávky.
Aplikácia sa skladá z viacerých rôznych modulov, z ktorých každý už bol testovaný samostatne v rámci testovania jednotiek a testovaný spolu s ostatnými modulmi v rámci integračného testovania.
Pri testovaní systému sa prvýkrát testujú všetky moduly spoločne a testeri navrhujú testovacie prípady na posúdenie jednotlivých funkcií aplikácie a kontrolu, či fungujú podľa očakávaní po spoločnom spustení všetkých modulov.
2. Testovanie časov načítania
Tím softvérových testerov testuje, ako rýchlo sa aplikácia načíta v rôznych bodoch pri rôznych úrovniach záťaže.
Vytvárajú testovacie prípady, ktoré opisujú, akému typu záťaže je aplikácia vystavená (napríklad koľko používateľov ju používa súčasne) a aké funkcie a vlastnosti sa používateľ snaží načítať.
Počas testovania systému sa časy zaťaženia zaznamenávajú do správy o testovaní a časy zaťaženia, ktoré sa považujú za príliš pomalé, spustia ďalšiu fázu vývoja.
3. Testovanie konfigurácie
Pri vytváraní videohry, ktorú možno používať s množstvom rôznych periférnych zariadení vrátane počítačovej myši, náhlavnej súpravy VR a hernej podložky, testeri softvéru vykonávajú testovanie konfigurácie, aby overili, ako dobre každé z týchto periférnych zariadení funguje s hrou.
Prechádzajú jednotlivými testovacími scenármi, testujú každú perifériu jednotlivo a spoločne, pričom si zaznamenávajú, ako sa každá periféria správa v rôznych bodoch hry a či je výkon ešte horší, ako sa očakávalo.
Typy chýb a nedostatkov zistených pri testovaní systému
Pri testovaní systému vám vykonané testy umožnia identifikovať chyby a nedostatky v softvéri, ktoré sa nenašli pri testovaní jednotiek a integračnom testovaní.
Počas testovania systému je možné identifikovať chyby rôzneho druhu, niekedy preto, že boli predtým prehliadnuté, alebo zvyčajne preto, že sa objavia až pri fungovaní systému ako celku.
1. Chyby výkonu
Testovanie systému môže poukázať na chyby vo výkonnosti, pokiaľ ide o rýchlosť, konzistenciu a čas odozvy zostaveného softvéru.
Testeri môžu posúdiť, ako softvér funguje pri vykonávaní rôznych úloh, a zaznamenať všetky chyby alebo oneskorenia, ktoré sa vyskytnú počas používania. Ide o chyby výkonu, ktoré môžu, ale nemusia byť považované za dostatočne závažné na to, aby si vyžadovali ďalší vývoj.
2. Chyby zabezpečenia
Počas testovania systému je možné identifikovať chyby zabezpečenia, ktoré upozorňujú na zraniteľnosti v bezpečnostnej vrstve systému.
Testovanie bezpečnosti sa uskutočňuje vo fáze testovania systému a môže sa použiť na identifikáciu chýb v šifrovaní, logických chýb a zraniteľností XSS v softvéri.
3. Chyby použiteľnosti
Chyby použiteľnosti sú chyby, ktoré sťažujú používanie aplikácie tak, ako je zamýšľaná. Používateľom môžu spôsobovať nepríjemnosti, čo môže viesť k tomu, že používatelia aplikáciu opustia.
Medzi príklady chýb použiteľnosti patrí zložitý navigačný systém alebo rozvrhnutie, ktoré nie je jednoduché pre navigáciu vo všetkých aspektoch platformy.
Pomocou nástrojov použiteľnosti možno chyby identifikovať už v skoršej fáze testovania, ale môžu sa objaviť aj počas testovania systému.
4. Chyby v komunikácii
Chyby komunikácie sa vyskytujú vtedy, keď sa časť softvéru pokúša komunikovať s iným modulom a chyba spôsobí, že táto komunikácia zlyhá.
Ak napríklad softvér vyzve používateľa na prevzatie novej aktualizácie, ale keď používateľ klikne na tlačidlo prevzatia aktualizácie, aktualizáciu nemožno nájsť, ide o chybu komunikácie.
5. Chyby pri spracovaní chýb
Chyby sa niekedy vyskytujú aj vtedy, keď softvér funguje tak, ako má. Možno preto, že niektorá súčasť nebola správne nainštalovaná alebo ju používateľ neovláda správne.
Systém však musí byť schopný tieto chyby správne spracovať tak, aby pomohol používateľom identifikovať a odstrániť problém.
Ak chybové hlásenia neobsahujú primerané informácie o vyskytujúcej sa chybe, používatelia nebudú môcť chybu odstrániť.
Bežné metriky pri testovaní systému
Pri testovaní systému môžete sledovať určité metriky testovania, ktoré pomôžu vášmu testovaciemu tímu sledovať, ako efektívne je testovanie systému, ako často sa nachádzajú chyby a či sa testovanie systému vykonáva v správnej fáze testovacieho cyklu.
Ak napríklad sledujete počet úspešných a neúspešných testov a zistíte, že vysoký podiel systémových testov je neúspešný, môžete dospieť k záveru, že je potrebné dôkladnejšie testovanie na začiatku testovacieho cyklu, aby sa identifikovali chyby a nedostatky ešte pred začatím testovania systému.
1. Absolútne metriky
Absolútne čísla sú tie ukazovatele, ktoré vám jednoducho poskytujú absolútne číslo namiesto podielu alebo pomeru.
Absolútne metriky môžu byť užitočné, ale keďže ide o absolútne čísla, nie je vždy jednoduché interpretovať ich význam.
Medzi príklady absolútnych metrík patrí dĺžka trvania testovania systému, čas potrebný na vykonanie testu systému a celkový počet chýb zistených počas testovania systému.
2. Metriky účinnosti testov
Metriky efektívnosti testovania pomáhajú testovacím tímom pochopiť, ako efektívne sú ich súčasné postupy testovania systému, hoci neposkytujú žiadne informácie o kvalite systémových testov.
Medzi príklady ukazovateľov efektívnosti testovania patrí percento úspešne vykonaných testov a percento odstránených chýb.
Absolvované testy vám môžu napovedať, či neprechádzate príliš veľa testov, a teda či vám neunikli chyby, najmä ak vidíte vysokú metriku absolvovaných testov spolu s vysokým pomerom úniku chýb.
3. Metriky účinnosti testov
Metriky efektívnosti testov hovoria testerom niečo o kvalite systémových testov, ktoré vykonávajú.
Merajú, ako efektívne sú systémové testy pri identifikácii a vyhodnocovaní chýb a nedostatkov v systéme.
Celková účinnosť obmedzenia výskytu chýb je príkladom metriky účinnosti testovania, ktorá zobrazuje pomer chýb nájdených vo fáze testovania v porovnaní s chybami nájdenými po vydaní.
4. Metriky pokrytia testov
Metriky testovacieho pokrytia pomáhajú testerom pochopiť, ako kompletné je ich pokrytie celého systému, ktorý sa snažia otestovať.
Môžete napríklad merať, aké percento systémových testov je automatizovaných alebo koľko z požadovaných testov bolo doteraz vykonaných.
Metrika pokrytia požiadaviek tiež pomáha testerom sledovať, aká časť požadovaných funkcií bola pokrytá testovaním.
5. Metriky chýb
Metriky chýb sú metriky, ktoré merajú prítomnosť chýb rôznymi spôsobmi. Niektoré metriky chýb sa môžu zameriavať na závažnosť chýb, zatiaľ čo iné sa môžu zameriavať na typ alebo hlavnú príčinu chýb.
Príkladom bežnej metriky chýb je hustota chýb, ktorá meria celkový počet chýb v celom vydaní.
Hustota chýb sa zvyčajne uvádza ako počet chýb na 1000 riadkov kódu.
Testovacie prípady systému
Testovacie prípady systému sú testovacie scenáre, ktoré sa používajú pri testovaní systému na testovanie toho, ako softvér funguje a či spĺňa očakávania vývojárov, testerov, používateľov a zainteresovaných strán.
1. Čo sú testovacie prípady v testovaní systému?
Testovacie prípady sú v podstate inštrukcie, ktoré definujú, čo sa má testovať a aké kroky musí tester vykonať, aby otestoval každý jednotlivý prípad.
Keď píšete testovacie prípady pre systémové testy, je dôležité zahrnúť všetky informácie, ktoré testeri potrebujú na vykonanie každého testu. Uveďte ID testovacieho prípadu pre každý testovací prípad a informácie o tom, ako test vykonať a aké výsledky očakávate, ako aj kritériá úspešnosti a neúspešnosti pre každý testovací prípad, ak je to relevantné.
2. Ako písať testovacie prípady systému
Ak ste v písaní testovacích prípadov nováčik, môžete postupovať podľa nasledujúcich krokov a napísať testovacie prípady pre testovanie systému. Písanie testovacích prípadov pre iné typy testovania softvéru je veľmi podobný proces.
- Definujte oblasť, ktorú má testovací prípad pokrývať.
- Uistite sa, že testovací prípad sa dá ľahko otestovať.
- Aplikujte príslušné návrhy testov na každý testovací prípad.
- Priraďte každému testovaciemu prípadu jedinečné ID testovacieho prípadu.
- Zahrňte jasný opis spôsobu vykonania každého testovacieho prípadu.
- Pridajte predpodmienky a postpodmienky pre každý testovací prípad.
- Uveďte výsledok, ktorý očakávate od každého testovacieho prípadu.
- Uveďte techniky testovania, ktoré by sa mali použiť.
- Pred pokračovaním požiadajte kolegu o vzájomné posúdenie každého testovacieho prípadu.
3. Príklady testovacích prípadov systému
Použitie príkladov testovacích prípadov vám môže pomôcť pri písaní vlastných testovacích prípadov. Nižšie sú uvedené dva príklady systémových testovacích prípadov, ktoré môžu testeri použiť na testovanie funkcie aplikácie alebo softvéru.
Overovanie cien v aplikácii na skenovanie potravín
ID testu: 0788
Testovací prípad: Overenie ceny položky
Opis testovacieho prípadu: Skenovanie položky a overenie jej ceny.
Očakávané výsledky: Skenovaná cena by sa mala zhodovať s aktuálnou cenou akcií.
Výsledok: USD, čo sa zhoduje s aktuálnou akciovou cenou.
Prešiel/neprešiel: Vyhovel.
Čas odozvy softvéru na riadenie transakcií od konca do konca
ID testu: 0321
Testovací prípad: Čas načítania domovskej obrazovky
Popis testovacieho prípadu: Uistite sa, že sa načítavacia obrazovka aplikácie načíta v primeranom čase.
Očakávané výsledky: Obrazovka by sa mala načítať do štyroch sekúnd alebo menej.
Výsledok: Obrazovka sa načítala do 6 sekúnd.
Prešiel/neprešiel: Nevyhovel/a.
Najlepšie nástroje na testovanie systému
Používanie nástrojov na testovanie systému je jedným z najjednoduchších spôsobov, ako zefektívniť proces testovania a znížiť množstvo času, ktorý testovacie tímy strávia časovo náročnými manuálnymi úlohami.
Nástroje na testovanie systému môžu buď automatizovať prvky procesu testovania systému za vás, alebo vám môžu uľahčiť písanie testovacích prípadov a sledovanie priebehu testovania.
Päť najlepších bezplatných nástrojov na testovanie systému
Ak nie ste pripravení minúť veľkú časť svojho rozpočtu na nástroje na testovanie systému, ale chcete preskúmať, čo všetko existuje, a možno zároveň zlepšiť efektívnosť procesov testovania systému, dobrou správou je, že na internete je k dispozícii veľa bezplatných testovacích nástrojov.
Bezplatné testovacie nástroje neponúkajú všetky funkcie ako platené testovacie nástroje, ale menším podnikom môžu poskytnúť cenovo výhodný spôsob, ako preskúmať automatizáciu softvéru a RPA.
1. ZAPTEST FREE Edition
ZAPTEST je balík nástrojov na testovanie softvéru, ktorý možno použiť na testovanie systému a iných typov testovania softvéru.
ZAPTEST je k dispozícii v bezplatnej aj platenej podnikovej verzii, ale bezplatná verzia je ideálnym úvodom do automatizovaného testovania systémov pre menšie spoločnosti a podniky, ktoré chcú urobiť prvé kroky k automatizácii testovania.
ZAPTEST dokáže automatizovať systémové testy pre stolové aj prenosné zariadenia a umožňuje testerom automatizovať testy bez kódovania.
2. Selén
Selenium je jedným z najznámejších testovacích nástrojov s otvoreným zdrojovým kódom, ktoré sú k dispozícii na trhu.
Bezplatná verzia Selenium ponúka nástroje na automatické testovanie, ktoré možno použiť pri testovaní systému, regresnom testovaní a reprodukcii chýb, a môžete si pomocou nej vytvoriť vlastné testovacie skripty pre množstvo rôznych testovacích scenárov.
Je to však na úkor jednoduchosti a ľahkého používania a pre netechnických používateľov môže byť pomerne náročné sa ho naučiť.
3. Appium
Appium je bezplatný nástroj na testovanie systému, ktorý je vhodný na použitie špeciálne s mobilnými aplikáciami.
Appium môžete použiť na automatizáciu testovania systému pre aplikácie určené na používanie v smartfónoch a tabletoch so systémami iOS a Android.
Tento bezplatný nástroj nie je vhodný na používanie s aplikáciami pre počítače, čo je jedna z jeho najväčších slabín.
3. Testlink
Ak si chcete len uľahčiť plánovanie, prípravu a dokumentáciu testovania systému, Testlink je skvelý bezplatný nástroj, ktorý zjednodušuje správu testovacej dokumentácie.
Pomocou aplikácie Testlink môžete jednoducho triediť zostavy do sekcií a nájsť tak informácie, ktoré potrebujete, keď ich potrebujete.
Testlink je cenný nástroj na testovanie, či už vykonávate testovanie systému, testovanie dymu alebo akýkoľvek iný druh testovania softvéru.
5. Loadium
Loadium je bezplatný testovací nástroj, ktorý je špeciálne navrhnutý na testovanie výkonu a záťaže.
Jeho zameranie na výkonnostné a záťažové testovanie však predstavuje významnú slabinu pre používateľov, ktorí chcú automatizovať celé spektrum end-to-end testov.
4 najlepšie nástroje na testovanie podnikových systémov
Keď sa vaša firma rozrastie, možno zistíte, že bezplatné testovacie nástroje už nevyhovujú vašim požiadavkám. Mnohé bezplatné nástroje, ako napríklad ZAPTEST, ponúkajú podnikové aj bezplatné verzie.
1. ZAPTEST Enterprise edition
ZAPTEST ponúka podnikovú verziu svojho testovacieho nástroja, ktorá sa môže pochváliť rovnakými ľahko použiteľnými funkciami a intuitívnym rozhraním ako bezplatný nástroj, ale lepšie sa škáluje pre väčšie tímy, ktoré môžu vyžadovať intenzívnejšie testovanie alebo ktoré chcú testovať zložitejšie softvérové zostavy.
Podniková verzia ZAPTEST ponúka neobmedzené testovanie výkonnosti a neobmedzený počet iterácií, ako aj prideleného certifikovaného experta ZAP na telefóne pre podporu, ktorý pracuje ako súčasť tímu klienta (to samo o sebe predstavuje významnú výhodu v porovnaní s inými dostupnými automatizačnými nástrojmi).
Jeho model neobmedzených licencií je tiež vedúcou ponukou na trhu, ktorá zabezpečuje, že podniky budú mať vždy fixné náklady bez ohľadu na to, ako rýchlo rastú.
2. SoapUI
SoapUI je testovací nástroj, ktorý umožňuje spravovať a vykonávať systémové testy na rôznych platformách webových služieb a API.
Testovacie tímy môžu pomocou SoapUI minimalizovať množstvo času, ktorý strávia časovo náročnými úlohami, a vytvoriť dôkladnejšie a efektívnejšie stratégie testovania.
3. Testsigma
Testsigma je platforma na testovanie softvéru, ktorá funguje ako hotová. Umožňuje produktovým tímom automaticky plánovať a vykonávať softvérové testy webových stránok, mobilných aplikácií a rozhraní API.
Platforma je vytvorená v jazyku Java, ale pracuje s testovacími skriptami napísanými v jednoduchej angličtine.
4. TestingBot
TestingBot je relatívne lacným podnikovým riešením pre podniky, ktoré chcú v tomto odvetví experimentovať bez toho, aby na začiatku minuli veľa peňazí. TestingBot ponúka testerom jednoduchý spôsob testovania webových stránok a mobilných aplikácií pomocou mriežky 3200 kombinácií prehliadačov a mobilných zariadení.
Nemá také funkcie ako väčšie podnikové nástroje, ale je to dobrá voľba pre spoločnosti s nižším rozpočtom.
Kedy by ste mali používať podnikové a bezplatné nástroje na testovanie systému
To, či sa rozhodnete používať podnikové alebo bezplatné nástroje na testovanie systému, závisí od potrieb vášho tímu, rozpočtu, priorít a pracovného harmonogramu.
Je samozrejmé, že podnikové nástroje ponúkajú viac funkcií a vlastností v porovnaní s bezplatnými nástrojmi, ale pre menšie spoločnosti, ktoré nemajú veľký rozpočet, sú bezplatné nástroje fantastickou voľbou.
Ak vaša firma rastie alebo ak zisťujete, že váš testovací tím trávi viac času, ako by ste chceli, testovaním systému a iných typov testovania softvéru, upgrade na podnikové testovacie nástroje a naučenie sa, ako tieto nástroje naplno využívať, by vám mohlo pomôcť ďalej rozširovať vašu firmu, aby ste uspokojili rastúci dopyt.
Okrem toho používaním nástrojov, ako je ZAPTEST Enterprise, ktoré ponúkajú inovatívne modely softvér + služba a modely neobmedzených licencií, zaručene prekonáte medzeru v technických znalostiach a udržíte si fixné náklady bez ohľadu na to, ako rýchlo rastiete a ako veľa nástroje používate.
Kontrolný zoznam testovania systému, tipy a triky
Pred začatím testovania systému si prejdite kontrolný zoznam testovania systému uvedený nižšie a postupujte podľa týchto tipov, aby ste optimalizovali testovanie systému z hľadiska presnosti, účinnosti a pokrytia.
Kontrolný zoznam testovania systému vám pomôže zabezpečiť, aby ste pri postupe testovania systému zahrnuli všetko potrebné.
1. Zapojenie testerov počas fázy návrhu
Hoci testeri zvyčajne pracujú na softvéri až po ukončení fázy vývoja a návrhu, zapojením testerov na začiatku je pre nich jednoduchšie pochopiť, ako jednotlivé komponenty spolupracujú, a zohľadniť to vo svojom testovaní.
To často vedie k dôkladnejšiemu prieskumnému testovaniu.
2. Napíšte jasné testovacie prípady
Pri písaní testovacích prípadov dbajte na to, aby boli jasné a jednoznačné.
Testeri by mali byť schopní prečítať si testovacie prípady a okamžite pochopiť, čo je potrebné otestovať a ako to otestovať.
Ak je to potrebné, vysvetlite, kde nájdete funkciu, ktorá si vyžaduje testovanie, a aké kroky treba vykonať počas procesu testovania systému.
3. Maximalizujte pokrytie testov
Pri testovaní systému zvyčajne nie je možné dosiahnuť 100 % pokrytie testovaním, a to ani v prípade, že používate automatizačné nástroje.
Čím väčšie je však pokrytie testami, tým väčšia je pravdepodobnosť, že sa vám podarí identifikovať a opraviť chyby ešte pred vydaním.
Pokúste sa dosiahnuť pokrytie testov aspoň 90 % alebo čo najbližšie k tomuto číslu.
4. Dôkladne analyzujte výsledky
Dôkladne analyzujte výsledky každého testu systému a chyby a nedostatky jasne uvádzajte v dokumentácii.
Čím viac podrobností o chybách môžete poskytnúť, tým ľahšie budú môcť vývojári tieto chyby neskôr zopakovať.
Ak máte predstavu o tom, prečo sa chyby vyskytujú a ako by sa dali odstrániť, uveďte ju vo výsledkoch testovania.
5. Prekročte rámec testovania požiadaviek
Netestujte svoje aplikácie len preto, aby ste zistili, či robia to, čo majú.
Otestujte, ako váš softvér funguje nad rámec jeho požiadaviek, aby ste zistili, ako reaguje na úlohy a operácie mimo zamýšľaného použitia. To vám môže pomôcť identifikovať chyby a nedostatky, ktoré by ste inak prehliadli.
7 chýb a nástrah, ktorým sa treba vyhnúť pri implementácii systémových testov
Pri prvej implementácii systémových testov je dôležité uvedomiť si bežné chyby a nástrahy, ktorých sa testovacie tímy často dopúšťajú.
Ak budete vedieť, aké sú tieto chyby, ľahko sa im vyhnete, čo by malo zvýšiť účinnosť a presnosť vášho vlastného testovania systému.
1. Začíname bez plánu testovania
Pred začatím testovania systému je dôležité vytvoriť podrobný plán testovania.
Ak začnete integračné testovanie bez plánu, ľahko sa môže stať, že zabudnete na niektoré testovacie prípady, ktoré ste zamýšľali vykonať, alebo na testovacie prípady mimo plánu testovania.
Väčšina ľudí si nedokáže zapamätať všetky podrobnosti plánu testovania, ak nie je jasne zdokumentovaný, a tiež to bráni tímom, aby ho odovzdali iným testerom.
2. Nedefinovanie rozsahu testovania systému
Testovanie systému je viacrozmerná úloha, ktorá zahŕňa testovanie mnohých rôznych aspektov jedného softvéru.
V závislosti od typu vyvíjaného softvéru a od toho, čo ste doteraz testovali, sa rozsah testovania systému môže medzi jednotlivými testami veľmi líšiť.
Pred začatím testovania je dôležité definovať rozsah testovania a zabezpečiť, aby tomuto rozsahu porozumeli všetci členovia testovacieho tímu.
3. Ignorovanie falošne pozitívnych a falošne negatívnych výsledkov
K falošne pozitívnym výsledkom dochádza vtedy, keď systémové testy prejdú napriek tomu, že testovacie scenáre v skutočnosti nefungujú podľa očakávaní.
Podobne môže dôjsť k falošne negatívnym výsledkom, keď test zlyhá napriek tomu, že funguje podľa očakávaní.
Niekedy môže byť ťažké rozpoznať falošne pozitívne a falošne negatívne výsledky, najmä ak sa jednoducho pozriete na výsledky testu bez toho, aby ste sa zaoberali jeho skutočnými výstupmi. Falošne pozitívne a negatívne výsledky sú obzvlášť pravdepodobné a ľahko sa prehliadajú pri automatizovanom testovaní systému.
4. Testovanie s podobnými typmi testovacích údajov
Ak používate viacero rôznych typov testovacích údajov, čo najväčšia zmena atribútov použitých testovacích údajov zvýši pokrytie testovania systému.
To znamená, že je menej pravdepodobné, že prehliadnete chyby a nedostatky, a zvyšuje to hodnotu testovania, ktoré vykonávate.
Pokrytím rôznych typov testovacích údajov získate podrobnejší obraz o tom, ako sa bude produkt správať po vydaní.
5. Ignorovanie prieskumného testovania
Aj keď je dôležité dodržiavať plán testovania, je tiež dôležité vytvoriť priestor na prieskumné testovanie a umožniť testerom vyskúšať rôzne funkcie a vlastnosti, keď ich počas testovania nájdu.
Prieskumné testovanie môže často odhaliť nové chyby, ktoré by sa inak prehliadli, alebo chyby, ktoré už boli prehliadnuté počas iných fáz testovania.
Prieskumné testovanie môžete naplánovať aj tak, že zorganizujete testovací jam, kde všetci testeri budú počas určitého časového obdobia vykonávať neplánované testovanie systému.
6. Pravidelná kontrola výsledkov automatizácie testov
Ak ste v oblasti testovania softvérových systémov a najmä automatizovaného testovania nováčik, možno si myslíte, že stačí nastaviť spustenie testu a nechať ho tak.
Je však dôležité pravidelne kontrolovať výsledky automatizácie testov a v prípade potreby vykonať zmeny v kóde automatizácie testov.
Ak napríklad vykonáte nejaké zmeny v testovanom softvéri, mali by sa premietnuť do kódu automatizovaných testov.
Pozorne si prečítajte výsledky automatizovaného testu, aby ste pochopili každý výstup testu, a nielen výsledky „vyhovel/nevyhovel“.
7. Používanie nesprávneho nástroja na automatizáciu
V súčasnosti je k dispozícii množstvo automatizačných nástrojov, z ktorých niektoré sú bezplatné a za iné musia používatelia platiť mesačné poplatky.
Aj keď si začiatočníci zvyčajne vyberajú nástroje s otvoreným zdrojovým kódom, je dôležité uistiť sa, že nástroj, ktorý si vyberiete, vyhovuje vašim požiadavkám a ponúka funkcie, ktoré potrebujete.
Napríklad open source nástroje sú notoricky známe svojou obmedzenou funkčnosťou, neintuitívnym používateľským rozhraním a veľmi náročnou krivkou učenia.Naproti tomu full-stack testovacie nástroje, ako je ZAPTEST Free Edition, poskytujú špičkové testovacie a RPA funkcie, ako je 1SCRIPT, Cross Browser, Cross Device, Cross Platform Technology, v ľahko použiteľnom rozhraní bez kódu, vhodnom pre netechnických aj skúsených testerov.
Niekedy sa oplatí investovať do o niečo drahšieho nástroja na automatizáciu na podnikovej úrovni, ak je jeho funkčnosť oveľa vhodnejšia pre váš projekt.
Záver
Testovanie systému je dôležitou fázou testovania softvéru, ktorá kontroluje systém ako celok a uisťuje sa, že každá jednotlivá zložka funguje bez problémov a efektívne.
Je to fáza testovania softvéru, ktorá nasleduje po integračnom testovaní a pred užívateľským akceptačným testovaním, a je to jedna z posledných formálnych fáz testovania softvéru, ktorá sa uskutočňuje pred prvým vydaním.
Testovanie systému umožňuje testerom identifikovať rôzne druhy chýb vrátane funkčných a nefunkčných chýb, ako aj chýb použiteľnosti a chýb konfigurácie.
Systémové testovanie je možné vykonávať manuálne alebo automatizovať, hoci vo väčšine prípadov sa odporúča zvoliť hybridný prístup, aby sa maximalizovala efektívnosť a zároveň sa vytvoril priestor na prieskumné testovanie.
Dodržiavaním osvedčených postupov a vyhýbaním sa bežným nástrahám systémového testovania môžu testovacie tímy vykonávať presné a účinné systémové testy, ktoré pokrývajú väčšinu kľúčových oblastí zostavenia.
Často kladené otázky a zdroje
Ak ste v oblasti testovania systému nováčik, na internete nájdete množstvo zdrojov, ktoré vám pomôžu dozvedieť sa viac o testovaní systému a o tom, ako vykonávať testy systému.
Nižšie sú uvedené podrobnosti o niektorých užitočných online zdrojoch na testovanie systémov, ako aj odpovede na niektoré najčastejšie kladené otázky týkajúce sa testovania systémov.
1. Najlepšie kurzy o testovaní systémov
Absolvovanie online kurzov v oblasti testovania systémov alebo testovania softvéru môže odborníkom na zabezpečenie kvality pomôcť prehĺbiť ich znalosti o testovaní systémov a získať kvalifikáciu, ktorá tieto znalosti preukáže.
Online vzdelávacie stránky ako Coursera, Udemy, edX a Pluralsight ponúkajú bezplatné a platené kurzy testovania a automatizácie softvéru pre profesionálov aj začiatočníkov.
Niektoré príklady online kurzov v oblasti testovania systémov sú:
- Kompletný bootcamp pre testovanie softvéru 2023, Udemy
- Špecializácia na testovanie softvéru a automatizáciu, Coursera
- Automatizované testovanie softvéru, edX
- Automatizované testovanie softvéru pomocou jazyka Python, Udemy
- Obchodný analytik: Testovanie softvéru: procesy a techniky, Udemy
Vyhľadajte si online kurzy, ktoré zodpovedajú vašej úrovni skúseností a vášmu rozpočtu. Ak pracujete v oblasti zabezpečovania kvality, môžete požiadať svojho zamestnávateľa, aby vám sponzoroval absolvovanie akreditovaného kurzu v oblasti testovania softvéru.
2. Akých je 5 najčastejších otázok na pohovore o testovaní systému?
Ak sa pripravujete na pohovor na pozíciu, ktorá môže zahŕňať testovanie systému alebo iné typy testovania softvéru, príprava odpovedí na bežné otázky na pohovore vopred by mohla pomôcť vášmu výkonu na pohovore.
Medzi najčastejšie otázky na pohovore týkajúce sa testovania systému patria:
- Ako sa líši testovanie systému od integračného testovania?
- Aké sú výhody a nevýhody automatizovaného testovania systému?
- Koľko typov testovania systému dokážete vymenovať?
- Ako by ste maximalizovali pokrytie testov počas testovania systému?
- Aký druh chýb a nedostatkov by ste očakávali pri testovaní systému?
Tieto otázky môžete použiť na prípravu odpovedí podľa štruktúry STAR pred pohovorom a použiť príklady z minulosti, aby ste preukázali svoje znalosti o testovaní systému a iných typoch testovania softvéru.
3. Najlepšie návody na testovanie systému na YouTube
Ak sa radi učíte vizuálne, možno vám pomôže pochopiť, čo je systémové testovanie a ako funguje popri iných typoch testovania softvéru, keď si pozriete videá o systémovom testovaní.
V službe YouTube nájdete množstvo výukových videí, ktoré vysvetľujú, čo je to testovanie systému a ako začať s testovaním systému, či už ho chcete vykonávať manuálne alebo pomocou automatizačných nástrojov. Medzi najlepšie návody na testovanie systému na YouTube patria:
- Čo je testovanie systému?
- Akceptačné testovanie a testovanie systému
- Čo je testovanie systému a ako funguje?
- Testovanie systémovej integrácie na príklade v reálnom čase
- Čo je systémové testovanie v testovaní softvéru?
4. Ako udržiavať systémové testy
Údržba testov je proces prispôsobovania a údržby systémových testov a iných druhov softvérových testov, aby sa udržiavali aktuálne pri zmenách v zostavení softvéru alebo pri zmene kódu.
Ak napríklad vykonáte testovanie systému a nájdete chyby a nedostatky, pošlete zostavený softvér späť vývojárom na úpravu. Testovacie tímy potom možno budú musieť udržiavať testovacie skripty, aby sa uistili, že adekvátne otestujú nové zostavenie softvéru, keď príde čas na opätovné testovanie.
Údržba testov je dôležitým aspektom testovania softvéru a testeri môžu zabezpečiť, aby udržiavali softvér v dobrom stave, ak budú dodržiavať osvedčené postupy údržby.
Patria medzi ne:
1. Spolupráca:
Vývojári a testeri by mali spolupracovať, aby testeri vedeli, ktoré aspekty kódu boli zmenené a ako to môže ovplyvniť testovacie skripty.
2. Dizajn:
Skôr ako začnete automatizovať testy, navrhnite testovacie skripty. Tým sa zabezpečí, že testy, ktoré automatizujete, budú vždy vhodné na daný účel.
3. Proces:
Počas procesu návrhu zohľadnite údržbu testovania softvéru. Nezabudnite, že budete musieť udržiavať testy, a zohľadnite to pri plánovaní, testovacích plánoch a návrhu testov.
4. Pohodlie:
Ak je to možné, aktualizujte všetky testy vrátane systémových testov a testov správnosti z jedného ovládacieho panela.
To znamená, že aktualizácia testov je oveľa rýchlejšia a pohodlnejšia a minimalizuje sa riziko, že sa zabudne aktualizovať konkrétny test, keď sa vykonajú zmeny v zostave softvéru.
Je testovanie systému white box alebo black box testovanie?
Testovanie systému je formou testovania čiernej skrinky.
Testovanie čiernej skrinky sa od testovania bielej skrinky líši tým, že sa pri ňom berú do úvahy len vonkajšie funkcie a vlastnosti softvéru. Testovanie bielej skrinky testuje, ako softvér funguje interne, napríklad ako funguje a spolupracuje kód.
Testovanie čiernej skrinky nevyžaduje znalosť vnútorného fungovania systému alebo kódu, namiesto toho sa od testerov jednoducho vyžaduje, aby testovali výstupy a funkcie softvérovej aplikácie a posudzovali ich podľa stanovených kritérií.
Testovanie systému zahŕňa funkčné aj nefunkčné testovanie, ale testeri používajú techniku čiernej skrinky na testovanie aj nefunkčných aspektov zostavy.
Z tohto dôvodu sa testovanie systému vo všeobecnosti považuje za formu testovania čiernej skrinky.