types automation testing
Naučte se různé typy testování automatizace s některými mylnými představami o automatizaci testů:
V této druhé části série automatizačních testovacích testů , Stručně popíšu typy automatizovaných testů a potom nejdůležitější odstraním některé mylné představy o automatizaci testů.
Co je to Automation Testing?
Testování automatizace lze definovat jako způsob, jak spustit sadu testů znovu a znovu, aniž byste je museli provádět ručně. Zavedení automatizačních testů do vaší testovací strategie je způsob, jak ušetřit peníze a čas.
Co se naučíte:
Typy testování automatizace
Typy automatizačních testů definují, jaké typy testovacích sad lze automatizovat. Mnoho testerů zaměňuje toto téma s typy automatizačních rámců, které definují, jak navrhnete svou testovací sadu do automatizačního balíčku, který lze pohodlně provést.
V tomto článku se podrobně podíváme na typy testování automatizace a nakonec se krátce podíváme na automatizační rámce.
Rozumíme výše uvedeným klasifikacím podrobně:
Automatizace založená na typu testování
Automatizace funkčních testů:
Funkční testy jsou psány pro testování obchodní logiky za aplikací. Automatizace těchto znamená psaní skriptů k ověření obchodní logiky a funkcí očekávaných od aplikace.
Automatizace nefunkčních testů:
Nefunkční testy definují neobchodní požadavky aplikace. Jedná se o požadavky týkající se výkonu, zabezpečení, databází atd. Tyto požadavky mohou zůstat konstantní nebo mohou být změněny podle velikosti softwaru.
Automatizace založená na fázi testování
Automatizace testů jednotek:
Tyto testy jsou spouštěny během samotné vývojové fáze, ideálně vývojářem po dokončení vývoje a před předáním systému testerům k testování.
Automatizace testů API:
Testy API se spouštějí během fáze integrace. Ty mohou být spuštěny vývojovým nebo testovacím týmem a mohou být spuštěny před nebo po vytvoření vrstvy uživatelského rozhraní pro aplikaci. Tyto testy se zaměřují na testování na základě požadavku a odpovědi, na kterých je aplikace postavena.
Automatizace testů založených na uživatelském rozhraní:
Testy založené na uživatelském rozhraní se spouštějí během fáze provádění testu. Ty jsou konkrétně spuštěny testery a jsou spuštěny pouze jednou, než jim je předáno uživatelské rozhraní aplikace. Ty testují funkčnost a obchodní logiku aplikace z klientského rozhraní aplikace.
Automatizace založená na typu testů
Testy jednotek:
Testy jednotek jsou testy, které jsou vytvořeny k testování kódu aplikace a jsou obvykle integrovány do samotného kódu. Zaměřují se na standardy kódování, jako je způsob psaní metod a funkcí.
Tyto testy jsou častěji psány samotnými vývojáři, avšak v dnešním světě mohou být k jejich napsání požádáni i automatizační testeři.
Provedení těchto testů a získání žádných chyb od nich bude znamenat, že váš kód bude kompilován a spuštěn bez problémů s kódem. Tyto testy obvykle necílí na funkční aspekty aplikace a protože cílí na kód, je vhodnější je automatizovat, aby je bylo možné spustit podle potřeby vývojáře.
Kouřové testy:
Kouřová zkouška je slavná zkouška prováděná v životním cyklu zkoušky. Jedná se o testy po sestavení, které se provedou okamžitě po vydání jakéhokoli sestavení z aplikace, aby se zajistilo, že aplikace po dokončení sestavení stále funguje.
Toto je malá testovací sada a je něco, co bude provedeno několikrát, a proto má smysl ji automatizovat. Tyto testy budou obvykle funkční povahy a v závislosti na typu aplikace pro ně lze vybrat nástroj.
Testy API:
Testování API se v posledních několika letech stalo velmi slavným. Toto testování mohou provádět aplikace postavené na architektuře API.
Při testování API testeři ověřují obchodní vrstvu aplikace kontrolou kombinací požadavků a odpovědí pro různá rozhraní API, na kterých je aplikace postavena. Testy API lze také provést jako součást integračních testů níže.
Testy integrace:
Samotný test integrace, jak název napovídá, znamená testování aplikace integrací všech modulů a kontrolou funkčnosti aplikace.
Testování integrace lze provést pomocí testování API nebo lze provést prostřednictvím vrstvy uživatelského rozhraní aplikace.
Testy uživatelského rozhraní:
Testy uživatelského rozhraní se provádějí z vrstvy uživatelského rozhraní nebo z rozhraní aplikace. Mohou se zaměřit na testování funkčnosti nebo jednoduše otestovat prvky uživatelského rozhraní aplikace.
Automatizace uživatelského rozhraní k testování funkčnosti je běžnou praxí. Automatizace funkcí grafického uživatelského rozhraní je však jednou ze složitějších automatizací.
Regresní testy:
Jednou z nejčastěji automatizovaných testovacích sad je sada regresních testů. Regrese, jak už možná víte, je test, který se provádí na konci testování nového modulu, aby se zajistilo, že tím nebyl ovlivněn žádný ze stávajících modulů.
Opakuje se po každé nové iteraci testování a hlavní testovací případy zůstávají pevné s obvykle několika novými přírůstky po nové iteraci. Protože se často spouští, téměř všechny testovací týmy se snaží tento balíček automatizovat.
Automatizace jako kontinuální integrace:
Na samotných automatických regresních testech může opět běžet kontinuální integrace, ale při dosažení CI umožňujeme spuštění regresní nebo identifikované testovací sady pokaždé, když se provede nové nasazení.
Testy zabezpečení:
Testování zabezpečení může být funkční i nefunkční typ testování, který zahrnuje testování zranitelnosti aplikace. Funkční testy budou skládat z testů souvisejících s autorizací atd., Zatímco nefunkční požadavky mohou testovat vložení SQL, skriptování napříč weby atd.
Testy výkonu a kontrola kvality:
Testy výkonu jsou nefunkční testy, které se zaměřují na požadavky, jako je testování zátěže, napětí, škálovatelnost aplikace.
Přejímací zkoušky:
Akceptační testy opět spadají pod funkční testy, které se obvykle provádějí, aby se zajistilo, že byla splněna akceptační kritéria daná klientem.
Zatím jsme popsali typ testů, které lze automatizovat, a různé klasifikace stejné, všechny klasifikace nakonec povedou ke stejným konečným výsledkům automatizované testovací sady. Jak jsme již řekli, je třeba trochu porozumět tomu, jak se liší od rámců.
Jakmile jste identifikovali testy, které chcete automatizovat z výše uvedené klasifikace, budete muset navrhnout svou logiku způsobem, který tyto testy provede hladce, bez velkého ručního zásahu. Tato konstrukce sady ručních testů do sady automatických testů je místem, kde přicházejí rámce.
Nyní prozkoumáme 3 nejlepší typy automatizace testů
- Testování jednotek
- Testování API
- Testování GUI
# 1) Automatizované testy jednotek
Automatizované testy jednotek jsou psány pro testování úrovně kódu. Chyby jsou identifikovány ve funkcích, metodách a rutinách napsaných vývojáři.
Některé společnosti požádají vývojáře, aby sami provedli testování jednotky, a jiné si najmou specializované prostředky pro automatizaci testů. Tyto prostředky mají přístup ke zdrojovému kódu a zapisují testy jednotek, aby rozbily produkční kód.
Kvůli přítomnosti testů jednotek, kdykoli se kód zkompiluje, spustí se všechny testy jednotek a řeknou nám výsledek, že pokud všechny funkce fungují. Pokud některý test jednotky selže, znamená to, že v produkčním kódu je nyní chyba.
Mezi nejoblíbenější nástroje na trhu patří NUnit a JUnit . Microsoft také poskytuje svůj vlastní rámec pro testování jednotek s názvem MSTest . Projděte si webové stránky těchto nástrojů a oni vám poskytnou další příklady a návody, jak psát testy jednotek.
#dva) Automatizované testy webových služeb / API
Aplikační programové rozhraní (API) umožňuje softwaru komunikovat s jinými softwarovými aplikacemi. Stejně jako jakýkoli jiný software je třeba otestovat rozhraní API. U tohoto typu testování se grafické uživatelské rozhraní obvykle netýká.
To, co zde testujeme, jsou obvykle problémy s funkčností, dodržováním předpisů a zabezpečením. Ve webových aplikacích můžeme otestovat Žádost a odpověď naší aplikace, zda jsou zabezpečené a šifrované nebo ne.
Toto je jeden z příkladů, kde můžeme použít Testování API. Nejpopulárnějším nástrojem pro testování API je MÝDLO který má bezplatnou i placenou verzi. Existují i další nástroje, které můžete použít podle svých potřeb.
# 3) Automatizované testy GUI.
Tento typ automatizovaného testování je nejnáročnější formou automatizace, protože zahrnuje testování uživatelského rozhraní aplikace.
Je to těžké, protože grafické uživatelské rozhraní se velmi mění. Ale tento typ testování je také nejblíže tomu, co budou uživatelé s naší aplikací dělat. Protože uživatel bude používat myš a klávesnici, automatické testy grafického uživatelského rozhraní napodobují stejné chování tím, že pomocí myši a klávesnice klikají nebo zapisují na objekty přítomné v uživatelském rozhraní.
Z tohoto důvodu můžeme najít chyby brzy a lze jej použít v mnoha scénářích, jako je regresní testování nebo vyplňování formulářů, což zabere příliš mnoho času.
Mezi nejoblíbenější nástroje pro testování grafického uživatelského rozhraní patří Unifikované funkční testování Micro Focus (UFT) , Selen , Test dokončen a Kódované uživatelské rozhraní Microsoftu (což je součást edice Visual Studio Ultimate a Premium).
Stejně jako typy automatizačních testů existuje také několik typů rámců.
Automatizační rámce
Mezi běžně používané automatizační rámce patří:
- Lineární (záznam a přehrávání)
- Klíčové slovo řízeno
- Data řízena
- Model objektu stránky
- Modulární
Další čtení => Automatizační rámce
Jak vidíte, prvním krokem v procesu automatizace je identifikace typu automatizace, pak můžete identifikovat rámec, který chcete navrhnout, a vzhledem k tomu si můžete vybrat nástroje, které vyhovují vašim potřebám.
Automatizační nástroje
Na základě typu testování, na které cílíte, a typu rámce, který kolem něj budete chtít vytvořit, jsou k dispozici následující nástroje:
- Selen : Velmi výkonný nástroj pro testování webových aplikací. Poskytuje podporu více prohlížečů.
- Junit a Nunit: Nástroje hlavně používané pro testování jednotek vývojáři.
- QTP : Skvělý nástroj pro jiné než webové aplikace a přichází s vestavěným úložištěm objektů.
- Sikuli: Open source nástroj pro testování GUI.
- Mýdlo UI: Nástroj pro testování API.
- Jistota: Knihovna pro vytvoření testovacího rozhraní API.
- appium : Nástroj, který podporuje mobilní testování, testování nativních aplikací, hybridní a testování mobilních webových aplikací.
- Jmeter : Nástroj, který se používá k testování výkonu.
- TestNG: TestNG není samo o sobě automatizačním nástrojem, poskytuje však velkou podporu automatizačním rámcům vytvořeným selenem, aplikací, jistotou atd.
Další čtení => Otestujte automatizační nástroje
sql server 2012 rozhovor otázky a odpovědi pro zkušené
Mylné představy o testování automatizace
Za ta léta jsem slyšel několik mylných představ o automatizaci testů. Myslím, že bych je měl také vyčistit v tomto článku.
Mylná představa č. 1. Automatizace je zde, aby nahradila manuální testery.
Automatizace testů pomáhá testerům provádět testy rychleji a mnohem spolehlivěji. Nikdy nemůže nahradit lidi.
Představte si automatizaci testů jako auto. Pokud jdete pěšky, trvá vám asi 20 minut, než se dostanete domů. Pokud ale používáte auto, dojedete za dvě minuty. Řidičem automobilu jste stále vy, člověk, ale ... auto pomáhá člověku rychleji dosáhnout svého cíle. Většina vaší energie se také šetří, protože jste nechodili. Tuto energii tedy můžete použít k provádění důležitějších věcí.
Totéž platí pro testování automatizace. Používáte jej k rychlému testování většiny vašich opakovaných, dlouhých a nudných testů a šetří váš čas a energii k soustředění a testování nových a důležitých funkcí.
Tak jako James Bach řekl skvělý citát:
'Nástroje netestují.' Pouze lidé testují. Nástroje provádějí pouze akce, které „pomáhají“ lidem testovat. '
Nástroje mohou klikat na objekty. Kam kliknout, ale vždy zjistí manuální tester. Myslím, že to teď chápete.
Mylná představa č. 2 . Všechno pod sluncem lze automatizovat
Pokud se pokusíte automatizovat 100% svých testovacích případů, možná to dokážete, ale pokud byste to dokázali, náš první bod se stane nepravdivým. Pokud je vše automatizované, co udělá manuální tester?
Zmatený? Že jo?
Ve skutečnosti jde o to, že nemůžete automatizovat 100% testovacích případů. Protože jsme jako testeři přesvědčeni, že žádná aplikace nemůže být 100% testována. Vždy budou existovat nějaké scénáře, které nám budou chybět. Vždy se vyskytnou chyby, které se objeví, až když vaši aplikaci budou klienti používat.
Pokud aplikaci nelze 100% otestovat, jak tedy můžete slíbit 100% automatizaci?
Existuje také velmi malá šance, že budete moci automatizovat všechny své stávající testovací případy. Vždy existují scénáře, které se obtížně automatizují a jsou snadněji proveditelné ručně.
Například „Jeden uživatel zadá data, druhý uživatel data schválí, třetí uživatel bude data prohlížet a čtvrtý uživatel je nebude moci prohlížet. Tyto scénáře lze automatizovat, ale budou vyžadovat spoustu času a úsilí. Bude to jednodušší, pokud to uděláte ručně.
Nezapomeňte, že používáme auta k překonávání vzdáleností, ale na cestě mohou být dlouhé signály, spotřeba paliva, problémy s parkovacími místy, poplatky za parkování a mnohem větší bolesti hlavy. V některých scénářích prostě kráčíme a dojdeme k cíli :) .
Proto byste se neměli snažit vše automatizovat. Automatizujte pouze ty scénáře, které jsou důležité a ty, jejichž ruční zpracování trvá hodně času.
Mylná představa č. 3 . Automatizace zahrnuje pouze nahrávání a přehrávání.
Nežijte ve světě fantazie. Tato fantazie je ve skutečnosti vytvářena falešnými reklamami od různých prodejců automatizačních nástrojů. Říkají, že pouze zaznamenáváte a přehráváte své kroky a vaše testovací případy budou automatizovány. To je velká lež!
Automatizace je všechno, nejen nahrávání a přehrávání. Čistí automatizační inženýři běžně vůbec nepoužívají funkci nahrávání a přehrávání. Nahrávání a přehrávání se obvykle používá k získání představy o tom, jak nástroj generuje skript pro naše kroky.
Jakmile se seznámíme se skriptováním, pomocí skriptů vždy vytvoříme automatizované testy. Pamatovat si, programování musíte znát, pokud chcete provádět automatizaci testů . Na druhou stranu, pokud programování neznáte, nenechte se odradit. Jako každý jiný úkol, i programování se dá naučit s praxí a odhodláním.
Znám lidi, kteří nejsou ani z počítačových věd, ale učí se programovat a nyní jsou z nich úžasní automatizační inženýři. Ve společnosti Microsoft najímají testery, kteří mohou programovat. Se nazývají SDET Katedra podnikové ekonomiky Pospíšilová, Jana Inženýři pro vývoj softwaru pro testování. První řádek popisu úlohy říká „SDET's write a lot of code….“.
Naučte se prosím programovat, neutíkejte před tím. Udělá to z tebe úžasný tester .
Závěr
Doufám, že vám tento článek pomohl vyjasnit některé koncepty související s automatizací testů.
Pokryli jsme vysokou úroveň různých typů automatizačního testování s různými způsoby klasifikace.
Mezi hlavní klasifikace patří:
- Automatizace založená na typu testování (funkční nebo nefunkční).
- Automatizace založená na fázi testování (jednotka, API nebo uživatelské rozhraní).
- Automatizace založená na různých typech testů (více typů testování).
Také jsme uvedli seznam různých nástrojů, které lze použít pro tyto typy automatizovaného testování.
V našem nadcházejícím článku budeme diskutovat o postup krok za krokem jak spustit automatizaci testů ve vaší organizaci .
Výukový program PREV # 1 | NEXT Tutorial # 3
Doporučené čtení
- Testování zátěže s výukovými programy HP LoadRunner
- Nejlepší nástroje pro testování softwaru 2021 [QA Test Automation Tools]
- Ztrácejí testeři kvůli automatizaci přilnavost?
- Výzvy pro ruční a automatizované testování
- Proces automatizace testování v 10 krocích: Jak spustit testování automatizace ve vaší organizaci
- Jste odborníkem na manuální nebo automatizační testování? Pracujte na částečný úvazek pro nás!
- 11 nejlepších automatizačních nástrojů pro testování aplikací pro Android (nástroje pro testování aplikací pro Android)
- Nejlepší 10+ nejlepších knih o testování softwaru (příručky o manuálním a automatizovaném testování)