system testing vs end end testing
Prehľad Testovanie systému a komplexné testovanie:
End-to-end testovanie a testovanie systému idú vždy ruka v ruke, ale aj skúsený testovací profesionál môže byť zmätený z obrovských výhod, ktoré každá ponúka, a zvoliť si iba jednu.
V tomto článku sa pokúsime diskutovať medzi end-to-end testovaním a testovaním systému. Aby sme pochopili rozdiel medzi nimi, najskôr pochopíme, aké sú rôzne fázy, ktorými prechádza akýkoľvek vývojový produkt.
V softvérovom priemysle sme vždy v dileme, či si vyberieme medzi rýchlejším vydaním a kvalitným vydaním, ale vždy existuje jemná rovnováha medzi nimi. Všetci očakávame rýchlosť a zároveň kvalitu, čo je dosť tvrdšie.
Čo sa dozviete:
- Životnosť testovaného softvérového produktu
- Čo je to Testovanie systému?
- Prečo je testovanie systému dôležité?
- Kedy spustiť testovanie systému?
- Čo je to end-to-end testovanie?
- Prečo je testovanie typu end-to-end dôležité?
- Kedy začať testovať od začiatku do konca?
- Rozdiel medzi testovaním systému a komplexným testovaním
- Testovanie systému alebo end-to-end testovanie alebo oboje?
- Záver
- Odporúčané čítanie
Životnosť testovaného softvérového produktu
Životný cyklus produktu začína, keď klient získa obchodné požiadavky. Zainteresovaný tím, ktorý je za to zodpovedný, vykoná jeho dôkladnú analýzu a ďalej navrhne technické špecifikácie.
Tieto špecifikácie pomôžu technikom alebo vývojárom naštartovať svoju prácu pri vývoji softvéru. Kroky, ktoré sú tu zapojené, sú pre ľahšie pochopenie vysvetlené nižšie.
Krok 1: Na základe popisu produktu na vysokej úrovni je softvérový produkt kategorizovaný do rôznych modulov a potom do komponentov alebo jednotiek. Tieto jednotky sa vyvíjajú nezávisle, aby ich vývoj mohol pokračovať paralelne zapojením viacerých vývojárov.
Po vývoji sú tieto jednotky testované individuálne, čo spadá pod Unit Testing.
Krok 2: Individuálna validácia zaisťuje, že všetky jednotky systému fungujú podľa očakávania z funkčných dôvodov aj z hľadiska uskutočniteľnosti. Tieto komponenty, moduly alebo podsystémy sú integrované do ďalšej úrovne a potom testované ako integrovaná jednotka v integračnom testovaní.
Krok č. 3: V tomto kroku prichádza na rad testovanie systému, kde by sa integrovaný produkt testoval prvýkrát ako celok v pseudoprodukčnom prostredí. Táto úroveň testovania sa vykonáva s cieľom skontrolovať zhodu s funkčnými aj nefunkčnými obchodnými požiadavkami.
Krok č. 4: Je to úroveň testovania, ktorá sa vykonáva pre akceptovateľnosť klienta, a preto sa nazýva Acceptance Testing. To sa uskutoční tesne pred spracovaním softvéru klientovi, ktorým je produkčné prostredie.
Čo je to Testovanie systému?
Testovanie systému je niečo, čo sa robí po integračnom testovaní a pred testom prijatia dostupného hardvéru alebo softvéru.
Testovanie systému sa vykonáva s cieľom analyzovať koordináciu susedných komponentov ako jedného systému, aby sa zabezpečilo, či zodpovedá normám kvality alebo nie. Primárne zameranie je na detekciu chýb v medzinápravových skupinách vykonaním funkčných a nefunkčných testov na integrovanom produkte.
Vykonávajú sa nefunkčné testy, aby sa zabezpečilo, či vyvíjajúci sa produkt bude vyhovovať obchodným očakávaniam alebo nie. Vykonávajú sa s cieľom zistiť čas odozvy aplikácie alebo skontrolovať kompatibilitu alebo manipuláciu s inštaláciou, výkonnosť, regresiu, škálovateľnosť, bezpečnosť a niekoľko ďalších oblastí.
Preto musí aplikácia vyčistiť funkčné aj nefunkčné úrovne, aby sa zabezpečilo, že ak bude zodpovedať iným trhovým štandardom, môže poškodiť reputáciu spoločnosti.
Vysvetlím to pomocou príkladu mobilnej aplikácie na rezerváciu taxíka, ako je Uber:
Uber poskytuje online rezerváciu taxíkov a má rôzne moduly, ako je sledovanie polohy, platobné brány, cestovné v kabíne a profily vodičov, ktoré je možné nezávisle testovať ako súčasť testovania jednotiek .
Keď tieto moduly fungujú nezávisle, sú integrované na testovanie a zabezpečenie, či navzájom spolupracujú pod Testovanie integrácie.
Ďalej sa požiadavky zákazníka začnú overovať až pri testovaní systému, napríklad ak je zákazník schopný nájsť taxík najbližšie k jeho miestu alebo či je schopný uskutočniť platbu spoločnosti Uber pomocou svojho výberu platobných metód atď.
Validácii týchto scenárov sa venuje dokument Testovanie systému .
Prečo je testovanie systému dôležité?
Testovanie systému je povinné, pretože vývojári / testeri musia pred prechodom na ďalšiu úroveň skontrolovať niekoľko aspektov.
Medzi málo aspektov patrí:
- Je potrebné mať istotu fungovania softvéru ako celku.
- Je potrebné skontrolovať, či produkt nevynecháva žiadne funkčné a nefunkčné požiadavky.
- Je potrebné produkt otestovať v prostredí podobnom výrobe.
- Je potrebné skontrolovať produkt pomocou údajov podobných výrobe.
Testovanie systému obsahuje scenáre založené na obchodných rizikách, prípadoch použitia alebo na vysokej úrovni popisu správania produktu. Súčasťou testovania systému by mali byť aj prípady spojené s interakciami s rôznymi systémovými prostriedkami.
Preto by ho mal vykonávať niekto, kto má úplné znalosti o požadovanom produkte na úrovni architektúry aj podnikania. Interné znalosti na úrovni kódovania sa nevyžadujú, ale systémové znalosti sú pre testera povinné.
Spravidla by mal byť za úlohu Testovania systému poverený samostatný tím, ktorý navrhne vlastné plány testovania systému a prípady testovania systému, ktoré sa budú od tých, ktoré sa týkajú pokrytia testov, líšiť od tých, ktoré sa vykonali skôr. V prípade potreby je možné vykonať niekoľko iterácií testovania systému v niekoľkých prostrediach.
Kedy spustiť testovanie systému?
Testovanie systému je možné zahájiť, keď:
- Testovanie jednotky bolo úspešne uzavreté pre všetky jednotky bez akýchkoľvek otvorených chýb.
- Všetky komponenty testované na jednotku sú dobre integrované a testovanie integrácie bolo úspešne vykonané.
- Na testovanie systémového produktu je k dispozícii pseudoprodukčné prostredie.
- System Tester je informovaný o všetkých vstupoch a výstupoch systému a je pripravený na testovacie artefakty.
Čo je to end-to-end testovanie?
Testovanie softvéru je dôležitým parametrom zabezpečenia kvality softvéru. Kvalitný výrobok vždy poskytuje vyššiu úroveň spokojnosti vynálezcov aj kupujúceho. Inými slovami, kvalifikovaný alebo prémiový produkt je výsledkom dôkladnej regresie a odstránenia chyby na všetkých úrovniach.
Ako je vysvetlené samotným názvom, end-to-end testovanie je jednou z úrovní testovania, pri ktorej sa tok aplikácií testuje v spojení so závislými systémami. To sa deje s cieľom zabezpečiť plynulú interakciu s back-endovými a front-endovými aplikáciami, ako sú databázy alebo grafické používateľské rozhranie, pomocou sieťových kanálov, a preto sa označuje ako Reťazové testovanie tiež.
Na rozdiel od testovania systému tu testovanie používateľského rozhrania nehrá žiadnu významnú rolu, kontrola sa však venuje podkladovým údajom, ktoré prepínajú rozhranie do funkčného režimu. End-to-end testovanie sa zvyčajne vykonáva, keď produkt kvalifikuje Testovanie systému.
Pokračovaním v našom príklade Uberu vo fáze kompletného testovania overíme úplnú cestu zákazníka
Otvorenie aplikácie na mobilnom telefóne používateľa -> nájdenie kabíny pre zadaný cieľ -> sledovanie kabíny pred jazdou alebo počas nej -> dokončenie jazdy a zaplatenie pomocou jednej z možností platby -> konečne pripísanie kreditu na účet vodiča.
Prebiehajúci tento komplexný tok zaisťuje, že zákazník je schopný plniť svoje potreby. Toto testovanie je dôležité na identifikáciu problémov so skúsenosťami so zákazníkom, najmä v súvislosti s tým, ako sa spája viac systémov.
Prečo je testovanie typu end-to-end dôležité?
End-to-End testovanie hrá dôležitú úlohu, keď musí byť vyvinutým produktom distribuovaný systém a vyžaduje sa od neho spoločná funkcia s ostatnými systémami v rôznych prostrediach. V takýchto scenároch sa vyžaduje 360-stupňová kontrola, aby sa zabezpečila presná interakcia medzi rôznymi platformami a prostrediami.
Medzi hlavné ciele komplexného testovania patrí:
technická podpora pohovor otázky a odpovede pdf
- Uistite sa, že je vyvíjaný produkt dobre koordinovaný s ktorýmkoľvek z jeho podsystémov, ktoré môžeme alebo nemusíme vlastniť.
- Na kontrolu všetkých tokov systémov zo zdrojových systémov do cieľových systémov.
- Overiť požiadavky z pohľadu koncového používateľa.
- Identifikovať problémy v heterogénnych prostrediach.
V prípade potreby by sa mali vykonať opakovateľné testy, aby sa zaistila kontrola zdravotného stavu aplikácie. Niekedy môže nastať situácia, keď vidíme konflikt medzi vývojárom a testerom na základe porozumenia ovplyvneným oblastiam aplikácie v dôsledku menších zmien kódu.
Vývojári si môžu myslieť, že zmena je minimálna, ale tento vývoj je dostatočne významný na to, aby mohli znova spustiť kompletné testovacie scenáre pre celý systém. To však môže posunúť dodacie termíny a tiež to môže zvýšiť náklady.
Kedy začať testovať od začiatku do konca?
Testovanie typu end to end sa zvyčajne vykonáva-
- Len čo produkt kvalifikuje Testovanie systému, v ktorom sú pokryté všetky funkčné aspekty.
- Keď sú závislé prostredia identifikované a dostupné na vykonávanie vykonania úrovne toku.
- Keď je tester vybavený požadovanými znalosťami a testovacími artefaktmi.
- Keď má tester príslušné nástroje, ktoré dokážu analyzovať tok údajov.
Rozdiel medzi testovaním systému a komplexným testovaním
Ďalej je uvedených niekoľko rozdielov medzi testovaním systému a komplexným testovaním:
Testovanie systému | Testovanie typu end to end |
---|---|
Vyvinutý produkt je testovaný na základe špecifických technických požiadaviek produktu určených na základe obchodných požiadaviek. | Vyvinutý produkt je testovaný spolu so závislými systémami podľa obchodných požiadaviek. |
Zahŕňa funkčné aj nefunkčné aspekty testovania. | Pokrýva úrovne testovania týkajúce sa všetkých zdrojových a cieľových systémov. |
Realizované ku koncu životného cyklu vývoja softvéru. | Vykonáva sa, keď produkt kvalifikuje testovanie integrácie. |
Všetky implementované funkcie produktu by boli podrobne preskúmané, aby sa dosiahli neočakávané výsledky. | Toky procesov sa skontrolujú spolu so systémami front-end, backend a mid-tier. |
Tester by mal dobre rozumieť funkčnosti vyvinutého produktu. | Tester by mal dobre rozumieť tokom údajov a pracovným tokom v systéme. |
Systémový tester sa nemusí starať o fázy životného cyklu vývoja produktu. | End-to-end tester musí rozumieť všetkým fázam. |
Testovanie systému alebo end-to-end testovanie alebo oboje?
Testovanie systému a end-to-end testovanie sa často považuje za rovnaké, ale nie je to pravda. Oba sú rôznymi formami testovania s iným pokrytím testom.
Zatiaľ čo end-to-end testovanie kontroluje tok aktivít od začiatku do konca systému pokrývajúceho všetky závislé systémy, System Testing skontroluje rovnakú funkčnosť s inou sadou vstupov na vyhodnotenie odozvy.
Preto je pokrytie testom pre oba typy testovania sa budú líšiť.
Záver
Systémový tester musí mať zmýšľanie skutočných používateľov, zatiaľ čo koncový tester musí rozumieť systémom upstream aj downstream rovnako.
Ako je vysvetlené vyššie, obidva typy testovania majú v cykle vývoja produktu rovnakú dôležitosť, a preto sa vyžaduje, aby odhalili chyby rôznych kategórií.
Dúfam, že by ste mali jasnú predstavu o tom, ktoré testovanie zvoliť? Zatiaľ sa neváhajte podeliť o svoje skúsenosti v sekcii komentárov nižšie.
Odporúčané čítanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Stiahnutie e-knihy Testing Primer
- Alfa testovanie a beta testovanie (kompletný sprievodca)
- Funkčné testovanie vs. Nefunkčné testovanie
- Testovanie záťaže s výukovými programami HP LoadRunner
- Rozdiel medzi počítačom, klientskym serverom a webom
- Čo je to testovanie gama? Fáza záverečného testovania
- Kompletný sprievodca zostavením Verification Testing (BVT Testing)