System testing systémové testovanie

Čo je systémové testovanie?Príklad testovania systémuPrečo pri testovaní softvéru potrebujeme systémové testovanie?Čo overovať pri testovaní systému?Vstupné a výstupné kritériáTypy testovania systémuProces testovania systémuVýhody a nevýhody testovania systémuSystémové testovanie vs. akceptačné testovanieZáver Testovanie softvéru je činnosť, ktorej cieľom je odhaliť potenciálne chyby a nedostatky v softvérových aplikáciách pred ich uvoľnením pre koncových používateľov. Prebieha na štyroch rôznych úrovniach – unit testovanie, integračné testovanie, systémové testovanie a akceptačné testovanie. V tomto článku sa podrobne zoznámime so systémovým testovaním. Predtým je však nevyhnutné poznať jednotlivé úrovne testovania softvéru. Unit testing Zahŕňa testovanie každej jednotlivej súčasti softvéru samostatne, aby sa zabezpečilo jej správne fungovanie. Vo všeobecnosti vývojári alebo programátori vykonávajú unit testovanie počas vývojovej fázy SDLC. Integračné testovanie Nasleduje integračné testovanie. Pri ňom sa logicky spájajú unit testované komponenty do skupín a overuje sa ich interakcia. Odhaľuje chyby, ktoré môžu vzniknúť v dôsledku interakcie softvérových modulov. Systémové testovanie Keď je celý systém spojený a integrovaný do jedného celku, hodnotí sa ako celok. Cieľom je skontrolovať systém z pohľadu používateľa. Akceptačné testovanie Poslednou úrovňou je akceptačné testovanie. Malá skupina skutočných používateľov alebo interný tím organizácie kontroluje, či softvérový produkt spĺňa všetky stanovené požiadavky.  Prejdime teraz k podrobnému pochopeniu testovania systému. Čo je systémové testovanie? Systémové testovanie je typ testovania softvéru, ktorý hodnotí softvérový produkt ako celok na základe funkčných a nefunkčných požiadaviek. Určuje celkový výkon a funkčnosť plne integrovaného softvérového produktu. Hlavným cieľom tohto typu testovania je skontrolovať, či všetky softvérové komponenty fungujú spoločne bez akýchkoľvek chýb a či fungujú tak, ako majú, a zároveň spĺňajú všetky stanovené požiadavky. Zaoberá sa overením návrhu softvérového produktu, jeho správania a súladu s požiadavkami zákazníka. Tím QA vykonáva testovanie systému po integračnom testovaní a pred akceptačným testovaním. Vyberajú si testovacie prostredie, ktoré sa veľmi podobá skutočnému produkčnému prostrediu. Keďže tím QA testuje celý systém bez toho, aby poznal jeho vnútorné fungovanie, spadá pod testovanie čiernej skrinky (black-box testing). Integrované moduly, ktoré prešli integračným testovaním, slúžia ako vstup do testovania systému. Integračné testovanie odhaľuje chyby alebo nezrovnalosti medzi integrovanými jednotkami. Systémové testovanie však odhaľuje chyby medzi integrovanými jednotkami a celým systémom. Stručne povedané, tento typ testovania softvéru zahŕňa vykonanie série testov na vyskúšanie celého softvéru. Príklad testovania systému Vezmime si príklad z reálneho sveta. Uvažujme proces výroby automobilov. Na začiatku výrobca automobilov vyrobí všetky základné komponenty, ako sú brzdy, motor, sedadlá, riadenie, kolesá atď. Po výrobe týchto komponentov je čas na ich individuálne testovanie, ktoré pri vývoji softvéru nazývame unit testovanie. Po potvrdení funkčnosti všetkých týchto jednotlivých komponentov ich výrobca zostaví dohromady. Ďalším krokom je kontrola, či zostavená kombinácia nespôsobuje žiadnu chybu alebo nemá vedľajšie účinky na funkčnosť jednotlivých komponentov. Tento postup označujeme ako integračné testovanie. Po uistení, že medzi zostavenou kombináciou nie sú žiadne chyby, výrobca skontroluje túto kombináciu ako celok, čo je testovanie systému. Vozidlo ako celok sa podrobuje viacerým kontrolám, aby sa overilo, či spĺňa stanovené požiadavky, napríklad či vozidlo funguje bez problémov, či všetky ostatné komponenty (brzdy, prevodovky, kolesá atď.) fungujú správne. Ak vozidlo spĺňa očakávania zákazníkov, je pravdepodobnejšie, že si ho kúpia. Prečo pri testovaní softvéru potrebujeme systémové testovanie? Aj po úspešnom unit a integračnom testovaní môže mať mnoho zložitých scenárov neodhalené problémy. Systémové testovanie pomáha pri odhaľovaní týchto chýb. Testuje softvér na základe funkčných a nefunkčných požiadaviek. Deje sa tak prvýkrát v celom životnom cykle vývoja softvéru. Preto overuje architektúru alebo návrh softvéru a obchodné požiadavky. Testovacie prostredie sa presne zhoduje s produkčným prostredím. Preto úspešné testovanie systému prináša pocit dôvery v konečný dodaný produkt. Zainteresované strany tiež môžu pochopiť, ako koncoví používatelia reagujú na softvér. Minimalizujú sa tak problémy po nasadení, riešenie problémov a volania na podporu. Čo overovať pri testovaní systému? Tento typ testovania hodnotí softvérový produkt z týchto hľadísk: Interakcie medzi softvérovými komponentmi vrátane externých periférií s cieľom overiť, ako softvér funguje ako celok. Ide o scenár testovania typu end-to-end. Vstupy zadané softvéru prinášajú očakávané výsledky. Funkčné a nefunkčné požiadavky sú splnené. Skúsenosti koncových používateľov so softvérom. Uviedli sme tu niektoré z najdôležitejších parametrov. Testovanie systému však zahŕňa overovanie mnohých ďalších aspektov. Vyžaduje si podrobné testovacie prípady a testovacie súbory na každý aspekt softvéru zvonku, bez nahliadnutia do jeho vnútorných detailov. Vstupné a výstupné kritériá Každá úroveň testovania softvéru má vstupné a výstupné kritériá. Nižšie sú uvedené vstupné a výstupné kritériá pre testovanie systému: Vstupné kritériá Softvér by mal prejsť všetkými výstupnými kritériami integračného testovania, t. j. vykonávanie všetkých testovacích prípadov by malo byť ukončené a v otvorenom stave by nemala byť žiadna kritická alebo prioritná chyba. Plán testovania by mal byť schválený a podpísaný. Testovacie prípady, testovacie scenáre a testovacie skripty by mali byť pripravené na vykonanie. Testovacie prostredie by malo byť pripravené. Nefunkčné požiadavky by mali byť k dispozícii. Kritériá ukončenia Mali by sa vykonať všetky plánované testovacie prípady pre testovanie systému. Žiadna prioritná alebo kritická chyba by nemala byť v otvorenom stave. Aj keď sú otvorené chyby so strednou alebo nízkou prioritou, mali by prejsť do ďalšej úrovne testovania akceptačného testovania. Mala by byť pripravená výstupná správa. Typy testovania systému Ako už bolo uvedené, tento typ testovania hodnotí softvér z hľadiska funkčných a nefunkčných požiadaviek. Preto musí softvér prejsť rôznymi technikami testovania, aby sa posúdil celý systém a jeho rôzne aspekty. Rôzne typy testovania systému sú: Funkčné testovanie: Posudzuje softvér s cieľom skontrolovať, či každá funkcia funguje tak, ako má, a či spĺňa stanovené požiadavky. Ak testeri zistia, že niektoré funkcie chýbajú, uvedú ich vývojovému tímu na implementáciu. Taktiež navrhujú ďalšie funkcie na vylepšenie softvéru. Testovanie výkonnosti: Je to nefunkčný typ testovania, ktorý overuje stabilitu, škálovateľnosť, odozvu a rýchlosť systému pri danom zaťažení. Testovanie použiteľnosti: Je to tiež nefunkčné testovanie, ktoré overuje používateľskú prívetivosť a efektívnosť softvéru. Jednoducho povedané, určuje, ako ľahko môžu používatelia softvér spravovať a ovládať a pristupovať k jeho funkciám. Testovanie spoľahlivosti: Táto technika testovania hodnotí softvér s cieľom overiť, či funguje správne a konzistentne za určitých podmienok počas určitého obdobia. Testovanie bezpečnosti: Odhaľuje všetky bezpečnostné riziká a zraniteľnosti softvéru a zabezpečuje, aby neumožňoval neoprávnený prístup k údajom a iným zdrojom. Testovanie škálovateľnosti: Tento typ testovania záťaže hodnotí výkonnosť softvéru pri zvyšovaní a znižovaní počtu používateľov. Testovanie obnoviteľnosti: Táto technika testovania určuje schopnosť softvéru zotaviť sa zo zlyhaní a havárií. Testovanie interoperability: Analyzuje, ako dobre softvér spolupracuje so svojimi komponentmi a produktmi tretích strán. Regresné testovanie: Pri tomto testovaní sa zabezpečuje, aby nové zmeny v zdrojovom kóde softvéru neovplyvnili existujúcu funkčnosť. Zabezpečuje stabilitu softvéru, pretože integruje subsystémy a postupy údržby. Proces testovania systému Tu sú uvedené jednotlivé kroky testovania systému: Nastavenie testovacieho prostredia Prvým krokom je vytvorenie testovacieho prostredia, ktoré zodpovedá produkčnému prostrediu na testovanie kvality. Testovacie prostredie zahŕňa výber programovacích jazykov, rámcov a testovacích nástrojov a vytvorenie potrebných závislostí a konfigurácií. Vytvorenie testovacích prípadov Ďalším krokom je vytvorenie testovacích prípadov pre vyčerpávajúci proces testovania. Zahŕňa aj vytvorenie testovacieho dokumentu, ktorý obsahuje počet úspešných a neúspešných testovacích prípadov. Vypracovanie testovacích údajov Tento krok zahŕňa zber testovacích údajov. Mal by obsahovať všetky potrebné informácie a polia. Identifikuje priaznivé a nepriaznivé kombinácie vstupov/výstupov. Vykonanie testovacích prípadov Na vykonanie testovacích prípadov použi vytvorené testovacie prípady a testovacie údaje. To ti pomôže zistiť, či sú testovacie prípady úspešné alebo neúspešné. Zisťovanie chýb/nedostatkov Ak sa vyskytnú nejaké chyby alebo nedostatky, testeri by ich mali nahlásiť v testovacom dokumente vytvorenom v druhom kroku. Regresné testovanie Na opravu zistených chýb vývojári vykonávajú zmeny v zdrojovom kóde. Testeri teda vykonávajú regresné testovanie, aby sa uistili, že najnovšie úpravy zdrojového kódu neovplyvňujú jeho existujúcu funkčnosť. Retestovanie Ak sa počas regresného testovania zistia chyby, testovací tím ich nahlási vývojovému tímu. Cyklus testovania pokračuje, kým softvér nie je pripravený na prechod do produkčnej fázy. Výhody a nevýhody testovania systému Tu sú uvedené niektoré významné výhody a nevýhody testovania systému: Výhody Systémové testovanie nevyžaduje od testerov znalosti programovania. Overuje celý softvérový produkt a odhaľuje chyby a nedostatky, ktoré jednotkové a integračné testovanie nemôže odhaliť. Testovacie prostredie je podobné skutočnému produkčnému prostrediu. Výsledkom dôkladného testovania softvérového produktu je v konečnom dôsledku vysoká kvalita. Zlepšuje celkový výkon, údržbu a spoľahlivosť systému. Keďže odhaľuje všetky možné chyby a nedostatky, vývojové a testovacie tímy sú dostatočne sebavedomé na to, aby mohli produkty uvoľniť pre používateľov. Nevýhody Testovanie systému je časovo náročné. Vyžaduje si vysokokvalifikovaných testerov. Je náročné pre veľké a zložité projekty. Testeri nemajú prehľad o zdrojovom kóde softvéru. Žiadne testovanie neodhalí 100 % chýb. Aj keď testovanie systému overí všetky aspekty zdrojového kódu, chyby môžu stále existovať. Systémové testovanie vs. akceptačné testovanie Nasledujúca tabuľka poukazuje na rozdiel medzi testovaním systému a akceptačným testovaním: System Testing (systémové testovanie)Acceptance Testing (akceptačné testovanie)Testuje softvérový produkt ako celok a overuje, či spĺňa funkčné a nefunkčné požiadavky.Malá skupina skutočných používateľov testuje softvérový produkt, aby sa uistila, že spĺňa požiadavky zákazníka.Zahŕňa funkčné a nefunkčné testovanie.Zahŕňa len funkčné testovanie.Uskutočňuje sa po integračnom testovaní.Uskutočňuje sa po testovaní systému.Používa fiktívne vstupy vytvorené testermi.Používa náhodné vstupy zadané používateľmi.Zistené chyby sa dajú opraviť.Zistené chyby sa považujú za chybu výrobku.Zameriava sa na pozitívne aj negatívne prípady.Zameriava sa len na pozitívne prípady. Záver Toto bolo všetko o systémovom testovaní v softvérovom inžinierstve. Ide o kľúčovú úroveň v testovaní softvéru, pretože dôkladne testuje softvérové produkty na základe funkčných a nefunkčných požiadaviek. Ak sa vykonáva správne, zlepšuje kvalitu, výkonnosť, udržiavateľnosť a spoľahlivosť softvéru. V opačnom prípade sa môžu objaviť prípadné chyby, ktoré zostali neodhalené, keď sa softvér dostane do ostrej prevádzky.The post System testing – systémové testovanie first appeared on IT tester.

prejsť na článok

Acceptance testing – akceptačné testovanie

Čo je akceptačné testovanie?Typy akceptačného testovaniaVýznam akceptačného testovaniaZáver Čo je akceptačné testovanie? Akceptačné testovanie je posledná úroveň testovania softvéru, pri ktorej sa testuje súlad systému s obchodnými požiadavkami. Vyk

prejsť na článok

Testovanie čiernej skrinky black-box testing

Testovanie čiernej skrinky (black-box testing) sa označuje aj ako testovanie založené na špecifikácii testovaného systému. Na rozdiel od testovania bielej skrinky (white-box testing) sa pri testovaní čiernej skrinky nevyžaduje znalosť vnútornej architektú

prejsť na článok

Testovali ste EKO produkt Almawin na pranie Sport & Outdoor / TESTOVANIE EKO PRODUKTU

A už tu máme výsledky testovanie EKO produktu - tentokrát Almawin Tekutý prací EKO prostriedok Sport & Outdoor. Dve naše zákazníčky od nás produkt dostali a vyskúšali. Prečítajte si, aké boli ich skúsenosti.

prejsť na článok

Techniky navrhovania testov Test Design Techniques

Aké sú rôzne techniky návrhu testov?Techniky statického návrhu testov1. Manuálne techniky statického návrhu2. Techniky statického návrhu s použitím nástrojovTechniky dynamického testovania Aké sú rôzne techniky návrhu testov? Techniky návrhu testov

prejsť na článok

Boundary Value Analysis Analýza hraničných hodnôt

Testovanie softvéru alebo skôr vyčerpávajúce testovanie softvéru je časovo a zdrojovo veľmi náročná činnosť. Aby sme mohli efektívne testovať akúkoľvek aplikáciu v čo najlepšom čase a s optimálnymi zdrojmi, používame rôzne techniky návrhu testov. Jednou z

prejsť na článok