Jednou z nejdůležitějších součástí naší práce jako vývojářů softwaru je testování. Používají se desítky formátů testování, kdy testeři zkoumají každý řádek kódu, aby dodali dokonalý produkt.
Testování od konce ke konci je konečným testem části kódu, který hodnotí program z pohledu uživatele a hledá potenciální chyby, které by mohly někomu zkazit zážitek z práce.
Přečtěte si více o tom, co je to end-to-end testování, o některých výhodách tohoto typu testování a o některých ideálních nástrojích pro dokončení testovacích procesů na pracovišti.
Co je testování End-to-End?
End-to-End testování se používá v procesu vývoje softwaru k testování funkčnosti a výkonnosti aplikace při použití jako produktu.
Cílem end-to-end testování (neboli E2E) je získat lepší představu o tom, jak bude produkt fungovat při použití v reálném prostředí.
Tato forma testování se zaměřuje na zkoumání kódu od začátku interakce uživatele s kódem až do konce, proto se používá termín „end-to-end“.
Jedná se o velmi komplexní způsob zkoumání softwaru a zjišťování, kde a proč se ve vaší práci mohou objevit problémy.
1. Kdy a proč provádět testování End-to-End?
Nejvhodnější doba pro dokončení testování E2E je ke konci procesu vývoje. Je to proto, že většina funkcí, které zákazník používá, je v softwaru obsažena, což znamená, že komplexní test pokrývá všechny nezbytné aspekty programu, které uživatelé využijí.
Dokončení testování před touto dobou by mohlo přinést problémy spojené s tím, že představuje neúplnou verzi programu nebo softwaru.
Organizace provádějí testování E2E ze zřejmých důvodů, především z důvodů souvisejících s funkčností. Projít tímto testovacím procesem znamená, že do té doby rozumíte problémům s vaším projektem a můžete je vyřešit ještě před zveřejněním produktu.
2. Když nepotřebujete provádět testování od konce ke konci
Existuje několik případů, kdy end-to-end test není nutný, například případy, kdy jsou efektivnější unit testy.
Jednotkové testy zkoumají konkrétní jednotky kódu, například jednotlivé funkce a izolovaná spojení mezi dvěma různými funkcemi v programu. Jednotkové testy mohou být rychlejší, ale jejich nevýhodou je, že plně nesimulují uživatelské prostředí.
Testování jednotek zvažte v případě, že existuje relativně málo jednotek, například ve webové aplikaci, která má pouze jednu funkci.
Větší aplikace vyžadují exponenciálně větší tým, aby bylo možné komplexně otestovat všechny jednotky.
V těchto případech je návrat k end-to-end testům mnohem jednodušší.
3. Kdo se podílí na testech E2E?
To zcela závisí na povaze organizace. Některé společnosti mají speciální testovací tým, kde vývojáři sami provádějí testování pro některé podniky.
Větší organizace mají tendenci vytvářet samostatné týmy pro testování a vývoj a udržovat tyto dva orgány na sobě nezávislé, aby nedocházelo ke zkreslení výsledků testů E2E.
Pokud je to možné, požádejte někoho, kdo danou funkci nevyvíjel, aby ji otestoval. Tím se pokud možno odstraní přirozené zkreslení a výsledný test zůstane co nejpřesnější.
Menší nezávislí vývojáři, jako jsou začínající vývojáři aplikací nebo vývojáři s omezenějším rozpočtem, si testy E2E provádějí sami.
V těchto případech se zaměřte na použití automatizovaného testování. Automatizované systémy eliminují jakoukoli zaujatost a nedělají chyby při vytváření výsledků.
Pokud je to možné, je ideální, aby testy provádělo více lidí a opakovali je, protože to poskytuje další vrstvy jistoty, a to jak u automatizovaných, tak u manuálních výsledků.
A konečně, nástroje pro automatizaci od konce ke konci, jako je ZAPTEST, nabízejí model software + služby, což znamená, že odborník s certifikací ZAP by pracoval společně s týmem klienta a jako jeho součást, aby podpořil a maximalizoval návratnost investic generovaných různými automatizovanými testy, včetně testů od konce ke konci.
Výhody testování End-to-End
End-to-end testování má pro vývojový tým několik výhod, které se liší v závislosti na konkrétním typu testovaného softwaru.
Mezi hlavní výhody používání testování E2E ve vaší organizaci patří:
1. Zjištění nedostatků
End-to-end testování je ideální pro hledání chyb a dalších nedostatků v softwaru.
Během testování si zaznamenávejte všechny problémy a chybová hlášení, která se objeví, a také místa, kde se tyto problémy vyskytují. Proces opravy chyb je tak mnohem rychlejší a jednodušší.
Mezi příklady problémů, na které je třeba se zaměřit, patří nedokončení funkce aplikace, úplný pád aplikace nebo nesprávné načítání funkcí uživatelského rozhraní, které ovlivňuje vzhled programu.
2. Pochopení pohledu uživatele
Jedním z problémů, se kterými se vývojáři potýkají, je nedostatečné pochopení pohledu uživatelů na jejich práci. Koneckonců, vývojáři vidí především zadní část práce a nerozumí tomu, jak s nimi uživatel komunikuje.
Tento proces překlenuje tuto mezeru a upozorňuje vývojáře na problémy, jako jsou problémy s uživatelským rozhraním.
Sestavte kompletní sestavení aplikace, abyste v těchto případech získali plný uživatelský zážitek, od počátečního otevření aplikace až po procházení všech dostupných funkcí.
V těchto případech jsou užiteční testeři, kteří nejsou vývojáři, protože jsou méně shovívaví, protože se zaměřují na to, jak by aplikace „měla“ fungovat, a vidí výhradně vnější pohled.
3. Zvýšení důvěry vývojářů
I po provedení několika testů mohou mít vývojáři problémy s tím, aby si byli plně jisti svou prací.
Testování od začátku do konce prokazuje, že uživatelská zkušenost je pozitivní a že existuje dobrý základ pro vydání produktu.
I v případě, že se vyskytne problém, je znalost jeho místa přínosem pro vytvoření strategie a jistotu v ostatních oblastech a funkcích aplikace.
Úkoly spojené s testy typu End-to-End
Používání testů End-to-End při vývoji softwaru naráží na několik problémů, mezi které patří:
1. Pomalé provádění
Dokončení testu end-to-end znamená interakci s uživatelským rozhraním, která vyvolá akci, spíše než použití backendu, které může zabrat více času na navigaci a používání aplikace.
To se částečně zlepší při použití automatizace testování od konce ke konci.
2. Komplexní testovací prostředí
Testování „end-to-end“ je navrženo tak, aby se zaměřilo na obnovení přesné verze způsobu, jakým zákazník se softwarem komunikuje, což činí vytvoření přesnějšího testovacího prostředí obtížnějším než provádění menších testů.
3. Obtížné ladění
Proces ladění je složitější u testů typu end-to-end, protože automatický test, který se vrátí se zprávou „Fail“, pravděpodobně nebude mít konkrétní příčinu problému.
Vývojáři musí v těchto případech problémy dále zkoumat a řešit, zejména pokud nedojde k integraci konkrétních chybových hlášení.
Charakteristiky testů „od konce ke konci
Při zjišťování, zda má test povahu end-to-end, je třeba se zaměřit na několik hlavních testů.
Mezi charakteristiky, kterými se tento typ testu vyznačuje, patří:
1. Hodnocení od začátku do konce
Všechny end-to-end testy jsou hodnocením softwaru od první interakce uživatele s daným dílem až po poslední a zahrnují všechny aspekty softwaru, se kterými uživatelé přicházejí do styku.
Díky tomu je E2E jedním z nejkomplexnějších formátů testování, které jsou při vývoji softwaru k dispozici.
2. Scénář reálného světa
Testování E2E klade důraz na simulaci reálného světa, přičemž cílem všech těchto testů je vytvořit reálný scénář, který přesně zobrazuje způsob, jakým uživatel komunikuje s dostupnými informacemi.
To zahrnuje vytvoření přesného prostředí a uživatele pro testovací případ.
3. Jasné výsledky
Výsledky testování E2E jsou jasné a jednoduché, vývojáři se dozvědí, zda byl jejich software úspěšný, nebo zda došlo k selhání v kterémkoli bodě uživatelské cesty.
To platí zejména pro manuální testování, protože testeři mohou hlásit jakékoli problémy.
Typy činností při testování E2E
Existuje několik typů činností, které vývojáři a testeři provádějí v procesu testování E2E.
Patří mezi ně:
Uživatelské funkce
Uživatelské funkce jsou jednou z prvních věcí, na které je třeba se při práci s testováním E2E zaměřit.
1. Co jsou uživatelské funkce?
Uživatelské funkce jsou seznamem všech funkcí a vzájemně propojených systémů, které v rámci softwaru existují.
Jedná se o vše, s čím uživatel přichází do styku a co poskytuje vyšší úroveň funkčnosti programu.
Bez jakýchkoli uživatelských funkcí není program potřeba, protože máte jednoduše kód, který vytváří uživatelské rozhraní, které nic nedělá.
2. Příklady
Nabídka v aplikaci je považována za uživatelskou funkci, protože ji uživatel využívá při zlepšování úrovně své práce.
Dalšími příklady jsou algoritmy na zadní straně, například ty, které poskytují uživatelům více informací a povolují nebo zakazují přístup k vybraným programům.
3. Vytváření uživatelských funkcí
Vypište všechny funkce a propojené systémy a poté sledujte a zaznamenávejte všechny interakce, které se v systému vyskytují.
To zahrnuje všechna zadávaná data a výstupy, které z programu vycházejí.
Při tomto procesu buďte co nejdůkladnější, protože komplexní znalost funkcí a dat v programu činí testování mnohem jednodušším a srozumitelnějším.
Podmínky
Podmínky se vztahují k parametrům, které jsou nastaveny v rámci testu End-to-End a definují způsob, jakým test probíhá a jak tester vyhodnotí výsledek.
1. Co jsou to podmínky?
Podmínky odkazují na soubor parametrů, které definují test. Ty mají dvě podoby, včetně parametru TRUE/FALSE, který určuje, zda jsou data nebo výstup platné, a parametru data.
Použití těchto podmínek určuje stav testu a to, zda prostředí odpovídá skutečnému uživateli.
2. Příklady podmínek v end-to-end testech
Příkladem podmínky TRUE/FALSE je prohlížeč, ve kterém uživatel přistupuje k webové aplikaci, přičemž TRUE/FALSE určuje, zda je uživatel ve verzi pro stolní počítače.
Příkladem datové podmínky je doba, za kterou uživatel dokončí určitou akci, nebo IP adresa, ze které se uživatel připojuje.
3. Stavební podmínky
Určete ideální podmínky pro testování, včetně polohy uživatele, času, kdy test probíhá, a některých dalších datových podmínek, které přispívají k přesnosti testu.
V případě potřeby použijte „profil uživatele“, abyste zajistili konzistentnost a přesnost svých údajů. Čím realističtější jsou podmínky testu, tím přesnější jsou jeho výsledky.
Testovací případy pro testování End-to-End
Testovací případ je sada akcí, které uživatel provádí v systému, aby zjistil, zda systém funguje tak, jak vývojář očekává.
Dokončení řady testovacích případů znamená, že vývojáři mohou mít větší důvěru v kvalitu své práce a přesvědčit se, že jejich produkty fungují podle očekávání.
1. Co jsou testovací případy pro end-to-end testy?
Testovací případy pro end-to-end testy provádějí testeři od samého začátku interakce někoho s programem až do konce.
Navrhnutím těchto důkladných testovacích případů a jejich dodržováním pro každou iteraci softwaru vývojář zaručuje, že v každé iteraci softwaru bude zajištěna jeho funkčnost.
Udržujte testovací případy konzistentní od verze k verzi, abyste viděli změny v kvalitě práce a výsledcích testů.
2. Jak navrhnout testovací případy E2E?
V procesu návrhu testovacích případů E2E existuje několik kroků, z nichž každý vede k lepším výsledkům v průběhu testování.
Tyto kroky zahrnují:
Znát své cíle
Začněte tím, že pochopíte cíle jednotlivých testovacích případů.
V prvním kole testů se zkoumá základní funkčnost a zajišťuje se, že aplikace funguje, a později se v rámci dalších testů E2E zkoumá úroveň výkonu a odezvy.
To zahrnuje pochopení konkrétních podmínek testu, včetně demografických údajů, které testujete, a zajištění toho, aby vyhovovaly průměrnému uživateli.
Pokud máte své cíle na paměti od samého začátku, můžete se lépe soustředit a ujasnit si, co chcete dělat.
Zaměření na jednoduchost
Vycházejte z poměrně jednoduchého základu.
Pokud hned v prvním testu uvedete řadu složitých podmínek a požadavků na vaši práci, ztěžujete tím absolvování testu a zvyšujete složitost vaší práce.
Proveďte počáteční testování s velmi základními podmínkami a cíli a v pozdějších testech je rozšiřte a v případě potřeby přidejte další podrobnosti.
Testování může být složitější, ale než se rozšíříte, dokončete úplný základ.
Buďte důkladní
Při vyplňování testů E2E se snažte být co nejdůkladnější.
To znamená, že každý test dokončíte úplně a zaznamenáte si každý údaj, který při něm získáte.
Tímto způsobem zjistíte, jaký dopad měla každá změna v kódu.
To je užitečné zejména při pozdější optimalizaci programu a měření času potřebného k dokončení konkrétních úloh.
3. Příklady testovacích případů E2E
Mezi příklady testovacích případů, které společnosti používají při zjišťování kvality svého softwaru v rámci testování E2E, patří:
Testování funkce
Testování funkcí zahrnuje zjištění, zda konkrétní funkce softwaru fungují podle očekávání.
Jedná se o jednu z nejranějších fází testování E2E, která zjišťuje, zda kód funguje na základní úrovni, a teprve v pozdějších iteracích se snaží zlepšit výkonnost softwaru.
Rychlost odezvy
Zjištění, zda software rychle reaguje na uživatele a včas dokončuje úkoly.
Některé testy E2E se zaměřují na to, aby systém rychle vracel platné výsledky, měří čas potřebný k tomu, aby uživatel prošel procesem, a porovnávají ho s předchozími iteracemi, přičemž pro uživatele jsou ideální kratší běhy.
V průběhu celého procesu je důležité zachovat platné a přesné výsledky.
Odpovědi z databáze
Některé systémy jsou navrženy tak, aby uživateli vracely řadu odpovědí z databáze.
Při testování těchto aplikací nastavte určitou dobu, po kterou má aplikace odpovídat, a měřte počet odpovědí, které dostane z databáze, v porovnání s předchozími iteracemi stejného testovacího případu.
Dva typy testování a metod End-to-End
Stejně jako u jiných forem testování existují různé typy end-to-end testování, které vývojáři používají, přičemž každý z nich má jiné výhody v závislosti na vašich cílech.
End-to-end testování zahrnuje horizontální testy a vertikální testy, které se výrazně liší rozsahem testování a metodami, které vývojáři v tomto procesu používají.
Patří mezi ně:
1. Horizontální zkoušky
Horizontální test probíhá tak, že se ověřují uživatelské toky ve více aplikacích najednou, přičemž všechny aplikace běží od začátku do konce. Tím zajistíte, že každý proces bude správně fungovat v řadě různých případů použití a že různé formy dat nebudou mít negativní dopad na výkon aplikace.
Hlavní výhodou horizontálního testování e-to-e je zajištění správného fungování systémů pro řadu uživatelů, kteří používají stejnou verzi aplikace.
Chcete-li dokončit horizontální testování, zaměřte se na nastavení prostředí pro všechny případy před spuštěním koncového testu.
Všechny aplikace musí fungovat současně, což znamená, že to není ideální pro společnosti, které ještě nedokončily vývoj svých aplikací.
Tento druh testování e-to-e je z pohledu uživatele důkladný a zajišťuje, že uživatelé mají kromě základní funkčnosti k dispozici i takovou úroveň výkonu, kterou očekávají.
2. Vertikální testy
Vertikální end-to-end testování se spíše než na fungování celé aplikace zaměřuje na aplikaci po jednotlivých vrstvách.
Jedná se o více granulární proces, při kterém opakovaně testujete všechny jednotlivé aspekty aplikace a testujete v rámci jednoho systému, nikoli napříč aplikacemi, jak je tomu u horizontálního testování.
Hlavní výhodou vertikálního testování e-to-e je, že získáte podrobnější a detailnější pohled na fungování vašeho systému. Zjistíte, jaké jsou problémy v jednotlivých úrovních systému, a po testování je řešíte, místo abyste pouze věděli, že někde v aplikaci je problém.
V porovnání s prací s horizontálními testy však může správné dokončení zabrat více času.
Vyjasnění některých nejasností – testování od konce ke konci vs. testování systému vs. testování UAT vs. funkční testování
Existuje několik různých typů testování, které si lidé pletou s testováním end-to-end, když hovoří o způsobu, jakým organizace hodnotí a řeší problémy se svým softwarem.
Různé organizace a různé části softwaru mají jedinečné potřeby, a proto je nutné je řešit správnou formou testování.
Níže naleznete některé z různých forem testování, jejich definice, příklady a možnosti jejich použití.
1. Co je testování systému? (definice, příklady, kdy ji použijeme)
Systémové testování je verze testování softwaru, která zkoumá softwarový produkt v kontextu celého systému.
Jedná se o formu komplexního testování, protože zahrnuje celý produkt; testování systému však jde dále a zjišťuje, jak produkt spolupracuje s ostatním hardwarem a firmwarem daného systému.
Systémové testování například zahrnuje zjištění, zda program poběží na určitém systému, a zkoumání prostředků, které při tom využívá.
Testování systému provádějte v posledních fázích vývojového cyklu produktu, krátce před vydáním finálního produktu.
Pomocí této formy komplexního testování si softwaroví inženýři zajistí, že jejich programy spolehlivě poběží na různých strojích, a výsledky mohou využít v procesu optimalizace, takže program bude pracovat ještě efektivněji než dříve.
2. Co je testování UAT? (definice, příklady, kdy ji použijeme)
Testování UAT je zkratka pro uživatelské akceptační testování a jedná se o formu testování, kterou neprovádí někdo z vývojového týmu, ale člen cílové skupiny.
Koncoví uživatelé mohou se softwarem plně pracovat ještě před jeho vydáním, takže vývojáři mají čas vyřešit případné problémy, které uživatelé objeví.
Nejčastějším příkladem je bezplatný beta test hry před jejím uvedením na trh, kdy si vývojáři vyberou konkrétní publikum pro získání zpětné vazby.
Tento postup použijte na samém konci procesu vývoje. Jedná se o první verzi produktu, kterou prezentujete někomu mimo firmu, takže je nutné mít co nejvíce funkcí a vyladěných prvků.
Jediné věci, které by společnost měla dokončit po provedení testování UAT, jsou opravy chyb, které se objeví v procesu UAT, a reakce na zpětnou vazbu, kterou obdržíte od uživatelů.
3. Co je funkční testování? (definice, příklady, kdy ji použijeme)
Funkční testování je forma testování softwaru, která má zajistit, aby program splňoval všechny základní funkce, které byly součástí zadání projektu.
To zahrnuje zadání vhodných vstupů pro testy a jejich porovnání s výstupy, které prokazují, že základní funkce systému jsou v pořádku.
Příkladem může být vytvoření šachového enginu nebo podobného herního pravidla a zajištění, aby znal základní pravidla a při hře se choval správně.
Toto testování dokončete v polovině procesu vývoje, když se domníváte, že máte všechny základní funkce programu hotové.
To ukazuje, že základní funkce aplikace jsou funkční a máte dobrou základní úroveň výkonu, aniž byste museli upravovat kód backendu, takže zbývá vyřešit pouze uživatelské rozhraní a další estetické funkce.
4. Jaký je rozdíl mezi testováním od konce ke konci a systémovým testováním?
Zatímco testování end-to-end je pouhou analýzou softwaru a jeho efektivity, testování systému zahrnuje také posouzení hardwaru, na kterém běží, a některých částí firmwaru, například operačního systému, se kterými spolupracuje.
5. Jaký je rozdíl mezi testováním End-to-End a testováním UAT?
Hlavní rozdíl mezi testováním E2E a UAT spočívá v tom, že testování UAT probíhá prostřednictvím externího uživatele.
To znamená, že aplikace musí být v reprezentativním stavu, o kterém jste přesvědčeni, že na uživatele zapůsobí.
Kromě toho, zatímco testování E2E můžete provést v kterékoli fázi procesu, testování UAT přichází až ve chvíli, kdy je produkt skutečně připraven k zabalení a odeslání uživatelům, přičemž jsou nutné pouze drobné úpravy softwaru.
6. Jaký je rozdíl mezi testováním od konce ke konci a funkčním testováním?
Přestože testování E2E i funkční testování testují funkčnost daných programů, jedná se o různé formy testování, a to z několika důvodů.
Prvním z nich je, že testování funkčnosti se zabývá výhradně tím, zda je program funkční, a nezkoumá estetické aspekty a aspekty rozhraní programu.
Funkční testování probíhá také relativně brzy v procesu, místo aby bylo přínosné v každém bodě pracovního postupu.
7. Závěr: Testy E2E vs. systémové testy vs. testy UAT vs. funkční testování
Přestože jsou si všechny tři formy testování podobné v tom, že zajišťují funkčnost výrobku, významně se liší.
Zaměňování těchto termínů může vést ke špatným testovacím postupům a problémům s procesy zajištění kvality, které se navzájem zaměňují, proto se zaměřte na osvojení si těchto termínů a jejich správného použití dříve, než podniknete kroky k jejich používání na pracovišti.
Manuální nebo automatizované testy od konce ke konci?
Vývojáři mohou zvolit několik způsobů provedení end-to-end testů v závislosti na svých dostupných zdrojích a personálu. Jedná se o změnu mezi manuálním testováním end-to-end a automatizací těchto testů.
Podívejte se, jaké jsou výhody, problémy a postupy manuálního i automatizovaného end-to-end testování:
1. Manuální testování od konce ke konci – výhody, výzvy, proces
Manuální end-to-end testování spočívá v tom, že si testy end-to-end provedete sami a každý z nich provedete „ručně“, místo abyste si nechali udělat automatický nástroj.
Společnosti obvykle využívají specializovaný tým testerů, kteří mají zkušenosti s testováním softwaru a vědí, jak zaznamenat povahu chyb a nedostatků v systémech.
Jednou z hlavních výhod ručního testování end-to-end je skutečnost, že sami vidíte všechny potenciální problémy a upozorníte na chyby v softwaru, které by počítač nemusel vidět.
Tento proces však může být ve srovnání s automatizací testovacích procesů poměrně pomalý.
V těchto případech člověk, například jeden z vývojářů, projde aplikaci a doplní všechny funkce, přičemž se rychle naučí, co z dostupného softwarového balíku funguje a co ne.
Následuje proces plánování, při kterém tester od konce do konce připraví konkrétní sadu testů a naučí se metriky, které chce v průběhu procesu sledovat, a to podle přesně stanovených cílů.
2. Automatizace testování od začátku do konce – výhody, výzvy, proces
Automatizace testů označuje proces provádění testů E2E pomocí počítačového programu pro automatizaci testů. Většina automatizace probíhá prostřednictvím specializovaných nástrojů pro testování od konce ke konci, které jsou určeny pro práci s konkrétními kódovacími jazyky a typy programů.
Do tohoto procesu je stále zapojen člověk, ale pouze ve fázi počátečního kódování a konečné analýzy.
Jednou z hlavních výhod automatizovaného testování od konce ke konci je, že rozsáhlejší aplikace a programy vyžadují mnohem důkladnější posouzení a analýzu, protože součástí pracovního postupu se stává stále více funkcí a prvků uživatelského rozhraní.
Automatizované testy e-to-e tyto menší odchylky najdou. Jedním z problémů automatizovaného testování však je, že lidské oko si všimne některých rozdílů, kterých si počítač nevšimne, což vede k tomu, že automatizované testování někdy přehlédne chyby, které lidští testeři nepostřehnou.
Chcete-li dokončit automatizované testování od začátku do konce, rozhodněte se pro testovací případy, napište je jako kód a integrujte je do nástroje pro testování softwaru.
Poté spusťte test, získejte výsledky a využijte získané informace k případným úpravám aplikace.
Pokud je to možné, dokončete každý testovací případ od konce ke konci zvlášť, protože různé testovací případy hledají různé věci. Jejich nezávislé provádění snižuje pravděpodobnost vzájemného ovlivňování testů.
3. Závěr: Závěr: Manuální nebo komplexní automatizace testování?
Rozhodnutí, zda je ideální volbou manuální testování, nebo automatizace, závisí výhradně na potřebách vašeho vývojového týmu.
Menší projekty může tým důkladně otestovat ručně, projít kód a okamžitě zaznamenat případné chyby.
Naopak větší projekty jsou prostě příliš velké na to, aby se daly testovat ručně, a vyžadují velkou míru automatizace testování softwaru.
Zamyslete se nad specifickými potřebami svého projektu a přizpůsobte své plány testování e-to-e podle toho, co se dozvíte o rozsahu testování.
Rozpočet nemusí být nutně rozhodující, protože automatizace testování se ve většině případů dodává v bezplatné i podnikové verzi.
Co potřebujete k dokončení testování End-to-End
Než začnete s end-to-end testováním, je třeba udělat několik věcí, ať už se zaměříte na manuální metodu, nebo na automatizaci práce.
Patří mezi ně:
1. Reprezentativní hardware
Mnoho vývojářů má přístup ke špičkovému hardwaru a používá moderní počítače jako nástroj pro vývoj svého softwaru. To je ideální pro náročné testy a kontrolu funkčnosti různých aspektů softwaru, ale nereprezentuje to přesně hardware, který si vybere koncový uživatel.
Pořiďte si hardware, který lépe odpovídá profilu průměrného uživatele, protože získáte přesnější představu o problémech, které mají s programem, který testujete od konce ke konci.
Ideální je například použití mobilního telefonu pro telefonní aplikaci a průmyslového počítače pro výrobní software.
2. Nástroje pro automatizaci testování
Při práci s automatizací testování dbejte na to, abyste měli testovací software k dispozici již od samého počátku e-to-e testování.
Software si vybírejte pečlivě, protože jak bezplatné, tak podnikové verze testovacího softwaru mají své výhody i potenciální nevýhody. Prozkoumejte software, který používáte, a proveďte několik cvičných testů, abyste zkrátili dobu, kterou strávíte přizpůsobováním se testovací platformě.
Mnoho komplexních softwarových balíků nabízí důkladné průvodce nebo odborníky, jako je podpora testování ZAPTEST, a někteří odborníci vytvářejí výukové programy na YouTube a dalších souvisejících stránkách, aby poskytli více informací.
3. Soudržný plán
Jednou z nejdůležitějších věcí, kterou je třeba mít při vstupu do procesu testování od začátku do konce, je ucelený plán testování.
Jedná se o dokument, který zaznamenává testovanou verzi softwaru, konkrétní testy, které se na softwaru provádějí, používaný hardware a testovací platformu.
Čím důkladnější je vaše dokumentace, tím více užitečných poznatků získáte z provedených testů e to e.
Pokud vaše organizace vyvíjí velké množství softwaru, vytvořte si šablonu pro plánování testů a používejte ji pro každý test, abyste dosáhli větší konzistence.
4. Kompletní software
Proces testování softwaru vyžaduje kompletní software, který má testovací tým k dispozici.
V těchto případech je nezbytné mít k dispozici nejnovější softwarový balíček, protože novější verze znamená, že veškerá zjištění jsou co nejreprezentativnější vůči konečné verzi.
Čím blíže je softwarový balíček k vydání, tím užitečnější výsledky tým z testování E2E získá.
Těsně před testem zkompilujte z nejnovějšího kódu, který máte k dispozici, abyste se ujistili, že náhodou nepracujete se starou verzí.
Proces testování automatizace od začátku do konce
Při provádění end-to-end testování automatizovanými prostředky je třeba dodržovat podrobný postup, který zahrnuje následující kroky:
1. Zvažte své e-to-e testovací případy
Začněte tím, že se zamyslíte nad testovacími případy, které zkoumáte v rámci end-to-end testování.
Například testovací případy v počátečních testech zahrnují zajištění správné funkčnosti a testování všech funkcí softwaru, které fungují a poskytují správné výstupy.
Později v procesu zvažte testovací případy, jako je efektivita programu a rychlost, s jakou pracuje.
Vyvažte testovací případy s potřebami projektu v závislosti na fázi vývoje a množství dříve provedených testů od konce ke konci.
2. Kódování testovacích případů od konce do konce
Jakmile se rozhodnete pro testovací případy, nakódujte konkrétní testovací případy do testovacího softwaru, který používáte.
Při kódování testovacích případů od konce ke konci postupujte opatrně, protože nepřesně nakódovaný testovací případ nemusí testovat správnou věc nebo může na konci procesu hledat nesprávnou metriku.
Jedná se výhradně o součást procesu automatického testování, protože manuální testování spočívá v tom, že tester jednoduše posoudí kvalitu programu, aniž by vyžadoval jakýkoli zásah počítače.
Pokud je to možné, provádějte jeden test najednou, aby byly výsledky konzistentní a nerušené.
3. Proveďte testy E2E
Po zakódování všech testů do testovacího softwaru spusťte testy.
V závislosti na povaze prováděných testů to může trvat od několika okamžiků až po několik minut, přičemž se rozlišují faktory, jako je velikost testované aplikace a konkrétní testy, které provádíte.
Většina programů pro automatizaci testů E2E vás bude informovat o zbývajícím čase procesu a o fázi procesu, ve které se nachází.
Manuální testy vyžadují více času a úsilí, protože tester prochází všechny funkce a procesy aplikace.
4. Poučte se z výsledků
Na konci samotného testu obdrží programátoři a testeři řadu metrik a dalších informací týkajících se testu.
Pomocí těchto informací se dozvíte více o své aplikaci nebo programu, například o oblastech, které vyžadují zlepšení, a o konkrétních procesech, které vyžadují větší přizpůsobení, aby fungovaly na vyšší úrovni.
Testovací metriky jsou jedny z nejcennějších údajů, které organizace získává, a jejich správným používáním výrazně zvyšujete kvalitu svého konečného produktu. Uchovávejte dlouhodobá data z předchozích testů, abyste mohli důkladněji porovnávat jednotlivé verze.
Osvědčené postupy pro testování od konce ke konci
Dodržování osvědčených postupů v jakémkoli oboru a kompetenci je prvním krokem k zajištění lepších výsledků.
Mezi osvědčené postupy pro end-to-end testování v procesu vývoje softwaru patří:
1. Definujte pokrytí testů
Při provádění jakéhokoli testování softwaru E2E správně definujte pokrytí testu.
To zahrnuje, jak velká část aplikace se testuje, a konkrétní metriky, které v testech hledáte.
Pokud tyto informace jasně definujete hned na začátku procesu, budete vědět, co hledáte, a výsledky budou snadno interpretovatelné. „Datový šum“, jako jsou informace z jiných aplikací nebo testů, je eliminován.
2. Zaměření na efektivní testy
Efektivita je zásadní součástí testování, protože čím více prostředků spotřebujete v testovacím programu, tím více jich uberete samotné aplikaci.
Abyste tomu zabránili, zaměřte se na nastavení velmi jednoduchých a účinných testů.
Pokud se každý test zabývá odlišnými a relativně malými parametry, zabírá méně zdrojů a znamená to, že výsledek je co nejpřesnější a na konci projektu poskytuje užitečnější údaje.
3. Vytvoření jednoduché sady oznámení
Sady oznámení jsou nástroje, které testeři používají k získávání informací o testech.
Při vytváření sady oznámení klaďte důraz na přehlednost a jednoduchost. Pokud snadno porozumíte chybovým kódům, například vytvoříte takový, který uvádí povahu problému a místo, kde se problém v systému nachází, zvýšíte své šance na včasné nalezení problémů a na jejich řešení tak, aby byl program co nejdříve opraven.
Typy výstupů z koncového testu
Při provádění end-to-end testu je třeba sledovat několik různých typů výstupů, z nichž každý poskytuje jedinečný pohled na věc.
Mezi tyto typy výstupů patří:
1. Data
K tomu dochází, pokud je výstupem z koncového testování jednoduchá datová metrika.
Data zahrnují dobu, za kterou proces vrátí přesný výstup, výsledek výpočtu nebo dokonce obrázek získaný z databáze.
2. PRAVDA/NEPRAVDA
Některé testy E2E vracejí na konci procesu výstup TRUE nebo FALSE, který udává, zda je sada parametrů nebo podmínek pravdivá nebo nepravdivá.
To je užitečné pro bezpečnostní systémy, protože vrácení hodnoty FALSE do bezpečnostních podmínek může být spouštěčem spuštění alarmu.
3. Stavy selhání
Jedním z užitečných typů výstupů je představa o stavu selhání a o tom, zda procesy v rámci aplikace fungovaly podle očekávání.
V těchto případech program po spuštění odpoví, zda dokončil své procesy, nebo ne, přičemž v případě selhání se zobrazí konkrétní chybové zprávy a kódy.
Příklady end-to-end testů
Pochopení end-to-end testů je mnohem jednodušší, pokud máte k dispozici několik příkladů, a to jak úspěšných, tak neúspěšných pokusů o tento proces.
Zde je několik příkladů end-to-end testování v procesu vývoje:
1. Manuální end-to-end testy
Společnost je v poslední fázi vývoje svého produktu a vytvořila jednoduchý webový nástroj pro výpočet daní z příjmů ze svobodného povolání.
Vývojový tým prochází manuálním testováním E2E, při kterém kontroluje, zda program reaguje správnými hodnotami a zda všechny funkce uživatelského rozhraní fungují tak, jak vývojáři očekávají.
Tým zjistí některé drobné chyby ve výpočtu a reaguje na ně aktualizací programu před dokončením dalšího testu.
2. Automatický end-to-end test
Vývojář rozsáhlé webové aplikace určené k výpočtu podnikových financí se chystá vydat svůj produkt a předtím projde procesem testování E2E.
Tým zakóduje své testy do automatické testovací platformy, obdrží výsledky a pomocí metrik zajistí funkčnost a efektivitu.
Protože je program účinný, testeři přejdou ke zlepšení výkonu softwaru a snížení spotřeby zdrojů před testováním UAT.
3. Nekvalitní end-to-end testování
Společnost chce co nejdříve zveřejnit svůj software.
Vývojáři si aplikaci rychle prohlédnou a velmi zběžně prozkoumají její funkce, aniž by si předem naplánovali testování end-to-end.
Podnik přehlíží některé problémy v softwaru, které zákazníci vidí až po vydání produktu. Ztráta reputace je jedním z největších dopadů tohoto špatného testování, společnost také vrátila peníze za některé nákupy.
Typy chyb a nedostatků zjištěných při testování End-to-End
Odhalení chyb a nedostatků je jedním z hlavních cílů testování při vývoji softwaru, přičemž některé chyby a problémy jsou běžné, např.:
1. Vizuální závady
Vizuální závady se objevují, když program vypadá jinak, než vývojáři zamýšleli.
Některé z problémů v tomto případě zahrnují nenačítání textur do virtuálních prostředí, zkreslené nebo nesprávně velké obrázky a nezobrazování textu v uživatelském rozhraní.
Software s vizuálními chybami může být pro spotřebitele, kteří software zpočátku posuzují na první pohled, odrazující.
2. Selhávající funkce
Funkčnost je způsob, jakým se od softwaru očekává, že se bude chovat, přičemž chybná funkčnost jednoduše znamená, že aplikace nesplní svou očekávanou úlohu.
Může se jednat o nesprávný tisk textu, neschopnost shromažďovat informace z databáze nebo pomalou práci v porovnání s očekáváním zákazníka a vývojáře.
3. Chyby při zpracování chyb
Problémy s ošetřením chyb se týkají případů, kdy má software nějaký problém, ale nelze definovat, o jaký problém se jedná. To je příčinou dlouhých a komplikovaných chybových hlášení v softwaru.
Hlavním problémem při zpracování chyb je, že uživatel nemůže určit, o jaký problém se jedná, a proto nemůže problém vyřešit.
Významným problémem pro vývojáře je také ošetření chyb, protože představuje překážku pro efektivní opravu chyb.
Běžné metriky pro testování od konce ke konci
Při dokončování procesu testování E2E je nutné mít zavedené jednoduché metriky, které vám poskytnou pevný základ pro porovnání různých iterací aplikace.
Příklady metrik pro end-to-end testování jsou:
1. Doba provedení testu
Jedná se o dobu, za kterou automatizovaný systém dokončí všechny end-to-end testy. Čím rychlejší je tento čas, tím je software efektivnější.
Porovnáním doby provádění testů mezi jednotlivými testy mohou vývojáři zjistit, zda od poslední iterace efektivně zvýšili rychlost softwaru.
2. Počet selhání
Někteří vývojáři sledují počet chyb v jednotlivých verzích. Jedná se o hrubý údaj, a pokud vývojáři vidí, že se součet mezi jednotlivými verzemi výrazně snižuje, vědí, že řeší významné problémy v kódu.
3. Hustota poruch
Hustota selhání označuje počet selhání, ke kterým dojde při zohlednění velikosti kódu.
Pokud například kód aplikace vzroste čtyřnásobně, ale míra selhání se zvýší pouze o 50 %, hustota selhání ukazuje, že se jedná o zlepšení, nikoli o nárůst problémů, které aplikace má.
Nejlepší bezplatné nástroje pro end-to-end testování
Při vytváření end-to-end testu můžete začít pomocí bezplatného nástroje.
5 nejlepších bezplatných nástrojů pro automatizované testování od začátku do konce
Mezi nejlepší bezplatné nástroje pro automatizované testování end-to-end patří:
1. ZAPTEST FREE Edition
ZAPTEST Free Edition je verze platformy ZAPTEST, která je přístupná všem uživatelům bez placení.
Bezplatná verze se zaměřuje na automatizaci a umožňuje provádět ladicí cvičení v režimu Just-in-Time. Dokončování e-to-e testů tímto způsobem podporuje zejména organizace využívající agilní vývoj, protože podporuje mnohem rychlejší časy realizace.
2. Katalon
Možnost s otevřeným zdrojovým kódem, která poskytuje základní automatizační nástroje v systému bez kódu.
Snadno se rozšiřuje, ale vyžaduje některá rozšíření a další funkce, které jsou za placenou zdí, aby bylo možné software maximálně využít.
Dalším problémem je, že běží pomaleji než některé alternativy, například Selenium.
3. Selen
Selenium je také platforma s otevřeným zdrojovým kódem, která funguje s řadou různých kódovacích jazyků a prohlížečů, a je tak velmi flexibilní.
Pro uživatele, kteří se chtějí dozvědět více o automatizaci testování, může být příliš složitý. Tento nástroj také není určen pouze k testování a slouží jako obecný nástroj pro automatizaci prohlížeče.
4. Watir
Watir je extrémně lehký testovací nástroj s otevřeným zdrojovým kódem. Je ideální pro testování velmi malých částí kódu, ale kvůli závislosti na ručním zadávání má problémy s náročnějšími úlohami a procesy.
Watir používejte jako podporu manuálního testování E2E, ale ne jako čistě automatizační nástroj pro vaši práci.
5. Kapybara
Capybara se snaží napodobit chování uživatele při práci se softwarem, ale pracuje především s webovými aplikacemi, takže je jako nástroj trochu omezenější, než by bylo ideální.
U menších komplexních testů to může být dobré, ale u samostatných programů Capybara jen těžko drží krok s konkurencí.
5 nejlepších nástrojů pro testování od konce ke konci v podniku
Pokud vám nestačí bezplatný nástroj pro end-to-end testování, protože vaše aplikace je příliš rozsáhlá nebo nástroj nemá požadované funkce, je vždy alternativou podnikový nástroj.
Mezi nástroje pro komplexní testování na podnikové úrovni, jejichž použití můžete zvážit, patří:
1. ZAPTEST ENTERPRISE Edition
Podniková edice ZAPTEST je důkladnější nástroj než bezplatná verze a nabízí funkce, jako jsou neomezený počet licencí, bezkódové rozhraní, technologie 1SCRIPT pro různé platformy, zařízení a aplikace a přístup k certifikovanému odborníkovi ZAP, který pracuje na dálku spolu s týmem klienta, jako jeho součást.
Z hlediska poměru ceny a kvality je to ideální volba pro komplexní testování softwaru bez ohledu na vaši dosavadní úroveň zkušeností.
2. BugBug
BugBug je nástroj pro testování prohlížečů určený pro agilní týmy, a přestože se poměrně snadno používá, jeho intenzivní zaměření na prohlížeče a agilní vývoj mu na flexibilitě nepřidává.
Při vývoji rozsáhlého softwaru tradičnějším postupem má BugBug problémy a stává se pro e-to-e testera méně vhodným.
3. Cypress
Cypress je všeobecně uznávaný testovací nástroj, který je určen pro testování uživatelského rozhraní, což znamená, že nepodporuje testování backendu, které je nezbytné pro efektivní testy E2E.
Tento nástroj je silný v posledních fázích vývoje, ale jeho nedostatečné využití pro testování funkčnosti z něj dělá poměrně slabý nástroj E2E.
4. Testsigma
Nástroj s otevřeným zdrojovým kódem, který se zaměřuje na údržbu testů umělé inteligence, s cloudovým úložištěm, které potenciálně představuje bezpečnostní hrozbu při již tak vysoké ceně.
Poměrně funkční, ale chybí mu osobní podpora, kterou nabízí například ZAPTEST.
5. Autify
Ideální pro začátečníky a paralelní testování, ale ceny na vyžádání mohou vést k nejasnostem ohledně dlouhodobého plánování organizace.
Pomáhá v dřívějších fázích testování, ale může mít potíže s některými složitějšími úkoly, které se provádějí v procesu testování End-to-End.
Kontrolní seznam pro testování od konce ke konci
Testování od konce ke konci musí být důkladný proces, a proto mnoho týmů používá kontrolní seznam, aby bylo zaručeno, že otestují všechny důležité aspekty aplikace.
Do kontrolního seznamu testování E2E je třeba doplnit tyto informace:
1. Testování funkčnosti
Otestujte funkčnost softwaru obecně z pohledu uživatele, přičemž si všímejte efektivity funkcí a toho, které funkce mají problémy.
2. Testování výkonu
Testujte výkonnost softwaru a zajistěte, aby běžel efektivně a nezatěžoval zdroje, včetně posouzení času, který software potřebuje k dokončení úkolů, a testování zátěže.
3. Testování dat
Otestujte úložiště aplikace a ujistěte se, že jsou všechna data bezpečná a správně uspořádaná a že v případě potřeby lze snadno najít konkrétní položky.
4. Testování použitelnosti
Otestujte, zda je celé uživatelské rozhraní použitelné a zda s ním má smysl pracovat z pohledu zákazníka, který se nepodílel na procesu návrhu a vývoje.
5. Testování bezpečnosti
Testování bezpečnostních nedostatků nebo zranitelností v aplikaci, aby byla aplikace chráněna před třetími stranami, nebo nedostatků, které již existují v kódové základně, aby zůstala v souladu s normami GDPR.
Závěr
Závěrem lze říci, že end-to-end testování je neuvěřitelně důkladná metoda, jak zajistit, aby program fungoval tak, jak od něj očekáváte.
Použití end-to-end testování je velmi flexibilní nástroj, který mohou vývojáři všech velikostí implementovat do svých procesů a zajistit, že koncovému uživateli dodají kvalitní produkt.
Věnujte čas zvážení konkrétního typu testování, které používáte, ať už manuální a horizontální, nebo automatické a vertikální, ale všichni vývojáři by měli vnímat end-to-end testování jako příležitost ke zlepšení svých finálních produktů.
Často kladené dotazy a zdroje
Vzhledem k tomu, že end-to-end testování je rozsáhlou oblastí vývoje, může vyvolat mnoho otázek. Přečtěte si naše často kladené otázky a zjistěte více o end-to-end testech a o tom, jak v budoucnu zlepšit kvalitu testování.
1. Nejlepší kurzy automatizace testování od konce ke konci
Jedním z nejlepších způsobů, jak zlepšit své standardy v oblasti end-to-end testování, je účast na kurzu. Mezi nejoblíbenější kurzy pro ty, kteří chtějí zlepšit své schopnosti v oblasti testování E2E, patří:
– End to End Testing Implementation od Skillsoftu, kurz, který trvá jen něco málo přes hodinu a poskytuje počáteční základy učení.
– Kurz automatizovaného testování od společnosti PluralSight, který uživatele učí, jak provádět testy pomocí automatizace a softwaru.
– E2E Web Testing od TestCafe, krátký kurz pokrývající základy automatizace testovacích procesů pomocí NodeJS.
– Specializace na testování a automatizaci softwaru od společnosti Coursera, která pokrývá většinu dovedností a kompetencí v oblasti testování softwaru.
– Úvod do testování softwaru od společnosti Coursera, ideální pro všechny, kteří s testováním softwaru začínají.
2. Nejlepší knihy o end-to-end testování?
Někteří lidé dávají přednost tomu, aby si své dovednosti rozvíjeli vlastním tempem a v rámci rozvoje svých dovedností v oblasti testování E2E procházeli spíše procesem čtení než absolvováním komplexního kurzu.
Mezi nejlepší dostupné knihy o testování E2E pro software patří:
– „Kompletní průvodce automatizací testování“ od Arnona Axelroda
– „Tipy pro automatizaci testování softwaru“ od Gennadiy Alpaev
– „Praktické testování mobilních aplikací“ od Daniela Knotta
– „Explorativní testování softwaru“ od Jamese A. Whittakera
– „Testování vývojářů: Alexander Tarlinder: „Budování kvality v softwaru
3. Jakých je 5 nejčastějších otázek při pohovoru o testování End-to-End?
Když se ucházíte o pozici ve vývojářské společnosti, mnoho náborových týmů se ptá právě na testování E2E.
Některé z hlavních otázek, které uchazeči dostávají při pohovoru, jsou:
– Jaké máte zkušenosti s testováním E2E na aktivním pracovišti a s jakými problémy jste se při něm setkali?
– Můžete mi říci, jaké jsou rozdíly mezi testováním UAT a E2E a kdy byste použili jednotlivé typy testování ve vývojovém cyklu?
– Jak se liší automatizované testování E2E od manuálního testování E2E a proč společnosti používají jednotlivé metody?
– Jak jste v minulosti řešili problémy při používání testování E2E?
– Jaké jsou výhody používání testování E2E na vývojovém pracovišti a proč jsou tyto výhody důležité?
4. Nejlepší výukové programy na YouTube o testování od konce ke konci
YouTube je jedním z nejlepších míst, kde se můžete naučit různé dovednosti, a uživatelé zde mají k dispozici spoustu výukových programů, které jim umožní rozvíjet své dovednosti. Mezi ideální výukové programy na YouTube pro všechny, kdo pracují na svých dovednostech v oblasti testování E2E, patří:
– „Software Testing Tutorial #28 – End to End Testing in Software Testing“ od Software Testing Mentor
– „Bezplatný kompletní kurz o ručním testování – červenec 2022“ od Performance Testing Basic and Advanced
– „Je čas na end-to-end testování!“ od Academind
5. Jak udržovat testy od konce ke konci?
Udržovat end-to-end testy znamená udržovat testovací protokoly v chodu po celou dobu vývoje.
Jedním z nejlepších způsobů, jak zajistit, abyste si udrželi své testování, je opakovaně provádět stejné testy, čímž se zajistí vyšší úroveň konzistence mezi jednotlivými testy.
Při tomto procesu se zaměřte také na jednoduchost, protože čím jednodušší jsou testy, tím snadněji se data udržují a tím jednodušší je opakovat testy pro budoucí soubory dat.
6. Co je to testování od konce ke konci v QA?
End-to-end testování v QA označuje roli E2E testování v procesech zajištění kvality. V těchto případech je postup podobný, testeři zkoumají celou aplikaci nebo program, ale konkrétní cíle testování se liší.
Cílem je v těchto případech zajistit vysokou úroveň kvality uživatelského zážitku, nikoliv zajistit, aby vše bylo co nejfunkčnější a nejefektivnější.
K testování QA dochází zpravidla až po dokončení procesu vývoje.