system testing vs end end testing
Přehled Testování systému a end-to-end testování:
End-to-end testování a testování systému jdou vždy ruku v ruce, ale i zkušený testovací profesionál se může zmást z obrovských výhod, které každá nabízí, a vybrat si pouze jednu.
V tomto článku se pokusíme diskutovat mezi end-to-end testováním a testováním systému. Abychom pochopili rozdíl mezi nimi, nejprve pochopíme, jaké jsou různé fáze, kterými prochází jakýkoli vývojový produkt.
V softwarovém průmyslu jsme vždy v dilematu volby mezi rychlejším vydáním a kvalitním vydáním, ale vždy existuje jemná rovnováha mezi nimi. Všichni očekáváme rychlost i kvalitu zároveň, což je dost tvrdší.
Co se naučíte:
- Životnost testovaného softwarového produktu
- Co je Testování systému?
- Proč je testování systému důležité?
- Kdy zahájit testování systému?
- Co je end-to-end testování?
- Proč je testování typu end to end důležité?
- Kdy zahájit testování od začátku do konce?
- Rozdíl mezi testováním systému a end-to-end testováním
- Testování systému nebo end-to-end testování nebo obojí?
- Závěr
- Doporučené čtení
Životnost testovaného softwarového produktu
Životní cyklus produktu začíná, jakmile klient obdrží obchodní požadavky. Dotyčný tým, který je za něj odpovědný, provede jeho důkladnou analýzu a dále navrhne technické specifikace.
Tyto specifikace pomohou technikům nebo vývojářům nastartovat svou práci při vývoji softwaru. Níže uvedené kroky jsou vysvětleny níže pro vaše snadné pochopení.
Krok 1: Na základě popisu produktu na vysoké úrovni je softwarový produkt kategorizován do různých modulů a poté do komponent nebo jednotek. Tyto jednotky jsou vyvíjeny nezávisle, aby jejich vývoj mohl pokračovat paralelně zapojením více vývojářů.
Jakmile jsou tyto jednotky vyvinuty, jsou jednotlivě testovány, což spadá pod Unit Testing.
Krok 2: Individuální ověření zajišťuje, že všechny jednotky systému fungují podle očekávání z funkčních důvodů i z hlediska proveditelnosti. Tyto komponenty, moduly nebo subsystémy jsou integrovány do další úrovně a poté testovány jako integrovaná jednotka v testování integrace.
Krok č. 3: V tomto kroku přichází na řadu testování systému, kde by byl integrovaný produkt poprvé testován jako celek v pseudoprodukčním prostředí. Tato úroveň testování se provádí za účelem kontroly souladu s funkčními i nefunkčními obchodními požadavky.
Krok č. 4: Jedná se o úroveň testování, která se provádí pro přijatelnost klienta, a proto se nazývá Acceptance Testing. To bude provedeno těsně před zpracováním softwaru klientovi, kterým je produkční prostředí.
Co je Testování systému?
Testování systému je něco, co se provádí po integračním testování a před akceptačním testem jakéhokoli dostupného hardwaru nebo softwaru.
Testování systému se provádí za účelem analýzy koordinace sousedních komponent jako jednoho systému, aby se zajistilo, zda splňuje standardy kvality nebo ne. Primárním zaměřením je detekce závad v mezisestavách prováděním funkčních a nefunkčních testů integrovaného produktu.
Nefunkční testy se provádějí, aby se zajistilo, zda vyvíjející se produkt vydrží obchodní očekávání nebo ne. Provádějí se k určení doby odezvy aplikace nebo ke kontrole kompatibility nebo manipulace s instalací, výkonu, regrese, škálovatelnosti, zabezpečení a několika dalších oblastech.
Aplikace proto musí vyčistit funkční i nefunkční úrovně, aby zajistila, že pokud bude odpovídat jiným tržním standardům, může poškodit reputaci společnosti.
Vysvětlím to pomocí příkladu mobilní aplikace pro rezervaci taxíku, jako je Uber:
Uber poskytuje možnost online rezervace kabin a má různé moduly, jako je sledování polohy, platební brány, jízdné v kabině a profily řidičů, které lze samostatně testovat jako součást testování jednotky .
Jakmile tyto moduly fungují samostatně, jsou integrovány, aby se otestovaly a zajistily, zda spolu navzájem spolupracují Testování integrace.
Dále se požadavky zákazníků začnou ověřovat pouze při testování systému, například pokud je zákazník schopen najít kabinu nejblíže k jeho místu nebo pokud je schopen provést platbu společnosti Uber pomocí své volby platebních metod atd.
Ověření těchto scénářů je popsáno v Testování systému .
Proč je testování systému důležité?
Testování systému je vyžadováno, protože vývojáři / testeři musí před přechodem na další úroveň zkontrolovat několik aspektů.
Několik aspektů zahrnuje:
- Je třeba mít jistotu o fungování softwaru jako celku.
- Je třeba zkontrolovat, zda produkt nevynechává žádné funkční a nefunkční požadavky.
- Je třeba produkt otestovat v prostředí podobném výrobě.
- Je třeba zkontrolovat produkt s údaji podobnými produkci.
Testování systému zahrnuje scénáře založené na obchodních rizicích, případech použití nebo popisu chování produktu na vysoké úrovni. Součástí testování systému by měly být také případy související s interakcemi s různými systémovými prostředky.
Proto by jej měl provádět někdo, kdo má úplnou znalost požadovaného produktu jak na úrovni architektury, tak na obchodní úrovni. Interní znalosti na úrovni kódování se nevyžadují, ale znalosti systému jsou pro testera povinné.
Obecně by měl být úkolem System Testing pověřen samostatný tým a tým navrhne své vlastní plány testů systému a případy testů systému, které se budou lišit od dříve provedených testů z hlediska pokrytí testů. V případě potřeby lze provést několik iterací testování systému v několika prostředích.
Kdy zahájit testování systému?
Testování systému lze zahájit, když:
- Testování jednotek bylo úspěšně uzavřeno pro všechny jednotky bez jakýchkoli otevřených vad.
- Všechny komponenty testované na jednotce jsou dobře integrovány a testování integrace proběhlo úspěšně.
- K testování produktu systému je k dispozici pseudoprodukční prostředí.
- System Tester je si vědom všech vstupů a výstupů systému a je připraven k testování artefaktů.
Co je end-to-end testování?
Testování softwaru je důležitým parametrem zajišťování kvality softwaru. Kvalitní produkt vždy poskytuje vyšší úroveň spokojenosti jak vynálezců, tak kupujícího. Jinými slovy, kvalifikovaný nebo prémiový produkt je výsledkem důkladné regrese a odstranění vady na všech úrovních.
Jak vysvětluje samotný název, end-to-end testování je jednou z úrovní testování, kde je tok aplikace testován ve spojení se závislými systémy. To se provádí k zajištění hladké interakce s back-endovými a front-endovými aplikacemi, jako jsou databáze nebo grafické uživatelské rozhraní, pomocí síťových kanálů, a proto se označuje jako Testování řetězu také.
Na rozdíl od testování systému zde testování uživatelského rozhraní nehraje žádnou významnou roli, ale kontrola je na podkladových datech, která přepnou rozhraní do funkčního režimu. End-to-end testování se obvykle provádí, jakmile produkt splní podmínky pro Testování systému.
V pokračování našeho příkladu Uberu ve fázi end-to-end testování ověříme kompletní cestu zákazníka
Otevření aplikace na mobilním telefonu uživatele -> nalezení kabiny pro zadaný cíl -> Sledování kabiny před jízdou nebo během ní -> dokončení jízdy a placení pomocí jedné z platebních možností -> konečná úhrada kreditu na účet řidiče.
Průběh tohoto end-to-end toku zajišťuje, že zákazník je schopen splnit jejich potřeby. Toto testování je důležité k identifikaci problémů se zkušenostmi zákazníků, zejména v souvislosti s více systémy, které se spojují.
Proč je testování typu end to end důležité?
End-to-End testování hraje důležitou roli, když musí být vyvinutým produktem distribuovaný systém a je vyžadováno, aby fungoval společně s ostatními systémy v různých prostředích. V takových scénářích je nutná 360stupňová kontrola, aby se zajistila přesná interakce napříč různými platformami a prostředími.
Mezi hlavní cíle end-to-end testování patří:
nejlepší spyware pro mobilní telefony
- Zajistit, aby byl vyvíjený produkt dobře koordinován s jakýmkoli z jeho podsystémů, které námi mohou nebo nemusí být ve vlastnictví.
- Kontrola všech toků systémů ze zdrojových systémů do cílových systémů.
- Ověření požadavků z pohledu koncového uživatele.
- Identifikovat problémy v heterogenních prostředích.
V případě potřeby je třeba provést opakovatelné testy, aby se zajistila kontrola stavu aplikace. Někdy může nastat situace, kdy vidíme konflikt mezi vývojářem a testerem na základě porozumění ovlivněným oblastem aplikace kvůli drobným změnám kódu.
Vývojáři si mohou tuto změnu myslet jako minimální, ale tato evoluce je natolik významná, aby bylo možné znovu provést testovací scénáře end-to-end pro celý systém. To však možná posune dodací termíny a může také zvýšit náklady.
Kdy zahájit testování od začátku do konce?
Testování typu end to end se obvykle provádí-
- Jakmile produkt splní podmínky pro testování systému, jsou pokryty všechny funkční aspekty.
- Když jsou závislá prostředí identifikována a jsou k dispozici k provedení provádění úrovně toku.
- Když je tester vybaven požadovanými znalostmi a testovacími artefakty.
- Když má tester příslušné nástroje, které mohou analyzovat tok dat.
Rozdíl mezi testováním systému a end-to-end testováním
Níže je uvedeno několik rozdílů mezi testováním systému a end-to-end testováním:
Testování systému | End to End Testing |
---|---|
Vyvinutý produkt je testován podle specifických technických požadavků na produkt identifikovaných na základě obchodních požadavků. | Vyvinutý produkt je testován spolu se závislými systémy podle obchodních požadavků. |
Zahrnuje funkční i nefunkční aspekty testování. | Pokrývá úrovně rozhraní testování s ohledem na všechny zdrojové a cílové systémy. |
Provádí se na konci životního cyklu vývoje softwaru. | Provádí se, jakmile produkt kvalifikuje testování integrace. |
Všechny implementované funkce produktu budou podrobně prozkoumány, aby se odhalily neočekávané výsledky. | Toky procesů budou zkontrolovány společně se systémy front-end a back-end a systémy střední úrovně. |
Tester by měl dobře rozumět funkčnosti vyvinutého produktu. | Tester by měl dobře rozumět datovým tokům a pracovním tokům v systému. |
Systémový tester se nemusí starat o fáze životního cyklu vývoje produktu. | End-to-end tester musí rozumět všem fázím. |
Testování systému nebo end-to-end testování nebo obojí?
Testování systému a testování typu end-to-end jsou často považovány za stejné, ale není to pravda. Oba jsou různé formy testování s různým pokrytím testu.
Zatímco end-to-end testování kontroluje tok aktivit od nuly až do konce systému pokrývající všechny závislé systémy, Testování systému zkontroluje stejnou funkčnost s jinou sadou vstupů k vyhodnocení odezvy.
Proto je testovací pokrytí pro oba typy testování se budou lišit.
Závěr
Systémový tester musí mít způsob myšlení skutečných uživatelů, zatímco tester typu end-to-end musí rozumět systémům upstream i downstream stejně.
Jak je vysvětleno výše, oba typy testování mají ve vývojovém cyklu produktu stejnou důležitost, a proto jsou nutné k odhalení vad různých kategorií.
Doufám, že byste měli jasnou představu o tom, jaké testování zvolit? Mezitím se můžete podělit o své zkušenosti v sekci komentáře níže.
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 [QA Test Automation Tools]
- Testování stahování e-knih Primer
- Alfa testování a beta testování (kompletní průvodce)
- Funkční testování vs. nefunkční testování
- Testování zátěže s výukovými programy HP LoadRunner
- Rozdíl mezi stolním počítačem, klientským serverem a webovým testováním
- Co je to gama testování? Fáze závěrečného testování
- Kompletní průvodce pro testování ověřování sestavení (testování BVT)