5. diel - Úrovne testovania Nové
V predchádzajúcej lekcii, Testovanie v priebehu SDLC po druhej - DevOps a automatizácia , sme sa pozreli na vývoj softvéru riadený testovaním, vysvetlili sme si čo je DevOps a shift-left prístup. Nakoniec sme si vysvetlili retrospektívy a zlepšovanie procesov.
V dnešnej lekcii, v ktorej sa venujeme úrovniam testovania si rozlíšime rôzne úrovne testovania a rôzne typy testov .
Úrovne testovania a typy testov
Úrovne testovania sú skupiny testovacích aktivít vykonávaných v rôznych fázach vývoja softvéru, od jednotlivých komponentov až po celé systémy alebo systémy systémov. Každá úroveň je špecifickou inštanciou testovacieho procesu, ktorý zodpovedá danej fáze vývoja softvéru.
Tieto úrovne sú úzko prepojené s ostatnými činnosťami v rámci SDLC. V sequential development models sú úrovne testovania jasne oddelené, kde výstup jednej úrovne tvorí vstup do ďalšej. aplikáciu ako celok. Akonáhle sa začne s ďalšou fázou, nie je ľahké sa vrátiť späť a meniť predchádzajúce fázy:
V iterative development models sa však môžu úrovne testovania prekrývať a vývojové aktivity môžu prebiehať naprieč viacerými úrovňami. aplikácia môže priebežne vylepšovať na základe spätnej väzby:
Typy testov sú skupiny aktivít zamerané na konkrétne kvalitatívne vlastnosti softvéru a môžu byť vykonávané v ľubovoľnej úrovni testovania. Typy testov si vysvetlíme ďalej v lekcii.
Úrovne testovania
Aby nedochádzalo k prekrývaniu činností pri testovaní v jednotlivých úrovniach, čiastkové úrovne testovania sa odlišujú špecifickou definíciou rôznych atribútov.
Unit testing
Unit testing (testovanie komponentov) sa zameriava na testovanie izolovaných komponentov. Na ich vykonávanie je často potrebný špeciálny softvér, napr. ceny objednávky v e-shope, aby sa ubezpečil, že správne počíta cenu na základe množstva a zľavy. v jeho vývojovom prostredí a je izolovaný od ostatných častí aplikácie.
Component integration testing
Component integration testing (integračné testovanie komponentov) sa zameriava na testovanie rozhrania a interakcií medzi komponentmi. Toto testovanie je silne závislé na zvolenej integračnej stratégii. po pridaní položky je možné korektne vykonať platbu.
System testing
System testing (systémové testovanie) sa zameriava na celkové správanie a schopnosti celého systému alebo produktu, často vrátane functional testing (funkcionálneho testovania) komplexných úloh a non-functional testing (nefunkcionálneho testovania) kvalitatívnych charakteristík. Niektoré z nich je vhodnejšie testovať na úplnom systéme vo vhodnom testovacom prostredí. Okrem iného je možné využívať simuláciu subsystémov. vykonávané nezávislým testovacím tímom. Testovací tím napríklad testuje celú e-shopovú aplikáciu, vrátane toho, ako funguje správa užívateľských účtov, spracovanie objednávok a doručovanie Skúmajú, či systém funguje podľa špecifikácií a vykonávajú ako functional, tak non-functional testy, napríklad meranie výkonu pri vysokom zaťažení.
System integration testing
System integration testing (systémové integračné testovanie) sa zameriava na testovanie rozhrania medzi testovaným systémom a ďalšími systémami alebo externými službami. Pre system integration testing je potrebné mať vhodné testovacie prostredie, pokiaľ možno podobné prevádzkovému. bránu tretej strany a externú službu pre sledovanie zásielok, aby sa ubezpečil, že komunikácia medzi systémami prebieha bez problémov.
Aceptance testing
Acceptance testing (akceptačné testovanie) sa zameriava na preukázanie pripravenosti systému na nasadenie do produkčného prostredia a validuje, že systém spĺňa biznisové potreby používateľa. užívateľské akceptačné testovanie), operational aceptance testing (prevádzkové akceptačné testovanie), contractual aceptance testing (zmluvné akceptačné testovanie), regulatory aceptance testing (regulátorné akceptačné testovanie), alpha testing (alfa testovanie) a beta testing (beta testovanie) Tu napríklad koncoví používatelia testujú e-shop pred jeho uvedením do prevádzky, aby overili, že spĺňa všetky biznisové požiadavky, ako je správne spracovanie objednávok a jednoduchá správa zákazníckych dát.
Typy testov
Existuje mnoho typov testov, ktoré je možné na projektoch použiť.
Functional testing overuje funkcionality, ktoré by komponent alebo systém mal vykonávať. Hlavným cieľom functional testing je kontrola funkcionálnej úplnosti, funkcionálnej správnosti a funkcionálnej vhodnosti. je zistiť, či všetky tieto funkcie fungujú podľa požiadaviek.
Non-functional testing vyhodnocuje nefunkcionálne charakteristiky komponentu alebo systému a dáva tak odpoveď na otázku ako dobre sa systém chová.
- výkonnostná efektivita,
- kompatibilita,
- použiteľnosť,
- bezporuchovosť (spoľahlivosť),
- bezpečnosť,
- udržiavateľnosť,
- prenositeľnosť.
Black-box testing (testovanie čiernej skrinky) je založené na špecifikácii a odvodzuje testy z dokumentácie testovaného objektu. Hlavným cieľom black-box testing je kontrola správania systému podľa jeho špecifikácie. špecifikácie bez toho, aby skúmal vnútorný kód. Zadá rôzne kombinácie tovaru, zliav a dopravy a kontroluje, či systém vracia správnu celkovú cenu.
White-box testing (testovanie bielej skrinky) je založené na štruktúre a odvodzuje testy z implementácie systému alebo z jeho vnútornej štruktúry, čo je napr. kód, architektúra, pracovné toky (workflows) alebo dátové toky Hlavným cieľom white-box testing je dosahovať dostatočného pokrytia testovanej štruktúry. Napríklad vývojár alebo tester skúma kód funkcie pre výpočet ceny v e-shope a overuje, že všetky vetvy a podmienky v kóde boli pokryté testami, aby sa zabezpečilo, že žiadna časť kódu nebola opomenutá:
Všetky tieto testy je možné aplikovať na rôznych úrovniach testovania, pričom konkrétna implementácia sa môže líšiť.
Confirmation a regression testing
Pri vykonávaní zmien v komponente alebo systéme, či už ide o opravy alebo rozšírenia, je dôležité zahrnúť tak confirmation, ako aj regression testing.
Confirmation testing overuje, či bol pôvodný defekt úspešne opravený. .V prípadoch s obmedzenými zdrojmi môže confirmation testing spočívať iba v opakovaní krokov, ktoré pôvodne viedli k zlyhanie, a overenie, že už k nemu nedochádza.
Regression testing zaisťuje, že po zmenách nedošlo k nežiaducim vedľajším efektom, ktoré by mohli ovplyvniť ako upravený komponent, tak ďalšie časti systému alebo dokonca prepojené systémy. Preto je vhodné vopred vykonať analýzu dopadu, ktorá identifikuje oblasti softvéru, ktoré by mohli byť zmenami ovplyvnené. Regression testing nie je obmedzené iba na daný objekt, ale môže zahŕňať aj testovanie prostredia. opakovane a ich rozsah sa s každou iteráciou zvyšuje, preto sú ideálnym kandidátom na automatizáciu, ktorú je vhodné začať implementovať už v raných fázach projektu.
Confirmation i regression testing sa vykonáva na úrovniach testovania, kde boli vykonané opravy alebo zmeny.
Zdrojom tejto lekcie sú Učebné osnovy - Certifikovaný tester základnej úrovne ver. 4.0. Stuart Reid, Eric Riou du Cosquer (predseda), Adam Roman, Lucjan Stapp, Stephanie Ulrich (podpredseda), Eshraka Zakaria
V budúcej lekcii, Statické testovanie sa pozrieme na testovanie údržby, základy statického testovania, vysvetlíme si hodnotu statického testovania a porovnáme si odlišnosti statického a dynamického testovania.